Skip to content

Commit 4cb320e

Browse files
committed
[RISCV] Add coverage for shuffles which if widened could be zipeven/zipodd
1 parent 661f90a commit 4cb320e

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-zipeven-zipodd.ll

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,49 @@ define <16 x i64> @zipodd_v16i64(<16 x i64> %v1, <16 x i64> %v2) {
353353
%out = shufflevector <16 x i64> %v1, <16 x i64> %v2, <16 x i32> <i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31>
354354
ret <16 x i64> %out
355355
}
356+
357+
define <8 x i32> @zipeven_v8i32_as_v4i64(<8 x i32> %v1, <8 x i32> %v2) {
358+
; CHECK-LABEL: zipeven_v8i32_as_v4i64:
359+
; CHECK: # %bb.0:
360+
; CHECK-NEXT: li a0, 204
361+
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, mu
362+
; CHECK-NEXT: vmv.s.x v0, a0
363+
; CHECK-NEXT: vslideup.vi v8, v10, 2, v0.t
364+
; CHECK-NEXT: ret
365+
;
366+
; ZIP-LABEL: zipeven_v8i32_as_v4i64:
367+
; ZIP: # %bb.0:
368+
; ZIP-NEXT: li a0, 204
369+
; ZIP-NEXT: vsetivli zero, 8, e32, m2, ta, mu
370+
; ZIP-NEXT: vmv.s.x v0, a0
371+
; ZIP-NEXT: vslideup.vi v8, v10, 2, v0.t
372+
; ZIP-NEXT: ret
373+
%out = shufflevector <8 x i32> %v1, <8 x i32> %v2, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13>
374+
ret <8 x i32> %out
375+
}
376+
377+
define <8 x i32> @zipodd_v8i32_as_v4i64(<8 x i32> %v1, <8 x i32> %v2) {
378+
; CHECK-LABEL: zipodd_v8i32_as_v4i64:
379+
; CHECK: # %bb.0:
380+
; CHECK-NEXT: li a0, 51
381+
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, mu
382+
; CHECK-NEXT: vmv.s.x v0, a0
383+
; CHECK-NEXT: vslidedown.vi v10, v8, 2, v0.t
384+
; CHECK-NEXT: vmv.v.v v8, v10
385+
; CHECK-NEXT: ret
386+
;
387+
; ZIP-LABEL: zipodd_v8i32_as_v4i64:
388+
; ZIP: # %bb.0:
389+
; ZIP-NEXT: li a0, 51
390+
; ZIP-NEXT: vsetivli zero, 8, e32, m2, ta, mu
391+
; ZIP-NEXT: vmv.s.x v0, a0
392+
; ZIP-NEXT: vslidedown.vi v10, v8, 2, v0.t
393+
; ZIP-NEXT: vmv.v.v v8, v10
394+
; ZIP-NEXT: ret
395+
%out = shufflevector <8 x i32> %v1, <8 x i32> %v2, <8 x i32> <i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15>
396+
ret <8 x i32> %out
397+
}
398+
356399
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
357400
; RV32: {{.*}}
358401
; RV64: {{.*}}

0 commit comments

Comments
 (0)