@@ -52,9 +52,8 @@ define {<vscale x 16 x i8>, <vscale x 16 x i8>} @vector_deinterleave_load_nxv16i
52
52
define <vscale x 16 x i8 > @vector_deinterleave_load_nxv16i8_nxv32i8_oneactive (ptr %p ) {
53
53
; CHECK-LABEL: vector_deinterleave_load_nxv16i8_nxv32i8_oneactive:
54
54
; CHECK: # %bb.0:
55
- ; CHECK-NEXT: vl4r.v v12, (a0)
56
- ; CHECK-NEXT: vsetvli a0, zero, e8, m2, ta, ma
57
- ; CHECK-NEXT: vnsrl.wi v8, v12, 0
55
+ ; CHECK-NEXT: vsetvli a1, zero, e8, m2, ta, ma
56
+ ; CHECK-NEXT: vlseg2e8.v v8, (a0)
58
57
; CHECK-NEXT: ret
59
58
%vec = load <vscale x 32 x i8 >, ptr %p
60
59
%deinterleaved.results = call {<vscale x 16 x i8 >, <vscale x 16 x i8 >} @llvm.vector.deinterleave2.nxv32i8 (<vscale x 32 x i8 > %vec )
@@ -65,9 +64,8 @@ define <vscale x 16 x i8> @vector_deinterleave_load_nxv16i8_nxv32i8_oneactive(pt
65
64
define <vscale x 16 x i8 > @vector_deinterleave_load_nxv16i8_nxv32i8_oneactive2 (ptr %p ) {
66
65
; CHECK-LABEL: vector_deinterleave_load_nxv16i8_nxv32i8_oneactive2:
67
66
; CHECK: # %bb.0:
68
- ; CHECK-NEXT: vl4r.v v12, (a0)
69
- ; CHECK-NEXT: vsetvli a0, zero, e8, m2, ta, ma
70
- ; CHECK-NEXT: vnsrl.wi v8, v12, 8
67
+ ; CHECK-NEXT: vsetvli a1, zero, e8, m2, ta, ma
68
+ ; CHECK-NEXT: vlseg2e8.v v6, (a0)
71
69
; CHECK-NEXT: ret
72
70
%vec = load <vscale x 32 x i8 >, ptr %p
73
71
%deinterleaved.results = call {<vscale x 16 x i8 >, <vscale x 16 x i8 >} @llvm.vector.deinterleave2.nxv32i8 (<vscale x 32 x i8 > %vec )
@@ -409,23 +407,8 @@ define { <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x
409
407
define <vscale x 8 x i8 > @vector_deinterleave_load_factor4_oneactive (ptr %p ) {
410
408
; CHECK-LABEL: vector_deinterleave_load_factor4_oneactive:
411
409
; CHECK: # %bb.0:
412
- ; CHECK-NEXT: addi sp, sp, -16
413
- ; CHECK-NEXT: .cfi_def_cfa_offset 16
414
- ; CHECK-NEXT: csrr a1, vlenb
415
- ; CHECK-NEXT: slli a1, a1, 2
416
- ; CHECK-NEXT: sub sp, sp, a1
417
- ; CHECK-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x04, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 4 * vlenb
418
- ; CHECK-NEXT: vl4r.v v8, (a0)
419
- ; CHECK-NEXT: addi a0, sp, 16
420
- ; CHECK-NEXT: vs4r.v v8, (a0)
421
410
; CHECK-NEXT: vsetvli a1, zero, e8, m1, ta, ma
422
411
; CHECK-NEXT: vlseg4e8.v v8, (a0)
423
- ; CHECK-NEXT: csrr a0, vlenb
424
- ; CHECK-NEXT: slli a0, a0, 2
425
- ; CHECK-NEXT: add sp, sp, a0
426
- ; CHECK-NEXT: .cfi_def_cfa sp, 16
427
- ; CHECK-NEXT: addi sp, sp, 16
428
- ; CHECK-NEXT: .cfi_def_cfa_offset 0
429
412
; CHECK-NEXT: ret
430
413
%vec = load <vscale x 32 x i8 >, ptr %p
431
414
%d0 = call { <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 > } @llvm.vector.deinterleave4 (<vscale x 32 x i8 > %vec )
@@ -436,23 +419,8 @@ define <vscale x 8 x i8> @vector_deinterleave_load_factor4_oneactive(ptr %p) {
436
419
define <vscale x 8 x i8 > @vector_deinterleave_load_factor4_oneactive2 (ptr %p ) {
437
420
; CHECK-LABEL: vector_deinterleave_load_factor4_oneactive2:
438
421
; CHECK: # %bb.0:
439
- ; CHECK-NEXT: addi sp, sp, -16
440
- ; CHECK-NEXT: .cfi_def_cfa_offset 16
441
- ; CHECK-NEXT: csrr a1, vlenb
442
- ; CHECK-NEXT: slli a1, a1, 2
443
- ; CHECK-NEXT: sub sp, sp, a1
444
- ; CHECK-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x04, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 4 * vlenb
445
- ; CHECK-NEXT: vl4r.v v8, (a0)
446
- ; CHECK-NEXT: addi a0, sp, 16
447
- ; CHECK-NEXT: vs4r.v v8, (a0)
448
422
; CHECK-NEXT: vsetvli a1, zero, e8, m1, ta, ma
449
423
; CHECK-NEXT: vlseg4e8.v v5, (a0)
450
- ; CHECK-NEXT: csrr a0, vlenb
451
- ; CHECK-NEXT: slli a0, a0, 2
452
- ; CHECK-NEXT: add sp, sp, a0
453
- ; CHECK-NEXT: .cfi_def_cfa sp, 16
454
- ; CHECK-NEXT: addi sp, sp, 16
455
- ; CHECK-NEXT: .cfi_def_cfa_offset 0
456
424
; CHECK-NEXT: ret
457
425
%vec = load <vscale x 32 x i8 >, ptr %p
458
426
%d0 = call { <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 > } @llvm.vector.deinterleave4 (<vscale x 32 x i8 > %vec )
@@ -463,23 +431,8 @@ define <vscale x 8 x i8> @vector_deinterleave_load_factor4_oneactive2(ptr %p) {
463
431
define { <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 > } @vector_deinterleave_load_factor4_twoactive (ptr %p ) {
464
432
; CHECK-LABEL: vector_deinterleave_load_factor4_twoactive:
465
433
; CHECK: # %bb.0:
466
- ; CHECK-NEXT: addi sp, sp, -16
467
- ; CHECK-NEXT: .cfi_def_cfa_offset 16
468
- ; CHECK-NEXT: csrr a1, vlenb
469
- ; CHECK-NEXT: slli a1, a1, 2
470
- ; CHECK-NEXT: sub sp, sp, a1
471
- ; CHECK-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x04, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 4 * vlenb
472
- ; CHECK-NEXT: vl4r.v v8, (a0)
473
- ; CHECK-NEXT: addi a0, sp, 16
474
- ; CHECK-NEXT: vs4r.v v8, (a0)
475
434
; CHECK-NEXT: vsetvli a1, zero, e8, m1, ta, ma
476
435
; CHECK-NEXT: vlseg4e8.v v8, (a0)
477
- ; CHECK-NEXT: csrr a0, vlenb
478
- ; CHECK-NEXT: slli a0, a0, 2
479
- ; CHECK-NEXT: add sp, sp, a0
480
- ; CHECK-NEXT: .cfi_def_cfa sp, 16
481
- ; CHECK-NEXT: addi sp, sp, 16
482
- ; CHECK-NEXT: .cfi_def_cfa_offset 0
483
436
; CHECK-NEXT: ret
484
437
%vec = load <vscale x 32 x i8 >, ptr %p
485
438
%d0 = call { <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 >, <vscale x 8 x i8 > } @llvm.vector.deinterleave4 (<vscale x 32 x i8 > %vec )
0 commit comments