diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vector-vp-mem-legalization.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vector-vp-mem-legalization.ll --- a/llvm/test/CodeGen/RISCV/rvv/fixed-vector-vp-mem-legalization.ll +++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vector-vp-mem-legalization.ll @@ -157,24 +157,24 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 12(sp) +; CHECK-NEXT: vmv.v.i v9, 0 +; CHECK-NEXT: vmerge.vim v9, v9, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf4, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 13(sp) +; CHECK-NEXT: vslidedown.vi v10, v9, 2 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 1 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v9, (a2) ; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, mu ; CHECK-NEXT: addi a2, sp, 12 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v9, (a2) +; CHECK-NEXT: vand.vi v9, v9, 1 +; CHECK-NEXT: vmsne.vi v0, v9, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu @@ -190,24 +190,24 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 12(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf4, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 13(sp) +; CHECK-NEXT: vslidedown.vi v9, v8, 2 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 1 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v8, (a2) ; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, mu ; CHECK-NEXT: addi a2, sp, 12 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu @@ -224,36 +224,36 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 8(sp) +; CHECK-NEXT: vmv.v.i v9, 0 +; CHECK-NEXT: vmerge.vim v9, v9, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf2, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 13(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 12(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 11(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 10(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 9(sp) +; CHECK-NEXT: vslidedown.vi v10, v9, 6 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 5 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 4 +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 3 +; CHECK-NEXT: addi a2, sp, 11 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 2 +; CHECK-NEXT: addi a2, sp, 10 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 1 +; CHECK-NEXT: addi a2, sp, 9 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 8 +; CHECK-NEXT: vse8.v v9, (a2) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu ; CHECK-NEXT: addi a2, sp, 8 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v9, (a2) +; CHECK-NEXT: vand.vi v9, v9, 1 +; CHECK-NEXT: vmsne.vi v0, v9, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu @@ -269,36 +269,36 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 8(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf2, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 13(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 12(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 11(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 10(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 9(sp) +; CHECK-NEXT: vslidedown.vi v9, v8, 6 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 5 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 4 +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 3 +; CHECK-NEXT: addi a2, sp, 11 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 2 +; CHECK-NEXT: addi a2, sp, 10 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 1 +; CHECK-NEXT: addi a2, sp, 9 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 8 +; CHECK-NEXT: vse8.v v8, (a2) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu ; CHECK-NEXT: addi a2, sp, 8 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu @@ -315,60 +315,60 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -32 ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: sb zero, 31(sp) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 16(sp) +; CHECK-NEXT: vmv.v.i v9, 0 +; CHECK-NEXT: vmerge.vim v9, v9, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 14 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 30(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 13 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 29(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 12 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 28(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 11 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 27(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 10 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 26(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 9 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 25(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 8 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 24(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 7 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 23(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 22(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 21(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 20(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 19(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 18(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 17(sp) +; CHECK-NEXT: vslidedown.vi v10, v9, 14 +; CHECK-NEXT: addi a2, sp, 30 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 13 +; CHECK-NEXT: addi a2, sp, 29 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 12 +; CHECK-NEXT: addi a2, sp, 28 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 11 +; CHECK-NEXT: addi a2, sp, 27 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 10 +; CHECK-NEXT: addi a2, sp, 26 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 9 +; CHECK-NEXT: addi a2, sp, 25 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 8 +; CHECK-NEXT: addi a2, sp, 24 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 7 +; CHECK-NEXT: addi a2, sp, 23 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 6 +; CHECK-NEXT: addi a2, sp, 22 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 5 +; CHECK-NEXT: addi a2, sp, 21 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 4 +; CHECK-NEXT: addi a2, sp, 20 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 3 +; CHECK-NEXT: addi a2, sp, 19 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 2 +; CHECK-NEXT: addi a2, sp, 18 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: vslidedown.vi v10, v9, 1 +; CHECK-NEXT: addi a2, sp, 17 +; CHECK-NEXT: vse8.v v10, (a2) +; CHECK-NEXT: sb zero, 31(sp) +; CHECK-NEXT: addi a2, sp, 16 +; CHECK-NEXT: vse8.v v9, (a2) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu ; CHECK-NEXT: addi a2, sp, 16 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v9, (a2) +; CHECK-NEXT: vand.vi v9, v9, 1 +; CHECK-NEXT: vmsne.vi v0, v9, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu @@ -384,60 +384,60 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -32 ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: sb zero, 31(sp) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 16(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 14 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 30(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 13 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 29(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 12 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 28(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 11 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 27(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 10 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 26(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 9 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 25(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 8 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 24(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 7 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 23(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 22(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 21(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 20(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 19(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 18(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 17(sp) +; CHECK-NEXT: vslidedown.vi v9, v8, 14 +; CHECK-NEXT: addi a2, sp, 30 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 13 +; CHECK-NEXT: addi a2, sp, 29 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 12 +; CHECK-NEXT: addi a2, sp, 28 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 11 +; CHECK-NEXT: addi a2, sp, 27 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 10 +; CHECK-NEXT: addi a2, sp, 26 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 9 +; CHECK-NEXT: addi a2, sp, 25 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 8 +; CHECK-NEXT: addi a2, sp, 24 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 7 +; CHECK-NEXT: addi a2, sp, 23 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 6 +; CHECK-NEXT: addi a2, sp, 22 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 5 +; CHECK-NEXT: addi a2, sp, 21 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 4 +; CHECK-NEXT: addi a2, sp, 20 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 3 +; CHECK-NEXT: addi a2, sp, 19 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 2 +; CHECK-NEXT: addi a2, sp, 18 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 1 +; CHECK-NEXT: addi a2, sp, 17 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: sb zero, 31(sp) +; CHECK-NEXT: addi a2, sp, 16 +; CHECK-NEXT: vse8.v v8, (a2) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu ; CHECK-NEXT: addi a2, sp, 16 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu @@ -479,36 +479,36 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 8(sp) +; CHECK-NEXT: vmv.v.i v10, 0 +; CHECK-NEXT: vmerge.vim v10, v10, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf2, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 13(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 12(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 11(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 10(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 9(sp) +; CHECK-NEXT: vslidedown.vi v11, v10, 6 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 5 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 4 +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 3 +; CHECK-NEXT: addi a2, sp, 11 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 2 +; CHECK-NEXT: addi a2, sp, 10 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 1 +; CHECK-NEXT: addi a2, sp, 9 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 8 +; CHECK-NEXT: vse8.v v10, (a2) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu ; CHECK-NEXT: addi a2, sp, 8 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v10, (a2) +; CHECK-NEXT: vand.vi v10, v10, 1 +; CHECK-NEXT: vmsne.vi v0, v10, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu @@ -524,36 +524,36 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -16 ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: sb zero, 15(sp) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 8(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, mf2, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 14(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 13(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 12(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 11(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 10(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 9(sp) +; CHECK-NEXT: vslidedown.vi v9, v8, 6 +; CHECK-NEXT: addi a2, sp, 14 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 5 +; CHECK-NEXT: addi a2, sp, 13 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 4 +; CHECK-NEXT: addi a2, sp, 12 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 3 +; CHECK-NEXT: addi a2, sp, 11 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 2 +; CHECK-NEXT: addi a2, sp, 10 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 1 +; CHECK-NEXT: addi a2, sp, 9 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: sb zero, 15(sp) +; CHECK-NEXT: addi a2, sp, 8 +; CHECK-NEXT: vse8.v v8, (a2) ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, mu ; CHECK-NEXT: addi a2, sp, 8 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu @@ -595,60 +595,60 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -32 ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: sb zero, 31(sp) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 16(sp) +; CHECK-NEXT: vmv.v.i v10, 0 +; CHECK-NEXT: vmerge.vim v10, v10, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 14 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 30(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 13 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 29(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 12 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 28(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 11 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 27(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 10 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 26(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 9 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 25(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 8 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 24(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 7 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 23(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 22(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 21(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 20(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 19(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 18(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 17(sp) +; CHECK-NEXT: vslidedown.vi v11, v10, 14 +; CHECK-NEXT: addi a2, sp, 30 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 13 +; CHECK-NEXT: addi a2, sp, 29 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 12 +; CHECK-NEXT: addi a2, sp, 28 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 11 +; CHECK-NEXT: addi a2, sp, 27 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 10 +; CHECK-NEXT: addi a2, sp, 26 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 9 +; CHECK-NEXT: addi a2, sp, 25 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 8 +; CHECK-NEXT: addi a2, sp, 24 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 7 +; CHECK-NEXT: addi a2, sp, 23 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 6 +; CHECK-NEXT: addi a2, sp, 22 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 5 +; CHECK-NEXT: addi a2, sp, 21 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 4 +; CHECK-NEXT: addi a2, sp, 20 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 3 +; CHECK-NEXT: addi a2, sp, 19 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 2 +; CHECK-NEXT: addi a2, sp, 18 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: vslidedown.vi v11, v10, 1 +; CHECK-NEXT: addi a2, sp, 17 +; CHECK-NEXT: vse8.v v11, (a2) +; CHECK-NEXT: sb zero, 31(sp) +; CHECK-NEXT: addi a2, sp, 16 +; CHECK-NEXT: vse8.v v10, (a2) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu ; CHECK-NEXT: addi a2, sp, 16 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v10, (a2) +; CHECK-NEXT: vand.vi v10, v10, 1 +; CHECK-NEXT: vmsne.vi v0, v10, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu @@ -664,60 +664,60 @@ ; CHECK: # %bb.0: ; CHECK-NEXT: addi sp, sp, -32 ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: sb zero, 31(sp) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu -; CHECK-NEXT: vmv.v.i v25, 0 -; CHECK-NEXT: vmerge.vim v25, v25, 1, v0 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 16(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m1, ta, mu -; CHECK-NEXT: vslidedown.vi v26, v25, 14 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 30(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 13 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 29(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 12 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 28(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 11 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 27(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 10 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 26(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 9 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 25(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 8 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 24(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 7 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 23(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 6 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 22(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 5 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 21(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 4 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 20(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 3 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 19(sp) -; CHECK-NEXT: vslidedown.vi v26, v25, 2 -; CHECK-NEXT: vmv.x.s a2, v26 -; CHECK-NEXT: sb a2, 18(sp) -; CHECK-NEXT: vslidedown.vi v25, v25, 1 -; CHECK-NEXT: vmv.x.s a2, v25 -; CHECK-NEXT: sb a2, 17(sp) +; CHECK-NEXT: vslidedown.vi v9, v8, 14 +; CHECK-NEXT: addi a2, sp, 30 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 13 +; CHECK-NEXT: addi a2, sp, 29 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 12 +; CHECK-NEXT: addi a2, sp, 28 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 11 +; CHECK-NEXT: addi a2, sp, 27 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 10 +; CHECK-NEXT: addi a2, sp, 26 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 9 +; CHECK-NEXT: addi a2, sp, 25 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 8 +; CHECK-NEXT: addi a2, sp, 24 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 7 +; CHECK-NEXT: addi a2, sp, 23 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 6 +; CHECK-NEXT: addi a2, sp, 22 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 5 +; CHECK-NEXT: addi a2, sp, 21 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 4 +; CHECK-NEXT: addi a2, sp, 20 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 3 +; CHECK-NEXT: addi a2, sp, 19 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 2 +; CHECK-NEXT: addi a2, sp, 18 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: vslidedown.vi v9, v8, 1 +; CHECK-NEXT: addi a2, sp, 17 +; CHECK-NEXT: vse8.v v9, (a2) +; CHECK-NEXT: sb zero, 31(sp) +; CHECK-NEXT: addi a2, sp, 16 +; CHECK-NEXT: vse8.v v8, (a2) ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu ; CHECK-NEXT: addi a2, sp, 16 -; CHECK-NEXT: vle8.v v25, (a2) -; CHECK-NEXT: vand.vi v25, v25, 1 -; CHECK-NEXT: vmsne.vi v0, v25, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu @@ -766,116 +766,116 @@ ; CHECK-NEXT: addi s0, sp, 96 ; CHECK-NEXT: .cfi_def_cfa s0, 0 ; CHECK-NEXT: andi sp, sp, -32 -; CHECK-NEXT: sb zero, 63(sp) -; CHECK-NEXT: addi a2, zero, 32 +; CHECK-NEXT: li a2, 32 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, mu -; CHECK-NEXT: vmv.v.i v26, 0 -; CHECK-NEXT: vmerge.vim v26, v26, 1, v0 -; CHECK-NEXT: vmv.x.s a3, v26 -; CHECK-NEXT: sb a3, 32(sp) +; CHECK-NEXT: vmv.v.i v10, 0 +; CHECK-NEXT: vmerge.vim v10, v10, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m2, ta, mu -; CHECK-NEXT: vslidedown.vi v28, v26, 30 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 62(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 29 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 61(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 28 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 60(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 27 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 59(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 26 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 58(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 25 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 57(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 24 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 56(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 23 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 55(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 22 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 54(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 21 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 53(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 20 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 52(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 19 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 51(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 18 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 50(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 17 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 49(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 16 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 48(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 15 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 47(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 14 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 46(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 13 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 45(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 12 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 44(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 11 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 43(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 10 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 42(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 9 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 41(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 8 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 40(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 7 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 39(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 6 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 38(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 5 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 37(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 4 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 36(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 3 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 35(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 2 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 34(sp) -; CHECK-NEXT: vslidedown.vi v26, v26, 1 -; CHECK-NEXT: vmv.x.s a3, v26 -; CHECK-NEXT: sb a3, 33(sp) +; CHECK-NEXT: vslidedown.vi v12, v10, 30 +; CHECK-NEXT: addi a3, sp, 62 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 29 +; CHECK-NEXT: addi a3, sp, 61 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 28 +; CHECK-NEXT: addi a3, sp, 60 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 27 +; CHECK-NEXT: addi a3, sp, 59 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 26 +; CHECK-NEXT: addi a3, sp, 58 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 25 +; CHECK-NEXT: addi a3, sp, 57 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 24 +; CHECK-NEXT: addi a3, sp, 56 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 23 +; CHECK-NEXT: addi a3, sp, 55 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 22 +; CHECK-NEXT: addi a3, sp, 54 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 21 +; CHECK-NEXT: addi a3, sp, 53 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 20 +; CHECK-NEXT: addi a3, sp, 52 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 19 +; CHECK-NEXT: addi a3, sp, 51 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 18 +; CHECK-NEXT: addi a3, sp, 50 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 17 +; CHECK-NEXT: addi a3, sp, 49 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 16 +; CHECK-NEXT: addi a3, sp, 48 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 15 +; CHECK-NEXT: addi a3, sp, 47 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 14 +; CHECK-NEXT: addi a3, sp, 46 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 13 +; CHECK-NEXT: addi a3, sp, 45 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 12 +; CHECK-NEXT: addi a3, sp, 44 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 11 +; CHECK-NEXT: addi a3, sp, 43 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 10 +; CHECK-NEXT: addi a3, sp, 42 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 9 +; CHECK-NEXT: addi a3, sp, 41 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 8 +; CHECK-NEXT: addi a3, sp, 40 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 7 +; CHECK-NEXT: addi a3, sp, 39 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 6 +; CHECK-NEXT: addi a3, sp, 38 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 5 +; CHECK-NEXT: addi a3, sp, 37 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 4 +; CHECK-NEXT: addi a3, sp, 36 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 3 +; CHECK-NEXT: addi a3, sp, 35 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 2 +; CHECK-NEXT: addi a3, sp, 34 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: vslidedown.vi v12, v10, 1 +; CHECK-NEXT: addi a3, sp, 33 +; CHECK-NEXT: vse8.v v12, (a3) +; CHECK-NEXT: sb zero, 63(sp) +; CHECK-NEXT: addi a3, sp, 32 +; CHECK-NEXT: vse8.v v10, (a3) ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, mu ; CHECK-NEXT: addi a2, sp, 32 -; CHECK-NEXT: vle8.v v26, (a2) -; CHECK-NEXT: vand.vi v26, v26, 1 -; CHECK-NEXT: vmsne.vi v0, v26, 0 +; CHECK-NEXT: vle8.v v10, (a2) +; CHECK-NEXT: vand.vi v10, v10, 1 +; CHECK-NEXT: vmsne.vi v0, v10, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu ; CHECK-NEXT: vse8.v v8, (a0), v0.t ; CHECK-NEXT: addi sp, s0, -96 -; CHECK-NEXT: ld s0, 80(sp) # 8-byte Folded Reload ; CHECK-NEXT: ld ra, 88(sp) # 8-byte Folded Reload +; CHECK-NEXT: ld s0, 80(sp) # 8-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 96 ; CHECK-NEXT: ret call void @llvm.vp.store.v31i8(<31 x i8> %val, <31 x i8>* %ptr, <31 x i1> %m, i32 %evl) @@ -894,116 +894,116 @@ ; CHECK-NEXT: addi s0, sp, 96 ; CHECK-NEXT: .cfi_def_cfa s0, 0 ; CHECK-NEXT: andi sp, sp, -32 -; CHECK-NEXT: sb zero, 63(sp) -; CHECK-NEXT: addi a2, zero, 32 +; CHECK-NEXT: li a2, 32 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, mu -; CHECK-NEXT: vmv.v.i v26, 0 -; CHECK-NEXT: vmerge.vim v26, v26, 1, v0 -; CHECK-NEXT: vmv.x.s a3, v26 -; CHECK-NEXT: sb a3, 32(sp) +; CHECK-NEXT: vmv.v.i v8, 0 +; CHECK-NEXT: vmerge.vim v8, v8, 1, v0 ; CHECK-NEXT: vsetivli zero, 1, e8, m2, ta, mu -; CHECK-NEXT: vslidedown.vi v28, v26, 30 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 62(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 29 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 61(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 28 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 60(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 27 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 59(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 26 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 58(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 25 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 57(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 24 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 56(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 23 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 55(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 22 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 54(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 21 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 53(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 20 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 52(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 19 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 51(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 18 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 50(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 17 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 49(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 16 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 48(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 15 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 47(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 14 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 46(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 13 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 45(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 12 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 44(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 11 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 43(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 10 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 42(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 9 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 41(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 8 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 40(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 7 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 39(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 6 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 38(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 5 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 37(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 4 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 36(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 3 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 35(sp) -; CHECK-NEXT: vslidedown.vi v28, v26, 2 -; CHECK-NEXT: vmv.x.s a3, v28 -; CHECK-NEXT: sb a3, 34(sp) -; CHECK-NEXT: vslidedown.vi v26, v26, 1 -; CHECK-NEXT: vmv.x.s a3, v26 -; CHECK-NEXT: sb a3, 33(sp) +; CHECK-NEXT: vslidedown.vi v10, v8, 30 +; CHECK-NEXT: addi a3, sp, 62 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 29 +; CHECK-NEXT: addi a3, sp, 61 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 28 +; CHECK-NEXT: addi a3, sp, 60 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 27 +; CHECK-NEXT: addi a3, sp, 59 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 26 +; CHECK-NEXT: addi a3, sp, 58 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 25 +; CHECK-NEXT: addi a3, sp, 57 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 24 +; CHECK-NEXT: addi a3, sp, 56 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 23 +; CHECK-NEXT: addi a3, sp, 55 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 22 +; CHECK-NEXT: addi a3, sp, 54 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 21 +; CHECK-NEXT: addi a3, sp, 53 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 20 +; CHECK-NEXT: addi a3, sp, 52 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 19 +; CHECK-NEXT: addi a3, sp, 51 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 18 +; CHECK-NEXT: addi a3, sp, 50 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 17 +; CHECK-NEXT: addi a3, sp, 49 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 16 +; CHECK-NEXT: addi a3, sp, 48 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 15 +; CHECK-NEXT: addi a3, sp, 47 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 14 +; CHECK-NEXT: addi a3, sp, 46 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 13 +; CHECK-NEXT: addi a3, sp, 45 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 12 +; CHECK-NEXT: addi a3, sp, 44 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 11 +; CHECK-NEXT: addi a3, sp, 43 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 10 +; CHECK-NEXT: addi a3, sp, 42 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 9 +; CHECK-NEXT: addi a3, sp, 41 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 8 +; CHECK-NEXT: addi a3, sp, 40 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 7 +; CHECK-NEXT: addi a3, sp, 39 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 6 +; CHECK-NEXT: addi a3, sp, 38 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 5 +; CHECK-NEXT: addi a3, sp, 37 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 4 +; CHECK-NEXT: addi a3, sp, 36 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 3 +; CHECK-NEXT: addi a3, sp, 35 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 2 +; CHECK-NEXT: addi a3, sp, 34 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: vslidedown.vi v10, v8, 1 +; CHECK-NEXT: addi a3, sp, 33 +; CHECK-NEXT: vse8.v v10, (a3) +; CHECK-NEXT: sb zero, 63(sp) +; CHECK-NEXT: addi a3, sp, 32 +; CHECK-NEXT: vse8.v v8, (a3) ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, mu ; CHECK-NEXT: addi a2, sp, 32 -; CHECK-NEXT: vle8.v v26, (a2) -; CHECK-NEXT: vand.vi v26, v26, 1 -; CHECK-NEXT: vmsne.vi v0, v26, 0 +; CHECK-NEXT: vle8.v v8, (a2) +; CHECK-NEXT: vand.vi v8, v8, 1 +; CHECK-NEXT: vmsne.vi v0, v8, 0 ; CHECK-NEXT: slli a1, a1, 32 ; CHECK-NEXT: srli a1, a1, 32 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu ; CHECK-NEXT: vle8.v v8, (a0), v0.t ; CHECK-NEXT: addi sp, s0, -96 -; CHECK-NEXT: ld s0, 80(sp) # 8-byte Folded Reload ; CHECK-NEXT: ld ra, 88(sp) # 8-byte Folded Reload +; CHECK-NEXT: ld s0, 80(sp) # 8-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 96 ; CHECK-NEXT: ret %res = call <31 x i8> @llvm.vp.load.v31i8(<31 x i8>* %ptr, <31 x i1> %m, i32 %evl)