Skip to content

Commit 615695d

Browse files
committed
[AArch64][GlobalISel] Make <8 x s8> of G_BUILD_VECTOR legal.
1 parent 9b6765e commit 615695d

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
599599
});
600600

601601
getActionDefinitionsBuilder(G_BUILD_VECTOR)
602-
.legalFor({{v16s8, s8},
602+
.legalFor({{v8s8, s8},
603+
{v16s8, s8},
603604
{v4s16, s16},
604605
{v8s16, s16},
605606
{v2s32, s32},

llvm/test/CodeGen/AArch64/GlobalISel/legalize-build-vector.mir

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,19 @@ body: |
7272
$q0 = COPY %2(<16 x s8>)
7373
RET_ReallyLR
7474
...
75+
---
76+
name: legal_v8s8
77+
body: |
78+
bb.0:
79+
; CHECK-LABEL: name: legal_v8s8
80+
; CHECK: [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF
81+
; CHECK: [[DEF1:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF
82+
; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s8>) = G_BUILD_VECTOR [[DEF]](s8), [[DEF1]](s8), [[DEF]](s8), [[DEF1]](s8), [[DEF]](s8), [[DEF1]](s8), [[DEF]](s8), [[DEF1]](s8)
83+
; CHECK: $d0 = COPY [[BUILD_VECTOR]](<8 x s8>)
84+
; CHECK: RET_ReallyLR
85+
%0:_(s8) = G_IMPLICIT_DEF
86+
%1:_(s8) = G_IMPLICIT_DEF
87+
%2:_(<8 x s8>) = G_BUILD_VECTOR %0(s8), %1(s8), %0(s8), %1(s8), %0(s8), %1(s8), %0(s8), %1(s8)
88+
$d0 = COPY %2(<8 x s8>)
89+
RET_ReallyLR
90+
...

0 commit comments

Comments
 (0)