@@ -353,6 +353,49 @@ define <16 x i64> @zipodd_v16i64(<16 x i64> %v1, <16 x i64> %v2) {
353
353
%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 >
354
354
ret <16 x i64 > %out
355
355
}
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
+
356
399
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
357
400
; RV32: {{.*}}
358
401
; RV64: {{.*}}
0 commit comments