Skip to content

Commit 5884be7

Browse files
preamesjoaosaffran
authored andcommitted
[RISCV] Add coverage for vmerge.vim shuffle lowering
1 parent aa9e1ea commit 5884be7

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,3 +1368,38 @@ define <16 x i32> @shuffle_m2_prefix(<16 x i32> %a) {
13681368
%out = shufflevector <16 x i32> %a, <16 x i32> poison, <16 x i32> <i32 2, i32 3, i32 5, i32 2, i32 3, i32 5, i32 7, i32 4, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
13691369
ret <16 x i32> %out
13701370
}
1371+
1372+
define <4 x i16> @vmerge_1(<4 x i16> %x) {
1373+
; CHECK-LABEL: vmerge_1:
1374+
; CHECK: # %bb.0:
1375+
; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1376+
; CHECK-NEXT: vmv.v.i v0, 6
1377+
; CHECK-NEXT: vmerge.vim v8, v8, 5, v0
1378+
; CHECK-NEXT: ret
1379+
%s = shufflevector <4 x i16> %x, <4 x i16> <i16 5, i16 5, i16 5, i16 5>, <4 x i32> <i32 0, i32 5, i32 6, i32 3>
1380+
ret <4 x i16> %s
1381+
}
1382+
1383+
define <4 x i16> @vmerge_2(<4 x i16> %x) {
1384+
; CHECK-LABEL: vmerge_2:
1385+
; CHECK: # %bb.0:
1386+
; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1387+
; CHECK-NEXT: vmv.v.i v0, 9
1388+
; CHECK-NEXT: vmv.v.i v9, 5
1389+
; CHECK-NEXT: vmerge.vvm v8, v9, v8, v0
1390+
; CHECK-NEXT: ret
1391+
%s = shufflevector <4 x i16> %x, <4 x i16> <i16 poison, i16 5, i16 5, i16 poison>, <4 x i32> <i32 0, i32 5, i32 6, i32 3>
1392+
ret <4 x i16> %s
1393+
}
1394+
1395+
define <4 x i16> @vmerge_3(<4 x i16> %x) {
1396+
; CHECK-LABEL: vmerge_3:
1397+
; CHECK: # %bb.0:
1398+
; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, mu
1399+
; CHECK-NEXT: vmv.v.i v0, 6
1400+
; CHECK-NEXT: vmv.v.i v9, 5
1401+
; CHECK-NEXT: vrgather.vi v8, v9, 1, v0.t
1402+
; CHECK-NEXT: ret
1403+
%s = shufflevector <4 x i16> %x, <4 x i16> <i16 poison, i16 5, i16 poison, i16 poison>, <4 x i32> <i32 0, i32 5, i32 5, i32 3>
1404+
ret <4 x i16> %s
1405+
}

0 commit comments

Comments
 (0)