[llvm] [RISCV] Set CostPerUse to 1 only when optimizing for size (PR #201501)

Pengcheng Wang via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 10 21:51:35 PDT 2026


https://github.com/wangpc-pp updated https://github.com/llvm/llvm-project/pull/201501

>From 5050bcadffdfdfc52fe03a0ae501010d0d06cc87 Mon Sep 17 00:00:00 2001
From: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: Thu, 4 Jun 2026 11:49:17 +0800
Subject: [PATCH] [RISCV] Set CostPerUse to 1 only when optimizing for size

We saw some regressions because of bad RAs as the cost of registers
beyond x8-x15 are bigger. This is why `DisableCostPerUse` was added
in https://github.com/llvm/llvm-project/issues/83320.

In this PR, we change it to set `CostPerUse=1` only when optimizing
for size.

Code size increases less than 0.1% in llvm-test-suite.
---
 llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp   |    5 +-
 llvm/test/CodeGen/RISCV/add-before-shl.ll     |   24 +-
 llvm/test/CodeGen/RISCV/callee-saved-gprs.ll  |  488 ++---
 .../test/CodeGen/RISCV/fold-addi-loadstore.ll |   46 +-
 llvm/test/CodeGen/RISCV/machine-pipeliner.ll  |   34 +-
 llvm/test/CodeGen/RISCV/nontemporal.ll        |  480 ++---
 llvm/test/CodeGen/RISCV/push-pop-popret.ll    | 1200 +++++------
 .../CodeGen/RISCV/qci-interrupt-attr-fpr.ll   |  576 +++---
 llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll | 1264 ++++++------
 .../RISCV/rvv/fixed-vectors-int-buildvec.ll   |  410 ++--
 .../RISCV/rvv/nontemporal-vp-scalable.ll      | 1740 ++++++++--------
 llvm/test/CodeGen/RISCV/rvv/pr95865.ll        |  106 +-
 .../RISCV/rvv/vsetvli-insert-crossbb.ll       |   12 +-
 .../RISCV/rvv/vxrm-insert-out-of-loop.ll      |  214 +-
 llvm/test/CodeGen/RISCV/select-cc.ll          |   10 +-
 .../CodeGen/RISCV/xqccmp-callee-saved-gprs.ll |  488 ++---
 .../CodeGen/RISCV/xqccmp-push-pop-popret.ll   | 1808 ++++++++---------
 17 files changed, 4454 insertions(+), 4451 deletions(-)

diff --git a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
index 7ee3542b05458..442581a846c77 100644
--- a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
+++ b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
@@ -912,7 +912,10 @@ void RISCVRegisterInfo::getOffsetOpcodes(const StackOffset &Offset,
 
 unsigned
 RISCVRegisterInfo::getRegisterCostTableIndex(const MachineFunction &MF) const {
-  return MF.getSubtarget<RISCVSubtarget>().hasStdExtZca() && !DisableCostPerUse
+  // Set CostPerUse to 1 only when optimizing for size and RVC exists.
+  return MF.getFunction().hasOptSize() &&
+                 MF.getSubtarget<RISCVSubtarget>().hasStdExtZca() &&
+                 !DisableCostPerUse
              ? 1
              : 0;
 }
diff --git a/llvm/test/CodeGen/RISCV/add-before-shl.ll b/llvm/test/CodeGen/RISCV/add-before-shl.ll
index 72d8b2727987c..b30552f90771b 100644
--- a/llvm/test/CodeGen/RISCV/add-before-shl.ll
+++ b/llvm/test/CodeGen/RISCV/add-before-shl.ll
@@ -200,26 +200,26 @@ define i128 @add_wide_operand(i128 %a) nounwind {
 ;
 ; RV32C-LABEL: add_wide_operand:
 ; RV32C:       # %bb.0:
-; RV32C-NEXT:    c.lw a4, 12(a1)
+; RV32C-NEXT:    c.lw a2, 12(a1)
 ; RV32C-NEXT:    c.lw a3, 0(a1)
-; RV32C-NEXT:    c.lw a2, 4(a1)
+; RV32C-NEXT:    c.lw a4, 4(a1)
 ; RV32C-NEXT:    c.lw a1, 8(a1)
 ; RV32C-NEXT:    c.lui a5, 16
-; RV32C-NEXT:    add a6, a4, a5
+; RV32C-NEXT:    c.add a2, a5
 ; RV32C-NEXT:    srli a5, a3, 29
-; RV32C-NEXT:    slli a4, a2, 3
-; RV32C-NEXT:    c.or a4, a5
-; RV32C-NEXT:    srli a5, a1, 29
-; RV32C-NEXT:    c.srli a2, 29
-; RV32C-NEXT:    c.slli a6, 3
-; RV32C-NEXT:    c.slli a1, 3
+; RV32C-NEXT:    slli a6, a4, 3
 ; RV32C-NEXT:    or a5, a6, a5
-; RV32C-NEXT:    c.or a1, a2
+; RV32C-NEXT:    srli a6, a1, 29
+; RV32C-NEXT:    c.srli a4, 29
+; RV32C-NEXT:    c.slli a2, 3
+; RV32C-NEXT:    c.slli a1, 3
+; RV32C-NEXT:    or a2, a2, a6
+; RV32C-NEXT:    c.or a1, a4
 ; RV32C-NEXT:    c.slli a3, 3
 ; RV32C-NEXT:    c.sw a3, 0(a0)
-; RV32C-NEXT:    c.sw a4, 4(a0)
+; RV32C-NEXT:    c.sw a5, 4(a0)
 ; RV32C-NEXT:    c.sw a1, 8(a0)
-; RV32C-NEXT:    c.sw a5, 12(a0)
+; RV32C-NEXT:    c.sw a2, 12(a0)
 ; RV32C-NEXT:    c.jr ra
 ;
 ; RV64C-LABEL: add_wide_operand:
diff --git a/llvm/test/CodeGen/RISCV/callee-saved-gprs.ll b/llvm/test/CodeGen/RISCV/callee-saved-gprs.ll
index dd8a20445877b..35e46434bc798 100644
--- a/llvm/test/CodeGen/RISCV/callee-saved-gprs.ll
+++ b/llvm/test/CodeGen/RISCV/callee-saved-gprs.ll
@@ -448,60 +448,60 @@ define void @callee() {
 ; RV32IZCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IZCMP-NEXT:    lw a1, 16(a0)
 ; RV32IZCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IZCMP-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-NEXT:    lw t0, 112(a0)
-; RV32IZCMP-NEXT:    lw s0, 116(a0)
-; RV32IZCMP-NEXT:    lw s1, 120(a0)
-; RV32IZCMP-NEXT:    lw a5, 124(a0)
-; RV32IZCMP-NEXT:    lw t1, 96(a0)
-; RV32IZCMP-NEXT:    lw a6, 100(a0)
-; RV32IZCMP-NEXT:    lw a3, 104(a0)
+; RV32IZCMP-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-NEXT:    lw s0, 56(a0)
+; RV32IZCMP-NEXT:    lw s1, 60(a0)
+; RV32IZCMP-NEXT:    lw s2, 64(a0)
+; RV32IZCMP-NEXT:    lw s3, 68(a0)
+; RV32IZCMP-NEXT:    lw s4, 72(a0)
+; RV32IZCMP-NEXT:    lw s5, 76(a0)
+; RV32IZCMP-NEXT:    lw s6, 112(a0)
+; RV32IZCMP-NEXT:    lw s7, 116(a0)
+; RV32IZCMP-NEXT:    lw s8, 120(a0)
+; RV32IZCMP-NEXT:    lw s9, 124(a0)
+; RV32IZCMP-NEXT:    lw s10, 96(a0)
+; RV32IZCMP-NEXT:    lw s11, 100(a0)
+; RV32IZCMP-NEXT:    lw ra, 104(a0)
 ; RV32IZCMP-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-NEXT:    lw a4, 88(a0)
+; RV32IZCMP-NEXT:    lw a5, 80(a0)
+; RV32IZCMP-NEXT:    lw a4, 84(a0)
+; RV32IZCMP-NEXT:    lw a3, 88(a0)
 ; RV32IZCMP-NEXT:    lw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a5, 124(a0)
-; RV32IZCMP-NEXT:    sw s1, 120(a0)
-; RV32IZCMP-NEXT:    sw s0, 116(a0)
-; RV32IZCMP-NEXT:    sw t0, 112(a0)
+; RV32IZCMP-NEXT:    sw s9, 124(a0)
+; RV32IZCMP-NEXT:    sw s8, 120(a0)
+; RV32IZCMP-NEXT:    sw s7, 116(a0)
+; RV32IZCMP-NEXT:    sw s6, 112(a0)
 ; RV32IZCMP-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-NEXT:    sw a3, 104(a0)
-; RV32IZCMP-NEXT:    sw a6, 100(a0)
-; RV32IZCMP-NEXT:    sw t1, 96(a0)
+; RV32IZCMP-NEXT:    sw ra, 104(a0)
+; RV32IZCMP-NEXT:    sw s11, 100(a0)
+; RV32IZCMP-NEXT:    sw s10, 96(a0)
 ; RV32IZCMP-NEXT:    sw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a4, 88(a0)
-; RV32IZCMP-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-NEXT:    sw t3, 20(a0)
+; RV32IZCMP-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-NEXT:    sw a4, 84(a0)
+; RV32IZCMP-NEXT:    sw a5, 80(a0)
+; RV32IZCMP-NEXT:    sw s5, 76(a0)
+; RV32IZCMP-NEXT:    sw s4, 72(a0)
+; RV32IZCMP-NEXT:    sw s3, 68(a0)
+; RV32IZCMP-NEXT:    sw s2, 64(a0)
+; RV32IZCMP-NEXT:    sw s1, 60(a0)
+; RV32IZCMP-NEXT:    sw s0, 56(a0)
+; RV32IZCMP-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-NEXT:    sw a6, 20(a0)
 ; RV32IZCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IZCMP-NEXT:    sw a1, 16(a0)
 ; RV32IZCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -560,58 +560,58 @@ define void @callee() {
 ; RV32IZCMP-WITH-FP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
 ; RV32IZCMP-WITH-FP-NEXT:    lw a1, 20(a0)
 ; RV32IZCMP-WITH-FP-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
-; RV32IZCMP-WITH-FP-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw s1, 112(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t0, 116(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a4, 120(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a2, 124(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t3, 96(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t1, 100(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a6, 104(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s1, 56(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s2, 60(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s3, 64(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s4, 68(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s5, 72(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s6, 76(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s7, 112(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s8, 116(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s9, 120(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s10, 124(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw s11, 96(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw ra, 100(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a4, 104(a0)
 ; RV32IZCMP-WITH-FP-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a5, 88(a0)
-; RV32IZCMP-WITH-FP-NEXT:    lw a3, 92(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a2, 124(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a4, 120(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t0, 116(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s1, 112(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a6, 80(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a5, 84(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a3, 88(a0)
+; RV32IZCMP-WITH-FP-NEXT:    lw a2, 92(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s10, 124(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s9, 120(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s8, 116(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s7, 112(a0)
 ; RV32IZCMP-WITH-FP-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a6, 104(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t1, 100(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t3, 96(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a3, 92(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a5, 88(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-WITH-FP-NEXT:    sw t4, 24(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a4, 104(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw ra, 100(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s11, 96(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a2, 92(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a5, 84(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a6, 80(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s6, 76(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s5, 72(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s4, 68(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s3, 64(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s2, 60(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw s1, 56(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-WITH-FP-NEXT:    sw a7, 24(a0)
 ; RV32IZCMP-WITH-FP-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
 ; RV32IZCMP-WITH-FP-NEXT:    sw a1, 20(a0)
 ; RV32IZCMP-WITH-FP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload
@@ -1057,60 +1057,60 @@ define void @callee() {
 ; RV64IZCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IZCMP-NEXT:    lw a1, 16(a0)
 ; RV64IZCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IZCMP-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-NEXT:    lw t0, 112(a0)
-; RV64IZCMP-NEXT:    lw s0, 116(a0)
-; RV64IZCMP-NEXT:    lw s1, 120(a0)
-; RV64IZCMP-NEXT:    lw a5, 124(a0)
-; RV64IZCMP-NEXT:    lw t1, 96(a0)
-; RV64IZCMP-NEXT:    lw a6, 100(a0)
-; RV64IZCMP-NEXT:    lw a3, 104(a0)
+; RV64IZCMP-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-NEXT:    lw s0, 56(a0)
+; RV64IZCMP-NEXT:    lw s1, 60(a0)
+; RV64IZCMP-NEXT:    lw s2, 64(a0)
+; RV64IZCMP-NEXT:    lw s3, 68(a0)
+; RV64IZCMP-NEXT:    lw s4, 72(a0)
+; RV64IZCMP-NEXT:    lw s5, 76(a0)
+; RV64IZCMP-NEXT:    lw s6, 112(a0)
+; RV64IZCMP-NEXT:    lw s7, 116(a0)
+; RV64IZCMP-NEXT:    lw s8, 120(a0)
+; RV64IZCMP-NEXT:    lw s9, 124(a0)
+; RV64IZCMP-NEXT:    lw s10, 96(a0)
+; RV64IZCMP-NEXT:    lw s11, 100(a0)
+; RV64IZCMP-NEXT:    lw ra, 104(a0)
 ; RV64IZCMP-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-NEXT:    lw a4, 88(a0)
+; RV64IZCMP-NEXT:    lw a5, 80(a0)
+; RV64IZCMP-NEXT:    lw a4, 84(a0)
+; RV64IZCMP-NEXT:    lw a3, 88(a0)
 ; RV64IZCMP-NEXT:    lw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a5, 124(a0)
-; RV64IZCMP-NEXT:    sw s1, 120(a0)
-; RV64IZCMP-NEXT:    sw s0, 116(a0)
-; RV64IZCMP-NEXT:    sw t0, 112(a0)
+; RV64IZCMP-NEXT:    sw s9, 124(a0)
+; RV64IZCMP-NEXT:    sw s8, 120(a0)
+; RV64IZCMP-NEXT:    sw s7, 116(a0)
+; RV64IZCMP-NEXT:    sw s6, 112(a0)
 ; RV64IZCMP-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-NEXT:    sw a3, 104(a0)
-; RV64IZCMP-NEXT:    sw a6, 100(a0)
-; RV64IZCMP-NEXT:    sw t1, 96(a0)
+; RV64IZCMP-NEXT:    sw ra, 104(a0)
+; RV64IZCMP-NEXT:    sw s11, 100(a0)
+; RV64IZCMP-NEXT:    sw s10, 96(a0)
 ; RV64IZCMP-NEXT:    sw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a4, 88(a0)
-; RV64IZCMP-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-NEXT:    sw t3, 20(a0)
+; RV64IZCMP-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-NEXT:    sw a4, 84(a0)
+; RV64IZCMP-NEXT:    sw a5, 80(a0)
+; RV64IZCMP-NEXT:    sw s5, 76(a0)
+; RV64IZCMP-NEXT:    sw s4, 72(a0)
+; RV64IZCMP-NEXT:    sw s3, 68(a0)
+; RV64IZCMP-NEXT:    sw s2, 64(a0)
+; RV64IZCMP-NEXT:    sw s1, 60(a0)
+; RV64IZCMP-NEXT:    sw s0, 56(a0)
+; RV64IZCMP-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-NEXT:    sw a6, 20(a0)
 ; RV64IZCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IZCMP-NEXT:    sw a1, 16(a0)
 ; RV64IZCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -1169,58 +1169,58 @@ define void @callee() {
 ; RV64IZCMP-WITH-FP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IZCMP-WITH-FP-NEXT:    lw a1, 20(a0)
 ; RV64IZCMP-WITH-FP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IZCMP-WITH-FP-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw s1, 112(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t0, 116(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a4, 120(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a2, 124(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t3, 96(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t1, 100(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a6, 104(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s1, 56(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s2, 60(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s3, 64(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s4, 68(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s5, 72(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s6, 76(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s7, 112(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s8, 116(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s9, 120(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s10, 124(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw s11, 96(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw ra, 100(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a4, 104(a0)
 ; RV64IZCMP-WITH-FP-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a5, 88(a0)
-; RV64IZCMP-WITH-FP-NEXT:    lw a3, 92(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a2, 124(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a4, 120(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t0, 116(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s1, 112(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a6, 80(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a5, 84(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a3, 88(a0)
+; RV64IZCMP-WITH-FP-NEXT:    lw a2, 92(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s10, 124(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s9, 120(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s8, 116(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s7, 112(a0)
 ; RV64IZCMP-WITH-FP-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a6, 104(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t1, 100(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t3, 96(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a3, 92(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a5, 88(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-WITH-FP-NEXT:    sw t4, 24(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a4, 104(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw ra, 100(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s11, 96(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a2, 92(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a5, 84(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a6, 80(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s6, 76(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s5, 72(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s4, 68(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s3, 64(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s2, 60(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw s1, 56(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-WITH-FP-NEXT:    sw a7, 24(a0)
 ; RV64IZCMP-WITH-FP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IZCMP-WITH-FP-NEXT:    sw a1, 20(a0)
 ; RV64IZCMP-WITH-FP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -2228,29 +2228,29 @@ define void @caller() {
 ; RV32IZCMP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; RV32IZCMP-NEXT:    lw a0, 80(s0)
 ; RV32IZCMP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; RV32IZCMP-NEXT:    lw s1, 84(s0)
-; RV32IZCMP-NEXT:    lw s2, 88(s0)
-; RV32IZCMP-NEXT:    lw s3, 92(s0)
-; RV32IZCMP-NEXT:    lw s4, 96(s0)
-; RV32IZCMP-NEXT:    lw s5, 100(s0)
-; RV32IZCMP-NEXT:    lw s6, 104(s0)
-; RV32IZCMP-NEXT:    lw s7, 108(s0)
-; RV32IZCMP-NEXT:    lw s8, 112(s0)
-; RV32IZCMP-NEXT:    lw s9, 116(s0)
-; RV32IZCMP-NEXT:    lw s10, 120(s0)
-; RV32IZCMP-NEXT:    lw s11, 124(s0)
+; RV32IZCMP-NEXT:    lw s11, 84(s0)
+; RV32IZCMP-NEXT:    lw s1, 88(s0)
+; RV32IZCMP-NEXT:    lw s2, 92(s0)
+; RV32IZCMP-NEXT:    lw s3, 96(s0)
+; RV32IZCMP-NEXT:    lw s4, 100(s0)
+; RV32IZCMP-NEXT:    lw s5, 104(s0)
+; RV32IZCMP-NEXT:    lw s6, 108(s0)
+; RV32IZCMP-NEXT:    lw s7, 112(s0)
+; RV32IZCMP-NEXT:    lw s8, 116(s0)
+; RV32IZCMP-NEXT:    lw s9, 120(s0)
+; RV32IZCMP-NEXT:    lw s10, 124(s0)
 ; RV32IZCMP-NEXT:    call callee
-; RV32IZCMP-NEXT:    sw s11, 124(s0)
-; RV32IZCMP-NEXT:    sw s10, 120(s0)
-; RV32IZCMP-NEXT:    sw s9, 116(s0)
-; RV32IZCMP-NEXT:    sw s8, 112(s0)
-; RV32IZCMP-NEXT:    sw s7, 108(s0)
-; RV32IZCMP-NEXT:    sw s6, 104(s0)
-; RV32IZCMP-NEXT:    sw s5, 100(s0)
-; RV32IZCMP-NEXT:    sw s4, 96(s0)
-; RV32IZCMP-NEXT:    sw s3, 92(s0)
-; RV32IZCMP-NEXT:    sw s2, 88(s0)
-; RV32IZCMP-NEXT:    sw s1, 84(s0)
+; RV32IZCMP-NEXT:    sw s10, 124(s0)
+; RV32IZCMP-NEXT:    sw s9, 120(s0)
+; RV32IZCMP-NEXT:    sw s8, 116(s0)
+; RV32IZCMP-NEXT:    sw s7, 112(s0)
+; RV32IZCMP-NEXT:    sw s6, 108(s0)
+; RV32IZCMP-NEXT:    sw s5, 104(s0)
+; RV32IZCMP-NEXT:    sw s4, 100(s0)
+; RV32IZCMP-NEXT:    sw s3, 96(s0)
+; RV32IZCMP-NEXT:    sw s2, 92(s0)
+; RV32IZCMP-NEXT:    sw s1, 88(s0)
+; RV32IZCMP-NEXT:    sw s11, 84(s0)
 ; RV32IZCMP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; RV32IZCMP-NEXT:    sw a0, 80(s0)
 ; RV32IZCMP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -3026,29 +3026,29 @@ define void @caller() {
 ; RV64IZCMP-NEXT:    sd a0, 16(sp) # 8-byte Folded Spill
 ; RV64IZCMP-NEXT:    lw a0, 80(s0)
 ; RV64IZCMP-NEXT:    sd a0, 8(sp) # 8-byte Folded Spill
-; RV64IZCMP-NEXT:    lw s1, 84(s0)
-; RV64IZCMP-NEXT:    lw s2, 88(s0)
-; RV64IZCMP-NEXT:    lw s3, 92(s0)
-; RV64IZCMP-NEXT:    lw s4, 96(s0)
-; RV64IZCMP-NEXT:    lw s5, 100(s0)
-; RV64IZCMP-NEXT:    lw s6, 104(s0)
-; RV64IZCMP-NEXT:    lw s7, 108(s0)
-; RV64IZCMP-NEXT:    lw s8, 112(s0)
-; RV64IZCMP-NEXT:    lw s9, 116(s0)
-; RV64IZCMP-NEXT:    lw s10, 120(s0)
-; RV64IZCMP-NEXT:    lw s11, 124(s0)
+; RV64IZCMP-NEXT:    lw s11, 84(s0)
+; RV64IZCMP-NEXT:    lw s1, 88(s0)
+; RV64IZCMP-NEXT:    lw s2, 92(s0)
+; RV64IZCMP-NEXT:    lw s3, 96(s0)
+; RV64IZCMP-NEXT:    lw s4, 100(s0)
+; RV64IZCMP-NEXT:    lw s5, 104(s0)
+; RV64IZCMP-NEXT:    lw s6, 108(s0)
+; RV64IZCMP-NEXT:    lw s7, 112(s0)
+; RV64IZCMP-NEXT:    lw s8, 116(s0)
+; RV64IZCMP-NEXT:    lw s9, 120(s0)
+; RV64IZCMP-NEXT:    lw s10, 124(s0)
 ; RV64IZCMP-NEXT:    call callee
-; RV64IZCMP-NEXT:    sw s11, 124(s0)
-; RV64IZCMP-NEXT:    sw s10, 120(s0)
-; RV64IZCMP-NEXT:    sw s9, 116(s0)
-; RV64IZCMP-NEXT:    sw s8, 112(s0)
-; RV64IZCMP-NEXT:    sw s7, 108(s0)
-; RV64IZCMP-NEXT:    sw s6, 104(s0)
-; RV64IZCMP-NEXT:    sw s5, 100(s0)
-; RV64IZCMP-NEXT:    sw s4, 96(s0)
-; RV64IZCMP-NEXT:    sw s3, 92(s0)
-; RV64IZCMP-NEXT:    sw s2, 88(s0)
-; RV64IZCMP-NEXT:    sw s1, 84(s0)
+; RV64IZCMP-NEXT:    sw s10, 124(s0)
+; RV64IZCMP-NEXT:    sw s9, 120(s0)
+; RV64IZCMP-NEXT:    sw s8, 116(s0)
+; RV64IZCMP-NEXT:    sw s7, 112(s0)
+; RV64IZCMP-NEXT:    sw s6, 108(s0)
+; RV64IZCMP-NEXT:    sw s5, 104(s0)
+; RV64IZCMP-NEXT:    sw s4, 100(s0)
+; RV64IZCMP-NEXT:    sw s3, 96(s0)
+; RV64IZCMP-NEXT:    sw s2, 92(s0)
+; RV64IZCMP-NEXT:    sw s1, 88(s0)
+; RV64IZCMP-NEXT:    sw s11, 84(s0)
 ; RV64IZCMP-NEXT:    ld a0, 8(sp) # 8-byte Folded Reload
 ; RV64IZCMP-NEXT:    sw a0, 80(s0)
 ; RV64IZCMP-NEXT:    ld a0, 16(sp) # 8-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll b/llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll
index acf9143845c02..e19300a3fe6dd 100644
--- a/llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll
+++ b/llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll
@@ -1113,47 +1113,47 @@ define i64 @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
 ; RV32IXQCILI-NEXT:    sw s5, 20(sp) # 4-byte Folded Spill
 ; RV32IXQCILI-NEXT:    sw s6, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCILI-NEXT:    sw s7, 12(sp) # 4-byte Folded Spill
-; RV32IXQCILI-NEXT:    mv s2, a4
-; RV32IXQCILI-NEXT:    mv s4, a3
-; RV32IXQCILI-NEXT:    mv s3, a2
+; RV32IXQCILI-NEXT:    mv s0, a4
+; RV32IXQCILI-NEXT:    mv s1, a3
+; RV32IXQCILI-NEXT:    mv s2, a2
 ; RV32IXQCILI-NEXT:    beqz a3, .LBB20_3
 ; RV32IXQCILI-NEXT:  # %bb.1: # %entry
-; RV32IXQCILI-NEXT:    srli a1, s4, 31
+; RV32IXQCILI-NEXT:    srli a1, s1, 31
 ; RV32IXQCILI-NEXT:    beqz a1, .LBB20_4
 ; RV32IXQCILI-NEXT:  .LBB20_2:
-; RV32IXQCILI-NEXT:    li s6, 0
-; RV32IXQCILI-NEXT:    li s5, 0
+; RV32IXQCILI-NEXT:    li s3, 0
+; RV32IXQCILI-NEXT:    li s4, 0
 ; RV32IXQCILI-NEXT:    j .LBB20_6
 ; RV32IXQCILI-NEXT:  .LBB20_3:
-; RV32IXQCILI-NEXT:    seqz a1, s3
+; RV32IXQCILI-NEXT:    seqz a1, s2
 ; RV32IXQCILI-NEXT:    bnez a1, .LBB20_2
 ; RV32IXQCILI-NEXT:  .LBB20_4: # %for.body.lr.ph
-; RV32IXQCILI-NEXT:    li s1, 0
-; RV32IXQCILI-NEXT:    li s0, 0
-; RV32IXQCILI-NEXT:    li s6, 0
 ; RV32IXQCILI-NEXT:    li s5, 0
+; RV32IXQCILI-NEXT:    li s6, 0
+; RV32IXQCILI-NEXT:    li s3, 0
+; RV32IXQCILI-NEXT:    li s4, 0
 ; RV32IXQCILI-NEXT:    slli a0, a0, 4
-; RV32IXQCILI-NEXT:    add s7, s2, a0
+; RV32IXQCILI-NEXT:    add s7, s0, a0
 ; RV32IXQCILI-NEXT:  .LBB20_5: # %for.body
 ; RV32IXQCILI-NEXT:    # =>This Inner Loop Header: Depth=1
-; RV32IXQCILI-NEXT:    mv a0, s2
+; RV32IXQCILI-NEXT:    mv a0, s0
 ; RV32IXQCILI-NEXT:    call f
 ; RV32IXQCILI-NEXT:    lw a0, 8(s7)
 ; RV32IXQCILI-NEXT:    lw a1, 12(s7)
-; RV32IXQCILI-NEXT:    addi s1, s1, 1
-; RV32IXQCILI-NEXT:    seqz a2, s1
-; RV32IXQCILI-NEXT:    add s0, s0, a2
-; RV32IXQCILI-NEXT:    add a1, a1, s5
-; RV32IXQCILI-NEXT:    add s6, s6, a0
-; RV32IXQCILI-NEXT:    xor a2, s1, s3
-; RV32IXQCILI-NEXT:    xor a3, s0, s4
+; RV32IXQCILI-NEXT:    addi s5, s5, 1
+; RV32IXQCILI-NEXT:    seqz a2, s5
+; RV32IXQCILI-NEXT:    add s6, s6, a2
+; RV32IXQCILI-NEXT:    add a1, a1, s4
+; RV32IXQCILI-NEXT:    add s3, s3, a0
+; RV32IXQCILI-NEXT:    xor a2, s5, s2
+; RV32IXQCILI-NEXT:    xor a3, s6, s1
 ; RV32IXQCILI-NEXT:    or a2, a2, a3
-; RV32IXQCILI-NEXT:    sltu s5, s6, a0
-; RV32IXQCILI-NEXT:    add s5, s5, a1
+; RV32IXQCILI-NEXT:    sltu s4, s3, a0
+; RV32IXQCILI-NEXT:    add s4, s4, a1
 ; RV32IXQCILI-NEXT:    bnez a2, .LBB20_5
 ; RV32IXQCILI-NEXT:  .LBB20_6: # %for.cond.cleanup
-; RV32IXQCILI-NEXT:    mv a0, s6
-; RV32IXQCILI-NEXT:    mv a1, s5
+; RV32IXQCILI-NEXT:    mv a0, s3
+; RV32IXQCILI-NEXT:    mv a1, s4
 ; RV32IXQCILI-NEXT:    lw ra, 44(sp) # 4-byte Folded Reload
 ; RV32IXQCILI-NEXT:    lw s0, 40(sp) # 4-byte Folded Reload
 ; RV32IXQCILI-NEXT:    lw s1, 36(sp) # 4-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/machine-pipeliner.ll b/llvm/test/CodeGen/RISCV/machine-pipeliner.ll
index a2a7da7e2d6ef..ce2e6aed75135 100644
--- a/llvm/test/CodeGen/RISCV/machine-pipeliner.ll
+++ b/llvm/test/CodeGen/RISCV/machine-pipeliner.ll
@@ -54,37 +54,37 @@ define void @test_pipelined_1(ptr noalias %in, ptr noalias %out, i32 signext %cn
 ; CHECK-PIPELINED:       # %bb.0: # %entry
 ; CHECK-PIPELINED-NEXT:    blez a2, .LBB1_6
 ; CHECK-PIPELINED-NEXT:  # %bb.1: # %for.body.preheader
-; CHECK-PIPELINED-NEXT:    lw a7, 0(a1)
 ; CHECK-PIPELINED-NEXT:    addi a2, a2, -1
 ; CHECK-PIPELINED-NEXT:    addi a3, a0, 4
 ; CHECK-PIPELINED-NEXT:    addi a5, a1, 4
-; CHECK-PIPELINED-NEXT:    sh2add.uw a6, a2, a1
-; CHECK-PIPELINED-NEXT:    addi a6, a6, 4
-; CHECK-PIPELINED-NEXT:    beq a5, a6, .LBB1_5
+; CHECK-PIPELINED-NEXT:    sh2add.uw a4, a2, a1
+; CHECK-PIPELINED-NEXT:    lw a2, 0(a1)
+; CHECK-PIPELINED-NEXT:    addi a4, a4, 4
+; CHECK-PIPELINED-NEXT:    beq a5, a4, .LBB1_5
 ; CHECK-PIPELINED-NEXT:  # %bb.2: # %for.body
 ; CHECK-PIPELINED-NEXT:    lw a1, 0(a5)
-; CHECK-PIPELINED-NEXT:    addi a4, a3, 4
+; CHECK-PIPELINED-NEXT:    addi a6, a3, 4
 ; CHECK-PIPELINED-NEXT:    addi a5, a5, 4
-; CHECK-PIPELINED-NEXT:    beq a5, a6, .LBB1_4
+; CHECK-PIPELINED-NEXT:    beq a5, a4, .LBB1_4
 ; CHECK-PIPELINED-NEXT:  .LBB1_3: # %for.body
 ; CHECK-PIPELINED-NEXT:    # =>This Inner Loop Header: Depth=1
-; CHECK-PIPELINED-NEXT:    addi a2, a7, 1
-; CHECK-PIPELINED-NEXT:    mv a7, a1
+; CHECK-PIPELINED-NEXT:    addi a7, a2, 1
+; CHECK-PIPELINED-NEXT:    mv a2, a1
 ; CHECK-PIPELINED-NEXT:    lw a1, 0(a5)
-; CHECK-PIPELINED-NEXT:    sw a2, 0(a0)
+; CHECK-PIPELINED-NEXT:    sw a7, 0(a0)
 ; CHECK-PIPELINED-NEXT:    mv a0, a3
-; CHECK-PIPELINED-NEXT:    mv a3, a4
-; CHECK-PIPELINED-NEXT:    addi a4, a4, 4
+; CHECK-PIPELINED-NEXT:    mv a3, a6
+; CHECK-PIPELINED-NEXT:    addi a6, a6, 4
 ; CHECK-PIPELINED-NEXT:    addi a5, a5, 4
-; CHECK-PIPELINED-NEXT:    bne a5, a6, .LBB1_3
+; CHECK-PIPELINED-NEXT:    bne a5, a4, .LBB1_3
 ; CHECK-PIPELINED-NEXT:  .LBB1_4:
-; CHECK-PIPELINED-NEXT:    addi a7, a7, 1
-; CHECK-PIPELINED-NEXT:    sw a7, 0(a0)
+; CHECK-PIPELINED-NEXT:    addi a2, a2, 1
+; CHECK-PIPELINED-NEXT:    sw a2, 0(a0)
 ; CHECK-PIPELINED-NEXT:    mv a0, a3
-; CHECK-PIPELINED-NEXT:    mv a7, a1
+; CHECK-PIPELINED-NEXT:    mv a2, a1
 ; CHECK-PIPELINED-NEXT:  .LBB1_5:
-; CHECK-PIPELINED-NEXT:    addi a7, a7, 1
-; CHECK-PIPELINED-NEXT:    sw a7, 0(a0)
+; CHECK-PIPELINED-NEXT:    addi a2, a2, 1
+; CHECK-PIPELINED-NEXT:    sw a2, 0(a0)
 ; CHECK-PIPELINED-NEXT:  .LBB1_6: # %for.end
 ; CHECK-PIPELINED-NEXT:    ret
 entry:
diff --git a/llvm/test/CodeGen/RISCV/nontemporal.ll b/llvm/test/CodeGen/RISCV/nontemporal.ll
index 1b7441fa7d75c..2b2c92e1b920e 100644
--- a/llvm/test/CodeGen/RISCV/nontemporal.ll
+++ b/llvm/test/CodeGen/RISCV/nontemporal.ll
@@ -1035,30 +1035,30 @@ define void @test_nontemporal_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill
 ; CHECK-RV64C-NEXT:    .cfi_offset s0, -8
 ; CHECK-RV64C-NEXT:    .cfi_offset s1, -16
-; CHECK-RV64C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV64C-NEXT:    lbu a7, 8(a1)
-; CHECK-RV64C-NEXT:    lbu t0, 16(a1)
-; CHECK-RV64C-NEXT:    lbu t1, 24(a1)
-; CHECK-RV64C-NEXT:    lbu t2, 32(a1)
-; CHECK-RV64C-NEXT:    lbu t3, 40(a1)
-; CHECK-RV64C-NEXT:    lbu t4, 48(a1)
-; CHECK-RV64C-NEXT:    lbu t5, 56(a1)
-; CHECK-RV64C-NEXT:    lbu a2, 96(a1)
-; CHECK-RV64C-NEXT:    lbu a3, 104(a1)
-; CHECK-RV64C-NEXT:    lbu a4, 112(a1)
-; CHECK-RV64C-NEXT:    lbu a5, 120(a1)
+; CHECK-RV64C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV64C-NEXT:    lbu a3, 8(a1)
+; CHECK-RV64C-NEXT:    lbu a4, 16(a1)
+; CHECK-RV64C-NEXT:    lbu a5, 24(a1)
+; CHECK-RV64C-NEXT:    lbu a6, 32(a1)
+; CHECK-RV64C-NEXT:    lbu a7, 40(a1)
+; CHECK-RV64C-NEXT:    lbu t0, 48(a1)
+; CHECK-RV64C-NEXT:    lbu t1, 56(a1)
+; CHECK-RV64C-NEXT:    lbu t2, 96(a1)
+; CHECK-RV64C-NEXT:    lbu t3, 104(a1)
+; CHECK-RV64C-NEXT:    lbu t4, 112(a1)
+; CHECK-RV64C-NEXT:    lbu t5, 120(a1)
 ; CHECK-RV64C-NEXT:    lbu t6, 64(a1)
 ; CHECK-RV64C-NEXT:    lbu s0, 72(a1)
 ; CHECK-RV64C-NEXT:    lbu s1, 80(a1)
 ; CHECK-RV64C-NEXT:    lbu a1, 88(a1)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a2, 12(a0)
+; CHECK-RV64C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a3, 13(a0)
+; CHECK-RV64C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a4, 14(a0)
+; CHECK-RV64C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a5, 15(a0)
+; CHECK-RV64C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
 ; CHECK-RV64C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
@@ -1068,21 +1068,21 @@ define void @test_nontemporal_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    c.ntl.all
 ; CHECK-RV64C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t2, 4(a0)
+; CHECK-RV64C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t3, 5(a0)
+; CHECK-RV64C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t4, 6(a0)
+; CHECK-RV64C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t5, 7(a0)
+; CHECK-RV64C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a6, 0(a0)
+; CHECK-RV64C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a7, 1(a0)
+; CHECK-RV64C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t0, 2(a0)
+; CHECK-RV64C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t1, 3(a0)
+; CHECK-RV64C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV64C-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    .cfi_restore s0
@@ -1099,30 +1099,30 @@ define void @test_nontemporal_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    sw s1, 8(sp) # 4-byte Folded Spill
 ; CHECK-RV32C-NEXT:    .cfi_offset s0, -4
 ; CHECK-RV32C-NEXT:    .cfi_offset s1, -8
-; CHECK-RV32C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV32C-NEXT:    lbu a7, 4(a1)
-; CHECK-RV32C-NEXT:    lbu t0, 8(a1)
-; CHECK-RV32C-NEXT:    lbu t1, 12(a1)
-; CHECK-RV32C-NEXT:    lbu t2, 16(a1)
-; CHECK-RV32C-NEXT:    lbu t3, 20(a1)
-; CHECK-RV32C-NEXT:    lbu t4, 24(a1)
-; CHECK-RV32C-NEXT:    lbu t5, 28(a1)
-; CHECK-RV32C-NEXT:    lbu a2, 48(a1)
-; CHECK-RV32C-NEXT:    lbu a3, 52(a1)
-; CHECK-RV32C-NEXT:    lbu a4, 56(a1)
-; CHECK-RV32C-NEXT:    lbu a5, 60(a1)
+; CHECK-RV32C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV32C-NEXT:    lbu a3, 4(a1)
+; CHECK-RV32C-NEXT:    lbu a4, 8(a1)
+; CHECK-RV32C-NEXT:    lbu a5, 12(a1)
+; CHECK-RV32C-NEXT:    lbu a6, 16(a1)
+; CHECK-RV32C-NEXT:    lbu a7, 20(a1)
+; CHECK-RV32C-NEXT:    lbu t0, 24(a1)
+; CHECK-RV32C-NEXT:    lbu t1, 28(a1)
+; CHECK-RV32C-NEXT:    lbu t2, 48(a1)
+; CHECK-RV32C-NEXT:    lbu t3, 52(a1)
+; CHECK-RV32C-NEXT:    lbu t4, 56(a1)
+; CHECK-RV32C-NEXT:    lbu t5, 60(a1)
 ; CHECK-RV32C-NEXT:    lbu t6, 32(a1)
 ; CHECK-RV32C-NEXT:    lbu s0, 36(a1)
 ; CHECK-RV32C-NEXT:    lbu s1, 40(a1)
 ; CHECK-RV32C-NEXT:    lbu a1, 44(a1)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a2, 12(a0)
+; CHECK-RV32C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a3, 13(a0)
+; CHECK-RV32C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a4, 14(a0)
+; CHECK-RV32C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a5, 15(a0)
+; CHECK-RV32C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
 ; CHECK-RV32C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
@@ -1132,21 +1132,21 @@ define void @test_nontemporal_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    c.ntl.all
 ; CHECK-RV32C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t2, 4(a0)
+; CHECK-RV32C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t3, 5(a0)
+; CHECK-RV32C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t4, 6(a0)
+; CHECK-RV32C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t5, 7(a0)
+; CHECK-RV32C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a6, 0(a0)
+; CHECK-RV32C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a7, 1(a0)
+; CHECK-RV32C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t0, 2(a0)
+; CHECK-RV32C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t1, 3(a0)
+; CHECK-RV32C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV32C-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    lw s1, 8(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    .cfi_restore s0
@@ -2461,30 +2461,30 @@ define void @test_nontemporal_P1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill
 ; CHECK-RV64C-NEXT:    .cfi_offset s0, -8
 ; CHECK-RV64C-NEXT:    .cfi_offset s1, -16
-; CHECK-RV64C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV64C-NEXT:    lbu a7, 8(a1)
-; CHECK-RV64C-NEXT:    lbu t0, 16(a1)
-; CHECK-RV64C-NEXT:    lbu t1, 24(a1)
-; CHECK-RV64C-NEXT:    lbu t2, 32(a1)
-; CHECK-RV64C-NEXT:    lbu t3, 40(a1)
-; CHECK-RV64C-NEXT:    lbu t4, 48(a1)
-; CHECK-RV64C-NEXT:    lbu t5, 56(a1)
-; CHECK-RV64C-NEXT:    lbu a2, 96(a1)
-; CHECK-RV64C-NEXT:    lbu a3, 104(a1)
-; CHECK-RV64C-NEXT:    lbu a4, 112(a1)
-; CHECK-RV64C-NEXT:    lbu a5, 120(a1)
+; CHECK-RV64C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV64C-NEXT:    lbu a3, 8(a1)
+; CHECK-RV64C-NEXT:    lbu a4, 16(a1)
+; CHECK-RV64C-NEXT:    lbu a5, 24(a1)
+; CHECK-RV64C-NEXT:    lbu a6, 32(a1)
+; CHECK-RV64C-NEXT:    lbu a7, 40(a1)
+; CHECK-RV64C-NEXT:    lbu t0, 48(a1)
+; CHECK-RV64C-NEXT:    lbu t1, 56(a1)
+; CHECK-RV64C-NEXT:    lbu t2, 96(a1)
+; CHECK-RV64C-NEXT:    lbu t3, 104(a1)
+; CHECK-RV64C-NEXT:    lbu t4, 112(a1)
+; CHECK-RV64C-NEXT:    lbu t5, 120(a1)
 ; CHECK-RV64C-NEXT:    lbu t6, 64(a1)
 ; CHECK-RV64C-NEXT:    lbu s0, 72(a1)
 ; CHECK-RV64C-NEXT:    lbu s1, 80(a1)
 ; CHECK-RV64C-NEXT:    lbu a1, 88(a1)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a2, 12(a0)
+; CHECK-RV64C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a3, 13(a0)
+; CHECK-RV64C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a4, 14(a0)
+; CHECK-RV64C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a5, 15(a0)
+; CHECK-RV64C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
 ; CHECK-RV64C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
@@ -2494,21 +2494,21 @@ define void @test_nontemporal_P1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    c.ntl.p1
 ; CHECK-RV64C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t2, 4(a0)
+; CHECK-RV64C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t3, 5(a0)
+; CHECK-RV64C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t4, 6(a0)
+; CHECK-RV64C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t5, 7(a0)
+; CHECK-RV64C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a6, 0(a0)
+; CHECK-RV64C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb a7, 1(a0)
+; CHECK-RV64C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t0, 2(a0)
+; CHECK-RV64C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.p1
-; CHECK-RV64C-NEXT:    sb t1, 3(a0)
+; CHECK-RV64C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV64C-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    .cfi_restore s0
@@ -2525,30 +2525,30 @@ define void @test_nontemporal_P1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    sw s1, 8(sp) # 4-byte Folded Spill
 ; CHECK-RV32C-NEXT:    .cfi_offset s0, -4
 ; CHECK-RV32C-NEXT:    .cfi_offset s1, -8
-; CHECK-RV32C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV32C-NEXT:    lbu a7, 4(a1)
-; CHECK-RV32C-NEXT:    lbu t0, 8(a1)
-; CHECK-RV32C-NEXT:    lbu t1, 12(a1)
-; CHECK-RV32C-NEXT:    lbu t2, 16(a1)
-; CHECK-RV32C-NEXT:    lbu t3, 20(a1)
-; CHECK-RV32C-NEXT:    lbu t4, 24(a1)
-; CHECK-RV32C-NEXT:    lbu t5, 28(a1)
-; CHECK-RV32C-NEXT:    lbu a2, 48(a1)
-; CHECK-RV32C-NEXT:    lbu a3, 52(a1)
-; CHECK-RV32C-NEXT:    lbu a4, 56(a1)
-; CHECK-RV32C-NEXT:    lbu a5, 60(a1)
+; CHECK-RV32C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV32C-NEXT:    lbu a3, 4(a1)
+; CHECK-RV32C-NEXT:    lbu a4, 8(a1)
+; CHECK-RV32C-NEXT:    lbu a5, 12(a1)
+; CHECK-RV32C-NEXT:    lbu a6, 16(a1)
+; CHECK-RV32C-NEXT:    lbu a7, 20(a1)
+; CHECK-RV32C-NEXT:    lbu t0, 24(a1)
+; CHECK-RV32C-NEXT:    lbu t1, 28(a1)
+; CHECK-RV32C-NEXT:    lbu t2, 48(a1)
+; CHECK-RV32C-NEXT:    lbu t3, 52(a1)
+; CHECK-RV32C-NEXT:    lbu t4, 56(a1)
+; CHECK-RV32C-NEXT:    lbu t5, 60(a1)
 ; CHECK-RV32C-NEXT:    lbu t6, 32(a1)
 ; CHECK-RV32C-NEXT:    lbu s0, 36(a1)
 ; CHECK-RV32C-NEXT:    lbu s1, 40(a1)
 ; CHECK-RV32C-NEXT:    lbu a1, 44(a1)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a2, 12(a0)
+; CHECK-RV32C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a3, 13(a0)
+; CHECK-RV32C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a4, 14(a0)
+; CHECK-RV32C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a5, 15(a0)
+; CHECK-RV32C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
 ; CHECK-RV32C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
@@ -2558,21 +2558,21 @@ define void @test_nontemporal_P1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    c.ntl.p1
 ; CHECK-RV32C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t2, 4(a0)
+; CHECK-RV32C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t3, 5(a0)
+; CHECK-RV32C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t4, 6(a0)
+; CHECK-RV32C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t5, 7(a0)
+; CHECK-RV32C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a6, 0(a0)
+; CHECK-RV32C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb a7, 1(a0)
+; CHECK-RV32C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t0, 2(a0)
+; CHECK-RV32C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.p1
-; CHECK-RV32C-NEXT:    sb t1, 3(a0)
+; CHECK-RV32C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV32C-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    lw s1, 8(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    .cfi_restore s0
@@ -3887,30 +3887,30 @@ define void @test_nontemporal_PALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill
 ; CHECK-RV64C-NEXT:    .cfi_offset s0, -8
 ; CHECK-RV64C-NEXT:    .cfi_offset s1, -16
-; CHECK-RV64C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV64C-NEXT:    lbu a7, 8(a1)
-; CHECK-RV64C-NEXT:    lbu t0, 16(a1)
-; CHECK-RV64C-NEXT:    lbu t1, 24(a1)
-; CHECK-RV64C-NEXT:    lbu t2, 32(a1)
-; CHECK-RV64C-NEXT:    lbu t3, 40(a1)
-; CHECK-RV64C-NEXT:    lbu t4, 48(a1)
-; CHECK-RV64C-NEXT:    lbu t5, 56(a1)
-; CHECK-RV64C-NEXT:    lbu a2, 96(a1)
-; CHECK-RV64C-NEXT:    lbu a3, 104(a1)
-; CHECK-RV64C-NEXT:    lbu a4, 112(a1)
-; CHECK-RV64C-NEXT:    lbu a5, 120(a1)
+; CHECK-RV64C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV64C-NEXT:    lbu a3, 8(a1)
+; CHECK-RV64C-NEXT:    lbu a4, 16(a1)
+; CHECK-RV64C-NEXT:    lbu a5, 24(a1)
+; CHECK-RV64C-NEXT:    lbu a6, 32(a1)
+; CHECK-RV64C-NEXT:    lbu a7, 40(a1)
+; CHECK-RV64C-NEXT:    lbu t0, 48(a1)
+; CHECK-RV64C-NEXT:    lbu t1, 56(a1)
+; CHECK-RV64C-NEXT:    lbu t2, 96(a1)
+; CHECK-RV64C-NEXT:    lbu t3, 104(a1)
+; CHECK-RV64C-NEXT:    lbu t4, 112(a1)
+; CHECK-RV64C-NEXT:    lbu t5, 120(a1)
 ; CHECK-RV64C-NEXT:    lbu t6, 64(a1)
 ; CHECK-RV64C-NEXT:    lbu s0, 72(a1)
 ; CHECK-RV64C-NEXT:    lbu s1, 80(a1)
 ; CHECK-RV64C-NEXT:    lbu a1, 88(a1)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a2, 12(a0)
+; CHECK-RV64C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a3, 13(a0)
+; CHECK-RV64C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a4, 14(a0)
+; CHECK-RV64C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a5, 15(a0)
+; CHECK-RV64C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
 ; CHECK-RV64C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
@@ -3920,21 +3920,21 @@ define void @test_nontemporal_PALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    c.ntl.pall
 ; CHECK-RV64C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t2, 4(a0)
+; CHECK-RV64C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t3, 5(a0)
+; CHECK-RV64C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t4, 6(a0)
+; CHECK-RV64C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t5, 7(a0)
+; CHECK-RV64C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a6, 0(a0)
+; CHECK-RV64C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb a7, 1(a0)
+; CHECK-RV64C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t0, 2(a0)
+; CHECK-RV64C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.pall
-; CHECK-RV64C-NEXT:    sb t1, 3(a0)
+; CHECK-RV64C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV64C-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    .cfi_restore s0
@@ -3951,30 +3951,30 @@ define void @test_nontemporal_PALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    sw s1, 8(sp) # 4-byte Folded Spill
 ; CHECK-RV32C-NEXT:    .cfi_offset s0, -4
 ; CHECK-RV32C-NEXT:    .cfi_offset s1, -8
-; CHECK-RV32C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV32C-NEXT:    lbu a7, 4(a1)
-; CHECK-RV32C-NEXT:    lbu t0, 8(a1)
-; CHECK-RV32C-NEXT:    lbu t1, 12(a1)
-; CHECK-RV32C-NEXT:    lbu t2, 16(a1)
-; CHECK-RV32C-NEXT:    lbu t3, 20(a1)
-; CHECK-RV32C-NEXT:    lbu t4, 24(a1)
-; CHECK-RV32C-NEXT:    lbu t5, 28(a1)
-; CHECK-RV32C-NEXT:    lbu a2, 48(a1)
-; CHECK-RV32C-NEXT:    lbu a3, 52(a1)
-; CHECK-RV32C-NEXT:    lbu a4, 56(a1)
-; CHECK-RV32C-NEXT:    lbu a5, 60(a1)
+; CHECK-RV32C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV32C-NEXT:    lbu a3, 4(a1)
+; CHECK-RV32C-NEXT:    lbu a4, 8(a1)
+; CHECK-RV32C-NEXT:    lbu a5, 12(a1)
+; CHECK-RV32C-NEXT:    lbu a6, 16(a1)
+; CHECK-RV32C-NEXT:    lbu a7, 20(a1)
+; CHECK-RV32C-NEXT:    lbu t0, 24(a1)
+; CHECK-RV32C-NEXT:    lbu t1, 28(a1)
+; CHECK-RV32C-NEXT:    lbu t2, 48(a1)
+; CHECK-RV32C-NEXT:    lbu t3, 52(a1)
+; CHECK-RV32C-NEXT:    lbu t4, 56(a1)
+; CHECK-RV32C-NEXT:    lbu t5, 60(a1)
 ; CHECK-RV32C-NEXT:    lbu t6, 32(a1)
 ; CHECK-RV32C-NEXT:    lbu s0, 36(a1)
 ; CHECK-RV32C-NEXT:    lbu s1, 40(a1)
 ; CHECK-RV32C-NEXT:    lbu a1, 44(a1)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a2, 12(a0)
+; CHECK-RV32C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a3, 13(a0)
+; CHECK-RV32C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a4, 14(a0)
+; CHECK-RV32C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a5, 15(a0)
+; CHECK-RV32C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
 ; CHECK-RV32C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
@@ -3984,21 +3984,21 @@ define void @test_nontemporal_PALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    c.ntl.pall
 ; CHECK-RV32C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t2, 4(a0)
+; CHECK-RV32C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t3, 5(a0)
+; CHECK-RV32C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t4, 6(a0)
+; CHECK-RV32C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t5, 7(a0)
+; CHECK-RV32C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a6, 0(a0)
+; CHECK-RV32C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb a7, 1(a0)
+; CHECK-RV32C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t0, 2(a0)
+; CHECK-RV32C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.pall
-; CHECK-RV32C-NEXT:    sb t1, 3(a0)
+; CHECK-RV32C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV32C-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    lw s1, 8(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    .cfi_restore s0
@@ -5313,30 +5313,30 @@ define void @test_nontemporal_S1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill
 ; CHECK-RV64C-NEXT:    .cfi_offset s0, -8
 ; CHECK-RV64C-NEXT:    .cfi_offset s1, -16
-; CHECK-RV64C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV64C-NEXT:    lbu a7, 8(a1)
-; CHECK-RV64C-NEXT:    lbu t0, 16(a1)
-; CHECK-RV64C-NEXT:    lbu t1, 24(a1)
-; CHECK-RV64C-NEXT:    lbu t2, 32(a1)
-; CHECK-RV64C-NEXT:    lbu t3, 40(a1)
-; CHECK-RV64C-NEXT:    lbu t4, 48(a1)
-; CHECK-RV64C-NEXT:    lbu t5, 56(a1)
-; CHECK-RV64C-NEXT:    lbu a2, 96(a1)
-; CHECK-RV64C-NEXT:    lbu a3, 104(a1)
-; CHECK-RV64C-NEXT:    lbu a4, 112(a1)
-; CHECK-RV64C-NEXT:    lbu a5, 120(a1)
+; CHECK-RV64C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV64C-NEXT:    lbu a3, 8(a1)
+; CHECK-RV64C-NEXT:    lbu a4, 16(a1)
+; CHECK-RV64C-NEXT:    lbu a5, 24(a1)
+; CHECK-RV64C-NEXT:    lbu a6, 32(a1)
+; CHECK-RV64C-NEXT:    lbu a7, 40(a1)
+; CHECK-RV64C-NEXT:    lbu t0, 48(a1)
+; CHECK-RV64C-NEXT:    lbu t1, 56(a1)
+; CHECK-RV64C-NEXT:    lbu t2, 96(a1)
+; CHECK-RV64C-NEXT:    lbu t3, 104(a1)
+; CHECK-RV64C-NEXT:    lbu t4, 112(a1)
+; CHECK-RV64C-NEXT:    lbu t5, 120(a1)
 ; CHECK-RV64C-NEXT:    lbu t6, 64(a1)
 ; CHECK-RV64C-NEXT:    lbu s0, 72(a1)
 ; CHECK-RV64C-NEXT:    lbu s1, 80(a1)
 ; CHECK-RV64C-NEXT:    lbu a1, 88(a1)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a2, 12(a0)
+; CHECK-RV64C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a3, 13(a0)
+; CHECK-RV64C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a4, 14(a0)
+; CHECK-RV64C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a5, 15(a0)
+; CHECK-RV64C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
 ; CHECK-RV64C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
@@ -5346,21 +5346,21 @@ define void @test_nontemporal_S1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    c.ntl.s1
 ; CHECK-RV64C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t2, 4(a0)
+; CHECK-RV64C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t3, 5(a0)
+; CHECK-RV64C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t4, 6(a0)
+; CHECK-RV64C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t5, 7(a0)
+; CHECK-RV64C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a6, 0(a0)
+; CHECK-RV64C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb a7, 1(a0)
+; CHECK-RV64C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t0, 2(a0)
+; CHECK-RV64C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.s1
-; CHECK-RV64C-NEXT:    sb t1, 3(a0)
+; CHECK-RV64C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV64C-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    .cfi_restore s0
@@ -5377,30 +5377,30 @@ define void @test_nontemporal_S1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    sw s1, 8(sp) # 4-byte Folded Spill
 ; CHECK-RV32C-NEXT:    .cfi_offset s0, -4
 ; CHECK-RV32C-NEXT:    .cfi_offset s1, -8
-; CHECK-RV32C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV32C-NEXT:    lbu a7, 4(a1)
-; CHECK-RV32C-NEXT:    lbu t0, 8(a1)
-; CHECK-RV32C-NEXT:    lbu t1, 12(a1)
-; CHECK-RV32C-NEXT:    lbu t2, 16(a1)
-; CHECK-RV32C-NEXT:    lbu t3, 20(a1)
-; CHECK-RV32C-NEXT:    lbu t4, 24(a1)
-; CHECK-RV32C-NEXT:    lbu t5, 28(a1)
-; CHECK-RV32C-NEXT:    lbu a2, 48(a1)
-; CHECK-RV32C-NEXT:    lbu a3, 52(a1)
-; CHECK-RV32C-NEXT:    lbu a4, 56(a1)
-; CHECK-RV32C-NEXT:    lbu a5, 60(a1)
+; CHECK-RV32C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV32C-NEXT:    lbu a3, 4(a1)
+; CHECK-RV32C-NEXT:    lbu a4, 8(a1)
+; CHECK-RV32C-NEXT:    lbu a5, 12(a1)
+; CHECK-RV32C-NEXT:    lbu a6, 16(a1)
+; CHECK-RV32C-NEXT:    lbu a7, 20(a1)
+; CHECK-RV32C-NEXT:    lbu t0, 24(a1)
+; CHECK-RV32C-NEXT:    lbu t1, 28(a1)
+; CHECK-RV32C-NEXT:    lbu t2, 48(a1)
+; CHECK-RV32C-NEXT:    lbu t3, 52(a1)
+; CHECK-RV32C-NEXT:    lbu t4, 56(a1)
+; CHECK-RV32C-NEXT:    lbu t5, 60(a1)
 ; CHECK-RV32C-NEXT:    lbu t6, 32(a1)
 ; CHECK-RV32C-NEXT:    lbu s0, 36(a1)
 ; CHECK-RV32C-NEXT:    lbu s1, 40(a1)
 ; CHECK-RV32C-NEXT:    lbu a1, 44(a1)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a2, 12(a0)
+; CHECK-RV32C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a3, 13(a0)
+; CHECK-RV32C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a4, 14(a0)
+; CHECK-RV32C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a5, 15(a0)
+; CHECK-RV32C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
 ; CHECK-RV32C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
@@ -5410,21 +5410,21 @@ define void @test_nontemporal_S1_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    c.ntl.s1
 ; CHECK-RV32C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t2, 4(a0)
+; CHECK-RV32C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t3, 5(a0)
+; CHECK-RV32C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t4, 6(a0)
+; CHECK-RV32C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t5, 7(a0)
+; CHECK-RV32C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a6, 0(a0)
+; CHECK-RV32C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb a7, 1(a0)
+; CHECK-RV32C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t0, 2(a0)
+; CHECK-RV32C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.s1
-; CHECK-RV32C-NEXT:    sb t1, 3(a0)
+; CHECK-RV32C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV32C-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    lw s1, 8(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    .cfi_restore s0
@@ -6739,30 +6739,30 @@ define void @test_nontemporal_ALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill
 ; CHECK-RV64C-NEXT:    .cfi_offset s0, -8
 ; CHECK-RV64C-NEXT:    .cfi_offset s1, -16
-; CHECK-RV64C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV64C-NEXT:    lbu a7, 8(a1)
-; CHECK-RV64C-NEXT:    lbu t0, 16(a1)
-; CHECK-RV64C-NEXT:    lbu t1, 24(a1)
-; CHECK-RV64C-NEXT:    lbu t2, 32(a1)
-; CHECK-RV64C-NEXT:    lbu t3, 40(a1)
-; CHECK-RV64C-NEXT:    lbu t4, 48(a1)
-; CHECK-RV64C-NEXT:    lbu t5, 56(a1)
-; CHECK-RV64C-NEXT:    lbu a2, 96(a1)
-; CHECK-RV64C-NEXT:    lbu a3, 104(a1)
-; CHECK-RV64C-NEXT:    lbu a4, 112(a1)
-; CHECK-RV64C-NEXT:    lbu a5, 120(a1)
+; CHECK-RV64C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV64C-NEXT:    lbu a3, 8(a1)
+; CHECK-RV64C-NEXT:    lbu a4, 16(a1)
+; CHECK-RV64C-NEXT:    lbu a5, 24(a1)
+; CHECK-RV64C-NEXT:    lbu a6, 32(a1)
+; CHECK-RV64C-NEXT:    lbu a7, 40(a1)
+; CHECK-RV64C-NEXT:    lbu t0, 48(a1)
+; CHECK-RV64C-NEXT:    lbu t1, 56(a1)
+; CHECK-RV64C-NEXT:    lbu t2, 96(a1)
+; CHECK-RV64C-NEXT:    lbu t3, 104(a1)
+; CHECK-RV64C-NEXT:    lbu t4, 112(a1)
+; CHECK-RV64C-NEXT:    lbu t5, 120(a1)
 ; CHECK-RV64C-NEXT:    lbu t6, 64(a1)
 ; CHECK-RV64C-NEXT:    lbu s0, 72(a1)
 ; CHECK-RV64C-NEXT:    lbu s1, 80(a1)
 ; CHECK-RV64C-NEXT:    lbu a1, 88(a1)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a2, 12(a0)
+; CHECK-RV64C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a3, 13(a0)
+; CHECK-RV64C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a4, 14(a0)
+; CHECK-RV64C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a5, 15(a0)
+; CHECK-RV64C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
 ; CHECK-RV64C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
@@ -6772,21 +6772,21 @@ define void @test_nontemporal_ALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV64C-NEXT:    c.ntl.all
 ; CHECK-RV64C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t2, 4(a0)
+; CHECK-RV64C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t3, 5(a0)
+; CHECK-RV64C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t4, 6(a0)
+; CHECK-RV64C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t5, 7(a0)
+; CHECK-RV64C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a6, 0(a0)
+; CHECK-RV64C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb a7, 1(a0)
+; CHECK-RV64C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t0, 2(a0)
+; CHECK-RV64C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV64C-NEXT:    c.ntl.all
-; CHECK-RV64C-NEXT:    sb t1, 3(a0)
+; CHECK-RV64C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV64C-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload
 ; CHECK-RV64C-NEXT:    .cfi_restore s0
@@ -6803,30 +6803,30 @@ define void @test_nontemporal_ALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    sw s1, 8(sp) # 4-byte Folded Spill
 ; CHECK-RV32C-NEXT:    .cfi_offset s0, -4
 ; CHECK-RV32C-NEXT:    .cfi_offset s1, -8
-; CHECK-RV32C-NEXT:    lbu a6, 0(a1)
-; CHECK-RV32C-NEXT:    lbu a7, 4(a1)
-; CHECK-RV32C-NEXT:    lbu t0, 8(a1)
-; CHECK-RV32C-NEXT:    lbu t1, 12(a1)
-; CHECK-RV32C-NEXT:    lbu t2, 16(a1)
-; CHECK-RV32C-NEXT:    lbu t3, 20(a1)
-; CHECK-RV32C-NEXT:    lbu t4, 24(a1)
-; CHECK-RV32C-NEXT:    lbu t5, 28(a1)
-; CHECK-RV32C-NEXT:    lbu a2, 48(a1)
-; CHECK-RV32C-NEXT:    lbu a3, 52(a1)
-; CHECK-RV32C-NEXT:    lbu a4, 56(a1)
-; CHECK-RV32C-NEXT:    lbu a5, 60(a1)
+; CHECK-RV32C-NEXT:    lbu a2, 0(a1)
+; CHECK-RV32C-NEXT:    lbu a3, 4(a1)
+; CHECK-RV32C-NEXT:    lbu a4, 8(a1)
+; CHECK-RV32C-NEXT:    lbu a5, 12(a1)
+; CHECK-RV32C-NEXT:    lbu a6, 16(a1)
+; CHECK-RV32C-NEXT:    lbu a7, 20(a1)
+; CHECK-RV32C-NEXT:    lbu t0, 24(a1)
+; CHECK-RV32C-NEXT:    lbu t1, 28(a1)
+; CHECK-RV32C-NEXT:    lbu t2, 48(a1)
+; CHECK-RV32C-NEXT:    lbu t3, 52(a1)
+; CHECK-RV32C-NEXT:    lbu t4, 56(a1)
+; CHECK-RV32C-NEXT:    lbu t5, 60(a1)
 ; CHECK-RV32C-NEXT:    lbu t6, 32(a1)
 ; CHECK-RV32C-NEXT:    lbu s0, 36(a1)
 ; CHECK-RV32C-NEXT:    lbu s1, 40(a1)
 ; CHECK-RV32C-NEXT:    lbu a1, 44(a1)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a2, 12(a0)
+; CHECK-RV32C-NEXT:    sb t2, 12(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a3, 13(a0)
+; CHECK-RV32C-NEXT:    sb t3, 13(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a4, 14(a0)
+; CHECK-RV32C-NEXT:    sb t4, 14(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a5, 15(a0)
+; CHECK-RV32C-NEXT:    sb t5, 15(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
 ; CHECK-RV32C-NEXT:    sb t6, 8(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
@@ -6836,21 +6836,21 @@ define void @test_nontemporal_ALL_store_v16i8(ptr %p, <16 x i8> %v) {
 ; CHECK-RV32C-NEXT:    c.ntl.all
 ; CHECK-RV32C-NEXT:    sb a1, 11(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t2, 4(a0)
+; CHECK-RV32C-NEXT:    sb a6, 4(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t3, 5(a0)
+; CHECK-RV32C-NEXT:    sb a7, 5(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t4, 6(a0)
+; CHECK-RV32C-NEXT:    sb t0, 6(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t5, 7(a0)
+; CHECK-RV32C-NEXT:    sb t1, 7(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a6, 0(a0)
+; CHECK-RV32C-NEXT:    sb a2, 0(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb a7, 1(a0)
+; CHECK-RV32C-NEXT:    sb a3, 1(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t0, 2(a0)
+; CHECK-RV32C-NEXT:    sb a4, 2(a0)
 ; CHECK-RV32C-NEXT:    c.ntl.all
-; CHECK-RV32C-NEXT:    sb t1, 3(a0)
+; CHECK-RV32C-NEXT:    sb a5, 3(a0)
 ; CHECK-RV32C-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    lw s1, 8(sp) # 4-byte Folded Reload
 ; CHECK-RV32C-NEXT:    .cfi_restore s0
diff --git a/llvm/test/CodeGen/RISCV/push-pop-popret.ll b/llvm/test/CodeGen/RISCV/push-pop-popret.ll
index 08a831b60cbaa..b5180f38d1fae 100644
--- a/llvm/test/CodeGen/RISCV/push-pop-popret.ll
+++ b/llvm/test/CodeGen/RISCV/push-pop-popret.ll
@@ -803,23 +803,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV32IZCMP-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IZCMP-NEXT:    addi a0, a0, 15
 ; RV32IZCMP-NEXT:    andi a0, a0, -16
-; RV32IZCMP-NEXT:    sub s2, sp, a0
-; RV32IZCMP-NEXT:    mv sp, s2
-; RV32IZCMP-NEXT:    lui s1, %hi(var)
-; RV32IZCMP-NEXT:    addi s1, s1, %lo(var)
-; RV32IZCMP-NEXT:    lw s3, 0(s1)
-; RV32IZCMP-NEXT:    lw s4, 4(s1)
-; RV32IZCMP-NEXT:    lw s5, 8(s1)
-; RV32IZCMP-NEXT:    lw s6, 12(s1)
-; RV32IZCMP-NEXT:    lw s7, 16(s1)
-; RV32IZCMP-NEXT:    mv a0, s2
+; RV32IZCMP-NEXT:    sub s1, sp, a0
+; RV32IZCMP-NEXT:    mv sp, s1
+; RV32IZCMP-NEXT:    lui s2, %hi(var)
+; RV32IZCMP-NEXT:    addi s2, s2, %lo(var)
+; RV32IZCMP-NEXT:    lw s3, 0(s2)
+; RV32IZCMP-NEXT:    lw s4, 4(s2)
+; RV32IZCMP-NEXT:    lw s5, 8(s2)
+; RV32IZCMP-NEXT:    lw s6, 12(s2)
+; RV32IZCMP-NEXT:    lw s7, 16(s2)
+; RV32IZCMP-NEXT:    mv a0, s1
 ; RV32IZCMP-NEXT:    call callee_void
-; RV32IZCMP-NEXT:    sw s7, 16(s1)
-; RV32IZCMP-NEXT:    sw s6, 12(s1)
-; RV32IZCMP-NEXT:    sw s5, 8(s1)
-; RV32IZCMP-NEXT:    mv a0, s2
-; RV32IZCMP-NEXT:    sw s4, 4(s1)
-; RV32IZCMP-NEXT:    sw s3, 0(s1)
+; RV32IZCMP-NEXT:    sw s7, 16(s2)
+; RV32IZCMP-NEXT:    sw s6, 12(s2)
+; RV32IZCMP-NEXT:    sw s5, 8(s2)
+; RV32IZCMP-NEXT:    mv a0, s1
+; RV32IZCMP-NEXT:    sw s4, 4(s2)
+; RV32IZCMP-NEXT:    sw s3, 0(s2)
 ; RV32IZCMP-NEXT:    addi sp, s0, -48
 ; RV32IZCMP-NEXT:    .cfi_def_cfa sp, 48
 ; RV32IZCMP-NEXT:    cm.pop {ra, s0-s7}, 48
@@ -854,23 +854,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV64IZCMP-NEXT:    srli a0, a0, 32
 ; RV64IZCMP-NEXT:    addi a0, a0, 15
 ; RV64IZCMP-NEXT:    andi a0, a0, -16
-; RV64IZCMP-NEXT:    sub s2, sp, a0
-; RV64IZCMP-NEXT:    mv sp, s2
-; RV64IZCMP-NEXT:    lui s1, %hi(var)
-; RV64IZCMP-NEXT:    addi s1, s1, %lo(var)
-; RV64IZCMP-NEXT:    lw s3, 0(s1)
-; RV64IZCMP-NEXT:    lw s4, 4(s1)
-; RV64IZCMP-NEXT:    lw s5, 8(s1)
-; RV64IZCMP-NEXT:    lw s6, 12(s1)
-; RV64IZCMP-NEXT:    lw s7, 16(s1)
-; RV64IZCMP-NEXT:    mv a0, s2
+; RV64IZCMP-NEXT:    sub s1, sp, a0
+; RV64IZCMP-NEXT:    mv sp, s1
+; RV64IZCMP-NEXT:    lui s2, %hi(var)
+; RV64IZCMP-NEXT:    addi s2, s2, %lo(var)
+; RV64IZCMP-NEXT:    lw s3, 0(s2)
+; RV64IZCMP-NEXT:    lw s4, 4(s2)
+; RV64IZCMP-NEXT:    lw s5, 8(s2)
+; RV64IZCMP-NEXT:    lw s6, 12(s2)
+; RV64IZCMP-NEXT:    lw s7, 16(s2)
+; RV64IZCMP-NEXT:    mv a0, s1
 ; RV64IZCMP-NEXT:    call callee_void
-; RV64IZCMP-NEXT:    sw s7, 16(s1)
-; RV64IZCMP-NEXT:    sw s6, 12(s1)
-; RV64IZCMP-NEXT:    sw s5, 8(s1)
-; RV64IZCMP-NEXT:    mv a0, s2
-; RV64IZCMP-NEXT:    sw s4, 4(s1)
-; RV64IZCMP-NEXT:    sw s3, 0(s1)
+; RV64IZCMP-NEXT:    sw s7, 16(s2)
+; RV64IZCMP-NEXT:    sw s6, 12(s2)
+; RV64IZCMP-NEXT:    sw s5, 8(s2)
+; RV64IZCMP-NEXT:    mv a0, s1
+; RV64IZCMP-NEXT:    sw s4, 4(s2)
+; RV64IZCMP-NEXT:    sw s3, 0(s2)
 ; RV64IZCMP-NEXT:    addi sp, s0, -80
 ; RV64IZCMP-NEXT:    .cfi_def_cfa sp, 80
 ; RV64IZCMP-NEXT:    cm.pop {ra, s0-s7}, 80
@@ -903,23 +903,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV32IZCMP-SR-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IZCMP-SR-NEXT:    addi a0, a0, 15
 ; RV32IZCMP-SR-NEXT:    andi a0, a0, -16
-; RV32IZCMP-SR-NEXT:    sub s2, sp, a0
-; RV32IZCMP-SR-NEXT:    mv sp, s2
-; RV32IZCMP-SR-NEXT:    lui s1, %hi(var)
-; RV32IZCMP-SR-NEXT:    addi s1, s1, %lo(var)
-; RV32IZCMP-SR-NEXT:    lw s3, 0(s1)
-; RV32IZCMP-SR-NEXT:    lw s4, 4(s1)
-; RV32IZCMP-SR-NEXT:    lw s5, 8(s1)
-; RV32IZCMP-SR-NEXT:    lw s6, 12(s1)
-; RV32IZCMP-SR-NEXT:    lw s7, 16(s1)
-; RV32IZCMP-SR-NEXT:    mv a0, s2
+; RV32IZCMP-SR-NEXT:    sub s1, sp, a0
+; RV32IZCMP-SR-NEXT:    mv sp, s1
+; RV32IZCMP-SR-NEXT:    lui s2, %hi(var)
+; RV32IZCMP-SR-NEXT:    addi s2, s2, %lo(var)
+; RV32IZCMP-SR-NEXT:    lw s3, 0(s2)
+; RV32IZCMP-SR-NEXT:    lw s4, 4(s2)
+; RV32IZCMP-SR-NEXT:    lw s5, 8(s2)
+; RV32IZCMP-SR-NEXT:    lw s6, 12(s2)
+; RV32IZCMP-SR-NEXT:    lw s7, 16(s2)
+; RV32IZCMP-SR-NEXT:    mv a0, s1
 ; RV32IZCMP-SR-NEXT:    call callee_void
-; RV32IZCMP-SR-NEXT:    sw s7, 16(s1)
-; RV32IZCMP-SR-NEXT:    sw s6, 12(s1)
-; RV32IZCMP-SR-NEXT:    sw s5, 8(s1)
-; RV32IZCMP-SR-NEXT:    mv a0, s2
-; RV32IZCMP-SR-NEXT:    sw s4, 4(s1)
-; RV32IZCMP-SR-NEXT:    sw s3, 0(s1)
+; RV32IZCMP-SR-NEXT:    sw s7, 16(s2)
+; RV32IZCMP-SR-NEXT:    sw s6, 12(s2)
+; RV32IZCMP-SR-NEXT:    sw s5, 8(s2)
+; RV32IZCMP-SR-NEXT:    mv a0, s1
+; RV32IZCMP-SR-NEXT:    sw s4, 4(s2)
+; RV32IZCMP-SR-NEXT:    sw s3, 0(s2)
 ; RV32IZCMP-SR-NEXT:    addi sp, s0, -48
 ; RV32IZCMP-SR-NEXT:    .cfi_def_cfa sp, 48
 ; RV32IZCMP-SR-NEXT:    cm.pop {ra, s0-s7}, 48
@@ -954,23 +954,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV64IZCMP-SR-NEXT:    srli a0, a0, 32
 ; RV64IZCMP-SR-NEXT:    addi a0, a0, 15
 ; RV64IZCMP-SR-NEXT:    andi a0, a0, -16
-; RV64IZCMP-SR-NEXT:    sub s2, sp, a0
-; RV64IZCMP-SR-NEXT:    mv sp, s2
-; RV64IZCMP-SR-NEXT:    lui s1, %hi(var)
-; RV64IZCMP-SR-NEXT:    addi s1, s1, %lo(var)
-; RV64IZCMP-SR-NEXT:    lw s3, 0(s1)
-; RV64IZCMP-SR-NEXT:    lw s4, 4(s1)
-; RV64IZCMP-SR-NEXT:    lw s5, 8(s1)
-; RV64IZCMP-SR-NEXT:    lw s6, 12(s1)
-; RV64IZCMP-SR-NEXT:    lw s7, 16(s1)
-; RV64IZCMP-SR-NEXT:    mv a0, s2
+; RV64IZCMP-SR-NEXT:    sub s1, sp, a0
+; RV64IZCMP-SR-NEXT:    mv sp, s1
+; RV64IZCMP-SR-NEXT:    lui s2, %hi(var)
+; RV64IZCMP-SR-NEXT:    addi s2, s2, %lo(var)
+; RV64IZCMP-SR-NEXT:    lw s3, 0(s2)
+; RV64IZCMP-SR-NEXT:    lw s4, 4(s2)
+; RV64IZCMP-SR-NEXT:    lw s5, 8(s2)
+; RV64IZCMP-SR-NEXT:    lw s6, 12(s2)
+; RV64IZCMP-SR-NEXT:    lw s7, 16(s2)
+; RV64IZCMP-SR-NEXT:    mv a0, s1
 ; RV64IZCMP-SR-NEXT:    call callee_void
-; RV64IZCMP-SR-NEXT:    sw s7, 16(s1)
-; RV64IZCMP-SR-NEXT:    sw s6, 12(s1)
-; RV64IZCMP-SR-NEXT:    sw s5, 8(s1)
-; RV64IZCMP-SR-NEXT:    mv a0, s2
-; RV64IZCMP-SR-NEXT:    sw s4, 4(s1)
-; RV64IZCMP-SR-NEXT:    sw s3, 0(s1)
+; RV64IZCMP-SR-NEXT:    sw s7, 16(s2)
+; RV64IZCMP-SR-NEXT:    sw s6, 12(s2)
+; RV64IZCMP-SR-NEXT:    sw s5, 8(s2)
+; RV64IZCMP-SR-NEXT:    mv a0, s1
+; RV64IZCMP-SR-NEXT:    sw s4, 4(s2)
+; RV64IZCMP-SR-NEXT:    sw s3, 0(s2)
 ; RV64IZCMP-SR-NEXT:    addi sp, s0, -80
 ; RV64IZCMP-SR-NEXT:    .cfi_def_cfa sp, 80
 ; RV64IZCMP-SR-NEXT:    cm.pop {ra, s0-s7}, 80
@@ -1263,42 +1263,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV32IZCMP-NEXT:    .cfi_offset s3, -4
 ; RV32IZCMP-NEXT:    lui a0, %hi(var0)
 ; RV32IZCMP-NEXT:    addi a0, a0, %lo(var0)
-; RV32IZCMP-NEXT:    lw a6, 0(a0)
-; RV32IZCMP-NEXT:    lw a7, 4(a0)
-; RV32IZCMP-NEXT:    lw t0, 8(a0)
-; RV32IZCMP-NEXT:    lw t1, 12(a0)
-; RV32IZCMP-NEXT:    lw t2, 16(a0)
-; RV32IZCMP-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-NEXT:    lw a4, 64(a0)
-; RV32IZCMP-NEXT:    lw a5, 68(a0)
-; RV32IZCMP-NEXT:    lw t6, 48(a0)
-; RV32IZCMP-NEXT:    lw s3, 52(a0)
-; RV32IZCMP-NEXT:    lw a3, 56(a0)
-; RV32IZCMP-NEXT:    lw a1, 60(a0)
-; RV32IZCMP-NEXT:    lw s2, 32(a0)
+; RV32IZCMP-NEXT:    lw a1, 0(a0)
+; RV32IZCMP-NEXT:    lw a2, 4(a0)
+; RV32IZCMP-NEXT:    lw a3, 8(a0)
+; RV32IZCMP-NEXT:    lw a4, 12(a0)
+; RV32IZCMP-NEXT:    lw a5, 16(a0)
+; RV32IZCMP-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-NEXT:    lw t1, 64(a0)
+; RV32IZCMP-NEXT:    lw t2, 68(a0)
+; RV32IZCMP-NEXT:    lw t3, 48(a0)
+; RV32IZCMP-NEXT:    lw t4, 52(a0)
+; RV32IZCMP-NEXT:    lw t5, 56(a0)
+; RV32IZCMP-NEXT:    lw t6, 60(a0)
+; RV32IZCMP-NEXT:    lw s0, 32(a0)
 ; RV32IZCMP-NEXT:    lw s1, 36(a0)
-; RV32IZCMP-NEXT:    lw s0, 40(a0)
-; RV32IZCMP-NEXT:    lw a2, 44(a0)
-; RV32IZCMP-NEXT:    sw a5, 68(a0)
-; RV32IZCMP-NEXT:    sw a4, 64(a0)
-; RV32IZCMP-NEXT:    sw a1, 60(a0)
-; RV32IZCMP-NEXT:    sw a3, 56(a0)
-; RV32IZCMP-NEXT:    sw s3, 52(a0)
-; RV32IZCMP-NEXT:    sw t6, 48(a0)
-; RV32IZCMP-NEXT:    sw a2, 44(a0)
-; RV32IZCMP-NEXT:    sw s0, 40(a0)
+; RV32IZCMP-NEXT:    lw s2, 40(a0)
+; RV32IZCMP-NEXT:    lw s3, 44(a0)
+; RV32IZCMP-NEXT:    sw t2, 68(a0)
+; RV32IZCMP-NEXT:    sw t1, 64(a0)
+; RV32IZCMP-NEXT:    sw t6, 60(a0)
+; RV32IZCMP-NEXT:    sw t5, 56(a0)
+; RV32IZCMP-NEXT:    sw t4, 52(a0)
+; RV32IZCMP-NEXT:    sw t3, 48(a0)
+; RV32IZCMP-NEXT:    sw s3, 44(a0)
+; RV32IZCMP-NEXT:    sw s2, 40(a0)
 ; RV32IZCMP-NEXT:    sw s1, 36(a0)
-; RV32IZCMP-NEXT:    sw s2, 32(a0)
-; RV32IZCMP-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-NEXT:    sw t3, 20(a0)
-; RV32IZCMP-NEXT:    sw t2, 16(a0)
-; RV32IZCMP-NEXT:    sw t1, 12(a0)
-; RV32IZCMP-NEXT:    sw t0, 8(a0)
-; RV32IZCMP-NEXT:    sw a7, 4(a0)
-; RV32IZCMP-NEXT:    sw a6, 0(a0)
+; RV32IZCMP-NEXT:    sw s0, 32(a0)
+; RV32IZCMP-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-NEXT:    sw a6, 20(a0)
+; RV32IZCMP-NEXT:    sw a5, 16(a0)
+; RV32IZCMP-NEXT:    sw a4, 12(a0)
+; RV32IZCMP-NEXT:    sw a3, 8(a0)
+; RV32IZCMP-NEXT:    sw a2, 4(a0)
+; RV32IZCMP-NEXT:    sw a1, 0(a0)
 ; RV32IZCMP-NEXT:    cm.popret {ra, s0-s3}, 32
 ;
 ; RV64IZCMP-LABEL: many_args:
@@ -1311,42 +1311,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV64IZCMP-NEXT:    .cfi_offset s3, -8
 ; RV64IZCMP-NEXT:    lui a0, %hi(var0)
 ; RV64IZCMP-NEXT:    addi a0, a0, %lo(var0)
-; RV64IZCMP-NEXT:    lw a6, 0(a0)
-; RV64IZCMP-NEXT:    lw a7, 4(a0)
-; RV64IZCMP-NEXT:    lw t0, 8(a0)
-; RV64IZCMP-NEXT:    lw t1, 12(a0)
-; RV64IZCMP-NEXT:    lw t2, 16(a0)
-; RV64IZCMP-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-NEXT:    lw a4, 64(a0)
-; RV64IZCMP-NEXT:    lw a5, 68(a0)
-; RV64IZCMP-NEXT:    lw t6, 48(a0)
-; RV64IZCMP-NEXT:    lw s3, 52(a0)
-; RV64IZCMP-NEXT:    lw a3, 56(a0)
-; RV64IZCMP-NEXT:    lw a1, 60(a0)
-; RV64IZCMP-NEXT:    lw s2, 32(a0)
+; RV64IZCMP-NEXT:    lw a1, 0(a0)
+; RV64IZCMP-NEXT:    lw a2, 4(a0)
+; RV64IZCMP-NEXT:    lw a3, 8(a0)
+; RV64IZCMP-NEXT:    lw a4, 12(a0)
+; RV64IZCMP-NEXT:    lw a5, 16(a0)
+; RV64IZCMP-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-NEXT:    lw t1, 64(a0)
+; RV64IZCMP-NEXT:    lw t2, 68(a0)
+; RV64IZCMP-NEXT:    lw t3, 48(a0)
+; RV64IZCMP-NEXT:    lw t4, 52(a0)
+; RV64IZCMP-NEXT:    lw t5, 56(a0)
+; RV64IZCMP-NEXT:    lw t6, 60(a0)
+; RV64IZCMP-NEXT:    lw s0, 32(a0)
 ; RV64IZCMP-NEXT:    lw s1, 36(a0)
-; RV64IZCMP-NEXT:    lw s0, 40(a0)
-; RV64IZCMP-NEXT:    lw a2, 44(a0)
-; RV64IZCMP-NEXT:    sw a5, 68(a0)
-; RV64IZCMP-NEXT:    sw a4, 64(a0)
-; RV64IZCMP-NEXT:    sw a1, 60(a0)
-; RV64IZCMP-NEXT:    sw a3, 56(a0)
-; RV64IZCMP-NEXT:    sw s3, 52(a0)
-; RV64IZCMP-NEXT:    sw t6, 48(a0)
-; RV64IZCMP-NEXT:    sw a2, 44(a0)
-; RV64IZCMP-NEXT:    sw s0, 40(a0)
+; RV64IZCMP-NEXT:    lw s2, 40(a0)
+; RV64IZCMP-NEXT:    lw s3, 44(a0)
+; RV64IZCMP-NEXT:    sw t2, 68(a0)
+; RV64IZCMP-NEXT:    sw t1, 64(a0)
+; RV64IZCMP-NEXT:    sw t6, 60(a0)
+; RV64IZCMP-NEXT:    sw t5, 56(a0)
+; RV64IZCMP-NEXT:    sw t4, 52(a0)
+; RV64IZCMP-NEXT:    sw t3, 48(a0)
+; RV64IZCMP-NEXT:    sw s3, 44(a0)
+; RV64IZCMP-NEXT:    sw s2, 40(a0)
 ; RV64IZCMP-NEXT:    sw s1, 36(a0)
-; RV64IZCMP-NEXT:    sw s2, 32(a0)
-; RV64IZCMP-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-NEXT:    sw t3, 20(a0)
-; RV64IZCMP-NEXT:    sw t2, 16(a0)
-; RV64IZCMP-NEXT:    sw t1, 12(a0)
-; RV64IZCMP-NEXT:    sw t0, 8(a0)
-; RV64IZCMP-NEXT:    sw a7, 4(a0)
-; RV64IZCMP-NEXT:    sw a6, 0(a0)
+; RV64IZCMP-NEXT:    sw s0, 32(a0)
+; RV64IZCMP-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-NEXT:    sw a6, 20(a0)
+; RV64IZCMP-NEXT:    sw a5, 16(a0)
+; RV64IZCMP-NEXT:    sw a4, 12(a0)
+; RV64IZCMP-NEXT:    sw a3, 8(a0)
+; RV64IZCMP-NEXT:    sw a2, 4(a0)
+; RV64IZCMP-NEXT:    sw a1, 0(a0)
 ; RV64IZCMP-NEXT:    cm.popret {ra, s0-s3}, 48
 ;
 ; RV32IZCMP-SR-LABEL: many_args:
@@ -1359,42 +1359,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV32IZCMP-SR-NEXT:    .cfi_offset s3, -4
 ; RV32IZCMP-SR-NEXT:    lui a0, %hi(var0)
 ; RV32IZCMP-SR-NEXT:    addi a0, a0, %lo(var0)
-; RV32IZCMP-SR-NEXT:    lw a6, 0(a0)
-; RV32IZCMP-SR-NEXT:    lw a7, 4(a0)
-; RV32IZCMP-SR-NEXT:    lw t0, 8(a0)
-; RV32IZCMP-SR-NEXT:    lw t1, 12(a0)
-; RV32IZCMP-SR-NEXT:    lw t2, 16(a0)
-; RV32IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    lw a4, 64(a0)
-; RV32IZCMP-SR-NEXT:    lw a5, 68(a0)
-; RV32IZCMP-SR-NEXT:    lw t6, 48(a0)
-; RV32IZCMP-SR-NEXT:    lw s3, 52(a0)
-; RV32IZCMP-SR-NEXT:    lw a3, 56(a0)
-; RV32IZCMP-SR-NEXT:    lw a1, 60(a0)
-; RV32IZCMP-SR-NEXT:    lw s2, 32(a0)
+; RV32IZCMP-SR-NEXT:    lw a1, 0(a0)
+; RV32IZCMP-SR-NEXT:    lw a2, 4(a0)
+; RV32IZCMP-SR-NEXT:    lw a3, 8(a0)
+; RV32IZCMP-SR-NEXT:    lw a4, 12(a0)
+; RV32IZCMP-SR-NEXT:    lw a5, 16(a0)
+; RV32IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    lw t1, 64(a0)
+; RV32IZCMP-SR-NEXT:    lw t2, 68(a0)
+; RV32IZCMP-SR-NEXT:    lw t3, 48(a0)
+; RV32IZCMP-SR-NEXT:    lw t4, 52(a0)
+; RV32IZCMP-SR-NEXT:    lw t5, 56(a0)
+; RV32IZCMP-SR-NEXT:    lw t6, 60(a0)
+; RV32IZCMP-SR-NEXT:    lw s0, 32(a0)
 ; RV32IZCMP-SR-NEXT:    lw s1, 36(a0)
-; RV32IZCMP-SR-NEXT:    lw s0, 40(a0)
-; RV32IZCMP-SR-NEXT:    lw a2, 44(a0)
-; RV32IZCMP-SR-NEXT:    sw a5, 68(a0)
-; RV32IZCMP-SR-NEXT:    sw a4, 64(a0)
-; RV32IZCMP-SR-NEXT:    sw a1, 60(a0)
-; RV32IZCMP-SR-NEXT:    sw a3, 56(a0)
-; RV32IZCMP-SR-NEXT:    sw s3, 52(a0)
-; RV32IZCMP-SR-NEXT:    sw t6, 48(a0)
-; RV32IZCMP-SR-NEXT:    sw a2, 44(a0)
-; RV32IZCMP-SR-NEXT:    sw s0, 40(a0)
+; RV32IZCMP-SR-NEXT:    lw s2, 40(a0)
+; RV32IZCMP-SR-NEXT:    lw s3, 44(a0)
+; RV32IZCMP-SR-NEXT:    sw t2, 68(a0)
+; RV32IZCMP-SR-NEXT:    sw t1, 64(a0)
+; RV32IZCMP-SR-NEXT:    sw t6, 60(a0)
+; RV32IZCMP-SR-NEXT:    sw t5, 56(a0)
+; RV32IZCMP-SR-NEXT:    sw t4, 52(a0)
+; RV32IZCMP-SR-NEXT:    sw t3, 48(a0)
+; RV32IZCMP-SR-NEXT:    sw s3, 44(a0)
+; RV32IZCMP-SR-NEXT:    sw s2, 40(a0)
 ; RV32IZCMP-SR-NEXT:    sw s1, 36(a0)
-; RV32IZCMP-SR-NEXT:    sw s2, 32(a0)
-; RV32IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    sw t3, 20(a0)
-; RV32IZCMP-SR-NEXT:    sw t2, 16(a0)
-; RV32IZCMP-SR-NEXT:    sw t1, 12(a0)
-; RV32IZCMP-SR-NEXT:    sw t0, 8(a0)
-; RV32IZCMP-SR-NEXT:    sw a7, 4(a0)
-; RV32IZCMP-SR-NEXT:    sw a6, 0(a0)
+; RV32IZCMP-SR-NEXT:    sw s0, 32(a0)
+; RV32IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    sw a6, 20(a0)
+; RV32IZCMP-SR-NEXT:    sw a5, 16(a0)
+; RV32IZCMP-SR-NEXT:    sw a4, 12(a0)
+; RV32IZCMP-SR-NEXT:    sw a3, 8(a0)
+; RV32IZCMP-SR-NEXT:    sw a2, 4(a0)
+; RV32IZCMP-SR-NEXT:    sw a1, 0(a0)
 ; RV32IZCMP-SR-NEXT:    cm.popret {ra, s0-s3}, 32
 ;
 ; RV64IZCMP-SR-LABEL: many_args:
@@ -1407,42 +1407,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV64IZCMP-SR-NEXT:    .cfi_offset s3, -8
 ; RV64IZCMP-SR-NEXT:    lui a0, %hi(var0)
 ; RV64IZCMP-SR-NEXT:    addi a0, a0, %lo(var0)
-; RV64IZCMP-SR-NEXT:    lw a6, 0(a0)
-; RV64IZCMP-SR-NEXT:    lw a7, 4(a0)
-; RV64IZCMP-SR-NEXT:    lw t0, 8(a0)
-; RV64IZCMP-SR-NEXT:    lw t1, 12(a0)
-; RV64IZCMP-SR-NEXT:    lw t2, 16(a0)
-; RV64IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    lw a4, 64(a0)
-; RV64IZCMP-SR-NEXT:    lw a5, 68(a0)
-; RV64IZCMP-SR-NEXT:    lw t6, 48(a0)
-; RV64IZCMP-SR-NEXT:    lw s3, 52(a0)
-; RV64IZCMP-SR-NEXT:    lw a3, 56(a0)
-; RV64IZCMP-SR-NEXT:    lw a1, 60(a0)
-; RV64IZCMP-SR-NEXT:    lw s2, 32(a0)
+; RV64IZCMP-SR-NEXT:    lw a1, 0(a0)
+; RV64IZCMP-SR-NEXT:    lw a2, 4(a0)
+; RV64IZCMP-SR-NEXT:    lw a3, 8(a0)
+; RV64IZCMP-SR-NEXT:    lw a4, 12(a0)
+; RV64IZCMP-SR-NEXT:    lw a5, 16(a0)
+; RV64IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    lw t1, 64(a0)
+; RV64IZCMP-SR-NEXT:    lw t2, 68(a0)
+; RV64IZCMP-SR-NEXT:    lw t3, 48(a0)
+; RV64IZCMP-SR-NEXT:    lw t4, 52(a0)
+; RV64IZCMP-SR-NEXT:    lw t5, 56(a0)
+; RV64IZCMP-SR-NEXT:    lw t6, 60(a0)
+; RV64IZCMP-SR-NEXT:    lw s0, 32(a0)
 ; RV64IZCMP-SR-NEXT:    lw s1, 36(a0)
-; RV64IZCMP-SR-NEXT:    lw s0, 40(a0)
-; RV64IZCMP-SR-NEXT:    lw a2, 44(a0)
-; RV64IZCMP-SR-NEXT:    sw a5, 68(a0)
-; RV64IZCMP-SR-NEXT:    sw a4, 64(a0)
-; RV64IZCMP-SR-NEXT:    sw a1, 60(a0)
-; RV64IZCMP-SR-NEXT:    sw a3, 56(a0)
-; RV64IZCMP-SR-NEXT:    sw s3, 52(a0)
-; RV64IZCMP-SR-NEXT:    sw t6, 48(a0)
-; RV64IZCMP-SR-NEXT:    sw a2, 44(a0)
-; RV64IZCMP-SR-NEXT:    sw s0, 40(a0)
+; RV64IZCMP-SR-NEXT:    lw s2, 40(a0)
+; RV64IZCMP-SR-NEXT:    lw s3, 44(a0)
+; RV64IZCMP-SR-NEXT:    sw t2, 68(a0)
+; RV64IZCMP-SR-NEXT:    sw t1, 64(a0)
+; RV64IZCMP-SR-NEXT:    sw t6, 60(a0)
+; RV64IZCMP-SR-NEXT:    sw t5, 56(a0)
+; RV64IZCMP-SR-NEXT:    sw t4, 52(a0)
+; RV64IZCMP-SR-NEXT:    sw t3, 48(a0)
+; RV64IZCMP-SR-NEXT:    sw s3, 44(a0)
+; RV64IZCMP-SR-NEXT:    sw s2, 40(a0)
 ; RV64IZCMP-SR-NEXT:    sw s1, 36(a0)
-; RV64IZCMP-SR-NEXT:    sw s2, 32(a0)
-; RV64IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    sw t3, 20(a0)
-; RV64IZCMP-SR-NEXT:    sw t2, 16(a0)
-; RV64IZCMP-SR-NEXT:    sw t1, 12(a0)
-; RV64IZCMP-SR-NEXT:    sw t0, 8(a0)
-; RV64IZCMP-SR-NEXT:    sw a7, 4(a0)
-; RV64IZCMP-SR-NEXT:    sw a6, 0(a0)
+; RV64IZCMP-SR-NEXT:    sw s0, 32(a0)
+; RV64IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    sw a6, 20(a0)
+; RV64IZCMP-SR-NEXT:    sw a5, 16(a0)
+; RV64IZCMP-SR-NEXT:    sw a4, 12(a0)
+; RV64IZCMP-SR-NEXT:    sw a3, 8(a0)
+; RV64IZCMP-SR-NEXT:    sw a2, 4(a0)
+; RV64IZCMP-SR-NEXT:    sw a1, 0(a0)
 ; RV64IZCMP-SR-NEXT:    cm.popret {ra, s0-s3}, 48
 ;
 ; RV32I-LABEL: many_args:
@@ -2310,60 +2310,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV32IZCMP-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; RV32IZCMP-NEXT:    lw a1, 16(a0)
 ; RV32IZCMP-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; RV32IZCMP-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-NEXT:    lw t0, 112(a0)
-; RV32IZCMP-NEXT:    lw s0, 116(a0)
-; RV32IZCMP-NEXT:    lw s1, 120(a0)
-; RV32IZCMP-NEXT:    lw a5, 124(a0)
-; RV32IZCMP-NEXT:    lw t1, 96(a0)
-; RV32IZCMP-NEXT:    lw a6, 100(a0)
-; RV32IZCMP-NEXT:    lw a3, 104(a0)
+; RV32IZCMP-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-NEXT:    lw s0, 56(a0)
+; RV32IZCMP-NEXT:    lw s1, 60(a0)
+; RV32IZCMP-NEXT:    lw s2, 64(a0)
+; RV32IZCMP-NEXT:    lw s3, 68(a0)
+; RV32IZCMP-NEXT:    lw s4, 72(a0)
+; RV32IZCMP-NEXT:    lw s5, 76(a0)
+; RV32IZCMP-NEXT:    lw s6, 112(a0)
+; RV32IZCMP-NEXT:    lw s7, 116(a0)
+; RV32IZCMP-NEXT:    lw s8, 120(a0)
+; RV32IZCMP-NEXT:    lw s9, 124(a0)
+; RV32IZCMP-NEXT:    lw s10, 96(a0)
+; RV32IZCMP-NEXT:    lw s11, 100(a0)
+; RV32IZCMP-NEXT:    lw ra, 104(a0)
 ; RV32IZCMP-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-NEXT:    lw a4, 88(a0)
+; RV32IZCMP-NEXT:    lw a5, 80(a0)
+; RV32IZCMP-NEXT:    lw a4, 84(a0)
+; RV32IZCMP-NEXT:    lw a3, 88(a0)
 ; RV32IZCMP-NEXT:    lw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a5, 124(a0)
-; RV32IZCMP-NEXT:    sw s1, 120(a0)
-; RV32IZCMP-NEXT:    sw s0, 116(a0)
-; RV32IZCMP-NEXT:    sw t0, 112(a0)
+; RV32IZCMP-NEXT:    sw s9, 124(a0)
+; RV32IZCMP-NEXT:    sw s8, 120(a0)
+; RV32IZCMP-NEXT:    sw s7, 116(a0)
+; RV32IZCMP-NEXT:    sw s6, 112(a0)
 ; RV32IZCMP-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-NEXT:    sw a3, 104(a0)
-; RV32IZCMP-NEXT:    sw a6, 100(a0)
-; RV32IZCMP-NEXT:    sw t1, 96(a0)
+; RV32IZCMP-NEXT:    sw ra, 104(a0)
+; RV32IZCMP-NEXT:    sw s11, 100(a0)
+; RV32IZCMP-NEXT:    sw s10, 96(a0)
 ; RV32IZCMP-NEXT:    sw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a4, 88(a0)
-; RV32IZCMP-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-NEXT:    sw t3, 20(a0)
+; RV32IZCMP-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-NEXT:    sw a4, 84(a0)
+; RV32IZCMP-NEXT:    sw a5, 80(a0)
+; RV32IZCMP-NEXT:    sw s5, 76(a0)
+; RV32IZCMP-NEXT:    sw s4, 72(a0)
+; RV32IZCMP-NEXT:    sw s3, 68(a0)
+; RV32IZCMP-NEXT:    sw s2, 64(a0)
+; RV32IZCMP-NEXT:    sw s1, 60(a0)
+; RV32IZCMP-NEXT:    sw s0, 56(a0)
+; RV32IZCMP-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-NEXT:    sw a6, 20(a0)
 ; RV32IZCMP-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; RV32IZCMP-NEXT:    sw a1, 16(a0)
 ; RV32IZCMP-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -2484,60 +2484,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV64IZCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IZCMP-NEXT:    lw a1, 16(a0)
 ; RV64IZCMP-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IZCMP-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-NEXT:    lw t0, 112(a0)
-; RV64IZCMP-NEXT:    lw s0, 116(a0)
-; RV64IZCMP-NEXT:    lw s1, 120(a0)
-; RV64IZCMP-NEXT:    lw a5, 124(a0)
-; RV64IZCMP-NEXT:    lw t1, 96(a0)
-; RV64IZCMP-NEXT:    lw a6, 100(a0)
-; RV64IZCMP-NEXT:    lw a3, 104(a0)
+; RV64IZCMP-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-NEXT:    lw s0, 56(a0)
+; RV64IZCMP-NEXT:    lw s1, 60(a0)
+; RV64IZCMP-NEXT:    lw s2, 64(a0)
+; RV64IZCMP-NEXT:    lw s3, 68(a0)
+; RV64IZCMP-NEXT:    lw s4, 72(a0)
+; RV64IZCMP-NEXT:    lw s5, 76(a0)
+; RV64IZCMP-NEXT:    lw s6, 112(a0)
+; RV64IZCMP-NEXT:    lw s7, 116(a0)
+; RV64IZCMP-NEXT:    lw s8, 120(a0)
+; RV64IZCMP-NEXT:    lw s9, 124(a0)
+; RV64IZCMP-NEXT:    lw s10, 96(a0)
+; RV64IZCMP-NEXT:    lw s11, 100(a0)
+; RV64IZCMP-NEXT:    lw ra, 104(a0)
 ; RV64IZCMP-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-NEXT:    lw a4, 88(a0)
+; RV64IZCMP-NEXT:    lw a5, 80(a0)
+; RV64IZCMP-NEXT:    lw a4, 84(a0)
+; RV64IZCMP-NEXT:    lw a3, 88(a0)
 ; RV64IZCMP-NEXT:    lw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a5, 124(a0)
-; RV64IZCMP-NEXT:    sw s1, 120(a0)
-; RV64IZCMP-NEXT:    sw s0, 116(a0)
-; RV64IZCMP-NEXT:    sw t0, 112(a0)
+; RV64IZCMP-NEXT:    sw s9, 124(a0)
+; RV64IZCMP-NEXT:    sw s8, 120(a0)
+; RV64IZCMP-NEXT:    sw s7, 116(a0)
+; RV64IZCMP-NEXT:    sw s6, 112(a0)
 ; RV64IZCMP-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-NEXT:    sw a3, 104(a0)
-; RV64IZCMP-NEXT:    sw a6, 100(a0)
-; RV64IZCMP-NEXT:    sw t1, 96(a0)
+; RV64IZCMP-NEXT:    sw ra, 104(a0)
+; RV64IZCMP-NEXT:    sw s11, 100(a0)
+; RV64IZCMP-NEXT:    sw s10, 96(a0)
 ; RV64IZCMP-NEXT:    sw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a4, 88(a0)
-; RV64IZCMP-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-NEXT:    sw t3, 20(a0)
+; RV64IZCMP-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-NEXT:    sw a4, 84(a0)
+; RV64IZCMP-NEXT:    sw a5, 80(a0)
+; RV64IZCMP-NEXT:    sw s5, 76(a0)
+; RV64IZCMP-NEXT:    sw s4, 72(a0)
+; RV64IZCMP-NEXT:    sw s3, 68(a0)
+; RV64IZCMP-NEXT:    sw s2, 64(a0)
+; RV64IZCMP-NEXT:    sw s1, 60(a0)
+; RV64IZCMP-NEXT:    sw s0, 56(a0)
+; RV64IZCMP-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-NEXT:    sw a6, 20(a0)
 ; RV64IZCMP-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IZCMP-NEXT:    sw a1, 16(a0)
 ; RV64IZCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -2658,60 +2658,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV32IZCMP-SR-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; RV32IZCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV32IZCMP-SR-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; RV32IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-SR-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-SR-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-SR-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-SR-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-SR-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-SR-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-SR-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-SR-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-SR-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-SR-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-SR-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-SR-NEXT:    lw t0, 112(a0)
-; RV32IZCMP-SR-NEXT:    lw s0, 116(a0)
-; RV32IZCMP-SR-NEXT:    lw s1, 120(a0)
-; RV32IZCMP-SR-NEXT:    lw a5, 124(a0)
-; RV32IZCMP-SR-NEXT:    lw t1, 96(a0)
-; RV32IZCMP-SR-NEXT:    lw a6, 100(a0)
-; RV32IZCMP-SR-NEXT:    lw a3, 104(a0)
+; RV32IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-SR-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-SR-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-SR-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-SR-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-SR-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-SR-NEXT:    lw s0, 56(a0)
+; RV32IZCMP-SR-NEXT:    lw s1, 60(a0)
+; RV32IZCMP-SR-NEXT:    lw s2, 64(a0)
+; RV32IZCMP-SR-NEXT:    lw s3, 68(a0)
+; RV32IZCMP-SR-NEXT:    lw s4, 72(a0)
+; RV32IZCMP-SR-NEXT:    lw s5, 76(a0)
+; RV32IZCMP-SR-NEXT:    lw s6, 112(a0)
+; RV32IZCMP-SR-NEXT:    lw s7, 116(a0)
+; RV32IZCMP-SR-NEXT:    lw s8, 120(a0)
+; RV32IZCMP-SR-NEXT:    lw s9, 124(a0)
+; RV32IZCMP-SR-NEXT:    lw s10, 96(a0)
+; RV32IZCMP-SR-NEXT:    lw s11, 100(a0)
+; RV32IZCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-SR-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-SR-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-SR-NEXT:    lw a4, 88(a0)
+; RV32IZCMP-SR-NEXT:    lw a5, 80(a0)
+; RV32IZCMP-SR-NEXT:    lw a4, 84(a0)
+; RV32IZCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV32IZCMP-SR-NEXT:    lw a2, 92(a0)
-; RV32IZCMP-SR-NEXT:    sw a5, 124(a0)
-; RV32IZCMP-SR-NEXT:    sw s1, 120(a0)
-; RV32IZCMP-SR-NEXT:    sw s0, 116(a0)
-; RV32IZCMP-SR-NEXT:    sw t0, 112(a0)
+; RV32IZCMP-SR-NEXT:    sw s9, 124(a0)
+; RV32IZCMP-SR-NEXT:    sw s8, 120(a0)
+; RV32IZCMP-SR-NEXT:    sw s7, 116(a0)
+; RV32IZCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV32IZCMP-SR-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-SR-NEXT:    sw a3, 104(a0)
-; RV32IZCMP-SR-NEXT:    sw a6, 100(a0)
-; RV32IZCMP-SR-NEXT:    sw t1, 96(a0)
+; RV32IZCMP-SR-NEXT:    sw ra, 104(a0)
+; RV32IZCMP-SR-NEXT:    sw s11, 100(a0)
+; RV32IZCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV32IZCMP-SR-NEXT:    sw a2, 92(a0)
-; RV32IZCMP-SR-NEXT:    sw a4, 88(a0)
-; RV32IZCMP-SR-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-SR-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-SR-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-SR-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-SR-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-SR-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-SR-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-SR-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-SR-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-SR-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-SR-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-SR-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-SR-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-SR-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    sw t3, 20(a0)
+; RV32IZCMP-SR-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-SR-NEXT:    sw a4, 84(a0)
+; RV32IZCMP-SR-NEXT:    sw a5, 80(a0)
+; RV32IZCMP-SR-NEXT:    sw s5, 76(a0)
+; RV32IZCMP-SR-NEXT:    sw s4, 72(a0)
+; RV32IZCMP-SR-NEXT:    sw s3, 68(a0)
+; RV32IZCMP-SR-NEXT:    sw s2, 64(a0)
+; RV32IZCMP-SR-NEXT:    sw s1, 60(a0)
+; RV32IZCMP-SR-NEXT:    sw s0, 56(a0)
+; RV32IZCMP-SR-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-SR-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-SR-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-SR-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-SR-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-SR-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; RV32IZCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -2832,60 +2832,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV64IZCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IZCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV64IZCMP-SR-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-SR-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-SR-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-SR-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-SR-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-SR-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-SR-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-SR-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-SR-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-SR-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-SR-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-SR-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-SR-NEXT:    lw t0, 112(a0)
-; RV64IZCMP-SR-NEXT:    lw s0, 116(a0)
-; RV64IZCMP-SR-NEXT:    lw s1, 120(a0)
-; RV64IZCMP-SR-NEXT:    lw a5, 124(a0)
-; RV64IZCMP-SR-NEXT:    lw t1, 96(a0)
-; RV64IZCMP-SR-NEXT:    lw a6, 100(a0)
-; RV64IZCMP-SR-NEXT:    lw a3, 104(a0)
+; RV64IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-SR-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-SR-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-SR-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-SR-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-SR-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-SR-NEXT:    lw s0, 56(a0)
+; RV64IZCMP-SR-NEXT:    lw s1, 60(a0)
+; RV64IZCMP-SR-NEXT:    lw s2, 64(a0)
+; RV64IZCMP-SR-NEXT:    lw s3, 68(a0)
+; RV64IZCMP-SR-NEXT:    lw s4, 72(a0)
+; RV64IZCMP-SR-NEXT:    lw s5, 76(a0)
+; RV64IZCMP-SR-NEXT:    lw s6, 112(a0)
+; RV64IZCMP-SR-NEXT:    lw s7, 116(a0)
+; RV64IZCMP-SR-NEXT:    lw s8, 120(a0)
+; RV64IZCMP-SR-NEXT:    lw s9, 124(a0)
+; RV64IZCMP-SR-NEXT:    lw s10, 96(a0)
+; RV64IZCMP-SR-NEXT:    lw s11, 100(a0)
+; RV64IZCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV64IZCMP-SR-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-SR-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-SR-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-SR-NEXT:    lw a4, 88(a0)
+; RV64IZCMP-SR-NEXT:    lw a5, 80(a0)
+; RV64IZCMP-SR-NEXT:    lw a4, 84(a0)
+; RV64IZCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV64IZCMP-SR-NEXT:    lw a2, 92(a0)
-; RV64IZCMP-SR-NEXT:    sw a5, 124(a0)
-; RV64IZCMP-SR-NEXT:    sw s1, 120(a0)
-; RV64IZCMP-SR-NEXT:    sw s0, 116(a0)
-; RV64IZCMP-SR-NEXT:    sw t0, 112(a0)
+; RV64IZCMP-SR-NEXT:    sw s9, 124(a0)
+; RV64IZCMP-SR-NEXT:    sw s8, 120(a0)
+; RV64IZCMP-SR-NEXT:    sw s7, 116(a0)
+; RV64IZCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV64IZCMP-SR-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-SR-NEXT:    sw a3, 104(a0)
-; RV64IZCMP-SR-NEXT:    sw a6, 100(a0)
-; RV64IZCMP-SR-NEXT:    sw t1, 96(a0)
+; RV64IZCMP-SR-NEXT:    sw ra, 104(a0)
+; RV64IZCMP-SR-NEXT:    sw s11, 100(a0)
+; RV64IZCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV64IZCMP-SR-NEXT:    sw a2, 92(a0)
-; RV64IZCMP-SR-NEXT:    sw a4, 88(a0)
-; RV64IZCMP-SR-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-SR-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-SR-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-SR-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-SR-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-SR-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-SR-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-SR-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-SR-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-SR-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-SR-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-SR-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-SR-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-SR-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    sw t3, 20(a0)
+; RV64IZCMP-SR-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-SR-NEXT:    sw a4, 84(a0)
+; RV64IZCMP-SR-NEXT:    sw a5, 80(a0)
+; RV64IZCMP-SR-NEXT:    sw s5, 76(a0)
+; RV64IZCMP-SR-NEXT:    sw s4, 72(a0)
+; RV64IZCMP-SR-NEXT:    sw s3, 68(a0)
+; RV64IZCMP-SR-NEXT:    sw s2, 64(a0)
+; RV64IZCMP-SR-NEXT:    sw s1, 60(a0)
+; RV64IZCMP-SR-NEXT:    sw s0, 56(a0)
+; RV64IZCMP-SR-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-SR-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-SR-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-SR-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-SR-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-SR-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV64IZCMP-SR-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IZCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV64IZCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -3371,60 +3371,60 @@ define void @callee_no_irq() {
 ; RV32IZCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IZCMP-NEXT:    lw a1, 16(a0)
 ; RV32IZCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IZCMP-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-NEXT:    lw t0, 112(a0)
-; RV32IZCMP-NEXT:    lw s0, 116(a0)
-; RV32IZCMP-NEXT:    lw s1, 120(a0)
-; RV32IZCMP-NEXT:    lw a5, 124(a0)
-; RV32IZCMP-NEXT:    lw t1, 96(a0)
-; RV32IZCMP-NEXT:    lw a6, 100(a0)
-; RV32IZCMP-NEXT:    lw a3, 104(a0)
+; RV32IZCMP-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-NEXT:    lw s0, 56(a0)
+; RV32IZCMP-NEXT:    lw s1, 60(a0)
+; RV32IZCMP-NEXT:    lw s2, 64(a0)
+; RV32IZCMP-NEXT:    lw s3, 68(a0)
+; RV32IZCMP-NEXT:    lw s4, 72(a0)
+; RV32IZCMP-NEXT:    lw s5, 76(a0)
+; RV32IZCMP-NEXT:    lw s6, 112(a0)
+; RV32IZCMP-NEXT:    lw s7, 116(a0)
+; RV32IZCMP-NEXT:    lw s8, 120(a0)
+; RV32IZCMP-NEXT:    lw s9, 124(a0)
+; RV32IZCMP-NEXT:    lw s10, 96(a0)
+; RV32IZCMP-NEXT:    lw s11, 100(a0)
+; RV32IZCMP-NEXT:    lw ra, 104(a0)
 ; RV32IZCMP-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-NEXT:    lw a4, 88(a0)
+; RV32IZCMP-NEXT:    lw a5, 80(a0)
+; RV32IZCMP-NEXT:    lw a4, 84(a0)
+; RV32IZCMP-NEXT:    lw a3, 88(a0)
 ; RV32IZCMP-NEXT:    lw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a5, 124(a0)
-; RV32IZCMP-NEXT:    sw s1, 120(a0)
-; RV32IZCMP-NEXT:    sw s0, 116(a0)
-; RV32IZCMP-NEXT:    sw t0, 112(a0)
+; RV32IZCMP-NEXT:    sw s9, 124(a0)
+; RV32IZCMP-NEXT:    sw s8, 120(a0)
+; RV32IZCMP-NEXT:    sw s7, 116(a0)
+; RV32IZCMP-NEXT:    sw s6, 112(a0)
 ; RV32IZCMP-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-NEXT:    sw a3, 104(a0)
-; RV32IZCMP-NEXT:    sw a6, 100(a0)
-; RV32IZCMP-NEXT:    sw t1, 96(a0)
+; RV32IZCMP-NEXT:    sw ra, 104(a0)
+; RV32IZCMP-NEXT:    sw s11, 100(a0)
+; RV32IZCMP-NEXT:    sw s10, 96(a0)
 ; RV32IZCMP-NEXT:    sw a2, 92(a0)
-; RV32IZCMP-NEXT:    sw a4, 88(a0)
-; RV32IZCMP-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-NEXT:    sw t3, 20(a0)
+; RV32IZCMP-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-NEXT:    sw a4, 84(a0)
+; RV32IZCMP-NEXT:    sw a5, 80(a0)
+; RV32IZCMP-NEXT:    sw s5, 76(a0)
+; RV32IZCMP-NEXT:    sw s4, 72(a0)
+; RV32IZCMP-NEXT:    sw s3, 68(a0)
+; RV32IZCMP-NEXT:    sw s2, 64(a0)
+; RV32IZCMP-NEXT:    sw s1, 60(a0)
+; RV32IZCMP-NEXT:    sw s0, 56(a0)
+; RV32IZCMP-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-NEXT:    sw a6, 20(a0)
 ; RV32IZCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IZCMP-NEXT:    sw a1, 16(a0)
 ; RV32IZCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -3466,60 +3466,60 @@ define void @callee_no_irq() {
 ; RV64IZCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IZCMP-NEXT:    lw a1, 16(a0)
 ; RV64IZCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IZCMP-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-NEXT:    lw t0, 112(a0)
-; RV64IZCMP-NEXT:    lw s0, 116(a0)
-; RV64IZCMP-NEXT:    lw s1, 120(a0)
-; RV64IZCMP-NEXT:    lw a5, 124(a0)
-; RV64IZCMP-NEXT:    lw t1, 96(a0)
-; RV64IZCMP-NEXT:    lw a6, 100(a0)
-; RV64IZCMP-NEXT:    lw a3, 104(a0)
+; RV64IZCMP-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-NEXT:    lw s0, 56(a0)
+; RV64IZCMP-NEXT:    lw s1, 60(a0)
+; RV64IZCMP-NEXT:    lw s2, 64(a0)
+; RV64IZCMP-NEXT:    lw s3, 68(a0)
+; RV64IZCMP-NEXT:    lw s4, 72(a0)
+; RV64IZCMP-NEXT:    lw s5, 76(a0)
+; RV64IZCMP-NEXT:    lw s6, 112(a0)
+; RV64IZCMP-NEXT:    lw s7, 116(a0)
+; RV64IZCMP-NEXT:    lw s8, 120(a0)
+; RV64IZCMP-NEXT:    lw s9, 124(a0)
+; RV64IZCMP-NEXT:    lw s10, 96(a0)
+; RV64IZCMP-NEXT:    lw s11, 100(a0)
+; RV64IZCMP-NEXT:    lw ra, 104(a0)
 ; RV64IZCMP-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-NEXT:    lw a4, 88(a0)
+; RV64IZCMP-NEXT:    lw a5, 80(a0)
+; RV64IZCMP-NEXT:    lw a4, 84(a0)
+; RV64IZCMP-NEXT:    lw a3, 88(a0)
 ; RV64IZCMP-NEXT:    lw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a5, 124(a0)
-; RV64IZCMP-NEXT:    sw s1, 120(a0)
-; RV64IZCMP-NEXT:    sw s0, 116(a0)
-; RV64IZCMP-NEXT:    sw t0, 112(a0)
+; RV64IZCMP-NEXT:    sw s9, 124(a0)
+; RV64IZCMP-NEXT:    sw s8, 120(a0)
+; RV64IZCMP-NEXT:    sw s7, 116(a0)
+; RV64IZCMP-NEXT:    sw s6, 112(a0)
 ; RV64IZCMP-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-NEXT:    sw a3, 104(a0)
-; RV64IZCMP-NEXT:    sw a6, 100(a0)
-; RV64IZCMP-NEXT:    sw t1, 96(a0)
+; RV64IZCMP-NEXT:    sw ra, 104(a0)
+; RV64IZCMP-NEXT:    sw s11, 100(a0)
+; RV64IZCMP-NEXT:    sw s10, 96(a0)
 ; RV64IZCMP-NEXT:    sw a2, 92(a0)
-; RV64IZCMP-NEXT:    sw a4, 88(a0)
-; RV64IZCMP-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-NEXT:    sw t3, 20(a0)
+; RV64IZCMP-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-NEXT:    sw a4, 84(a0)
+; RV64IZCMP-NEXT:    sw a5, 80(a0)
+; RV64IZCMP-NEXT:    sw s5, 76(a0)
+; RV64IZCMP-NEXT:    sw s4, 72(a0)
+; RV64IZCMP-NEXT:    sw s3, 68(a0)
+; RV64IZCMP-NEXT:    sw s2, 64(a0)
+; RV64IZCMP-NEXT:    sw s1, 60(a0)
+; RV64IZCMP-NEXT:    sw s0, 56(a0)
+; RV64IZCMP-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-NEXT:    sw a6, 20(a0)
 ; RV64IZCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IZCMP-NEXT:    sw a1, 16(a0)
 ; RV64IZCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -3561,60 +3561,60 @@ define void @callee_no_irq() {
 ; RV32IZCMP-SR-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IZCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV32IZCMP-SR-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    lw t6, 32(a0)
-; RV32IZCMP-SR-NEXT:    lw s2, 36(a0)
-; RV32IZCMP-SR-NEXT:    lw s3, 40(a0)
-; RV32IZCMP-SR-NEXT:    lw s4, 44(a0)
-; RV32IZCMP-SR-NEXT:    lw s5, 48(a0)
-; RV32IZCMP-SR-NEXT:    lw s6, 52(a0)
-; RV32IZCMP-SR-NEXT:    lw s7, 56(a0)
-; RV32IZCMP-SR-NEXT:    lw s8, 60(a0)
-; RV32IZCMP-SR-NEXT:    lw s9, 64(a0)
-; RV32IZCMP-SR-NEXT:    lw s10, 68(a0)
-; RV32IZCMP-SR-NEXT:    lw s11, 72(a0)
-; RV32IZCMP-SR-NEXT:    lw ra, 76(a0)
-; RV32IZCMP-SR-NEXT:    lw t0, 112(a0)
-; RV32IZCMP-SR-NEXT:    lw s0, 116(a0)
-; RV32IZCMP-SR-NEXT:    lw s1, 120(a0)
-; RV32IZCMP-SR-NEXT:    lw a5, 124(a0)
-; RV32IZCMP-SR-NEXT:    lw t1, 96(a0)
-; RV32IZCMP-SR-NEXT:    lw a6, 100(a0)
-; RV32IZCMP-SR-NEXT:    lw a3, 104(a0)
+; RV32IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    lw t1, 32(a0)
+; RV32IZCMP-SR-NEXT:    lw t2, 36(a0)
+; RV32IZCMP-SR-NEXT:    lw t3, 40(a0)
+; RV32IZCMP-SR-NEXT:    lw t4, 44(a0)
+; RV32IZCMP-SR-NEXT:    lw t5, 48(a0)
+; RV32IZCMP-SR-NEXT:    lw t6, 52(a0)
+; RV32IZCMP-SR-NEXT:    lw s0, 56(a0)
+; RV32IZCMP-SR-NEXT:    lw s1, 60(a0)
+; RV32IZCMP-SR-NEXT:    lw s2, 64(a0)
+; RV32IZCMP-SR-NEXT:    lw s3, 68(a0)
+; RV32IZCMP-SR-NEXT:    lw s4, 72(a0)
+; RV32IZCMP-SR-NEXT:    lw s5, 76(a0)
+; RV32IZCMP-SR-NEXT:    lw s6, 112(a0)
+; RV32IZCMP-SR-NEXT:    lw s7, 116(a0)
+; RV32IZCMP-SR-NEXT:    lw s8, 120(a0)
+; RV32IZCMP-SR-NEXT:    lw s9, 124(a0)
+; RV32IZCMP-SR-NEXT:    lw s10, 96(a0)
+; RV32IZCMP-SR-NEXT:    lw s11, 100(a0)
+; RV32IZCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 108(a0)
-; RV32IZCMP-SR-NEXT:    lw t2, 80(a0)
-; RV32IZCMP-SR-NEXT:    lw a7, 84(a0)
-; RV32IZCMP-SR-NEXT:    lw a4, 88(a0)
+; RV32IZCMP-SR-NEXT:    lw a5, 80(a0)
+; RV32IZCMP-SR-NEXT:    lw a4, 84(a0)
+; RV32IZCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV32IZCMP-SR-NEXT:    lw a2, 92(a0)
-; RV32IZCMP-SR-NEXT:    sw a5, 124(a0)
-; RV32IZCMP-SR-NEXT:    sw s1, 120(a0)
-; RV32IZCMP-SR-NEXT:    sw s0, 116(a0)
-; RV32IZCMP-SR-NEXT:    sw t0, 112(a0)
+; RV32IZCMP-SR-NEXT:    sw s9, 124(a0)
+; RV32IZCMP-SR-NEXT:    sw s8, 120(a0)
+; RV32IZCMP-SR-NEXT:    sw s7, 116(a0)
+; RV32IZCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV32IZCMP-SR-NEXT:    sw a1, 108(a0)
-; RV32IZCMP-SR-NEXT:    sw a3, 104(a0)
-; RV32IZCMP-SR-NEXT:    sw a6, 100(a0)
-; RV32IZCMP-SR-NEXT:    sw t1, 96(a0)
+; RV32IZCMP-SR-NEXT:    sw ra, 104(a0)
+; RV32IZCMP-SR-NEXT:    sw s11, 100(a0)
+; RV32IZCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV32IZCMP-SR-NEXT:    sw a2, 92(a0)
-; RV32IZCMP-SR-NEXT:    sw a4, 88(a0)
-; RV32IZCMP-SR-NEXT:    sw a7, 84(a0)
-; RV32IZCMP-SR-NEXT:    sw t2, 80(a0)
-; RV32IZCMP-SR-NEXT:    sw ra, 76(a0)
-; RV32IZCMP-SR-NEXT:    sw s11, 72(a0)
-; RV32IZCMP-SR-NEXT:    sw s10, 68(a0)
-; RV32IZCMP-SR-NEXT:    sw s9, 64(a0)
-; RV32IZCMP-SR-NEXT:    sw s8, 60(a0)
-; RV32IZCMP-SR-NEXT:    sw s7, 56(a0)
-; RV32IZCMP-SR-NEXT:    sw s6, 52(a0)
-; RV32IZCMP-SR-NEXT:    sw s5, 48(a0)
-; RV32IZCMP-SR-NEXT:    sw s4, 44(a0)
-; RV32IZCMP-SR-NEXT:    sw s3, 40(a0)
-; RV32IZCMP-SR-NEXT:    sw s2, 36(a0)
-; RV32IZCMP-SR-NEXT:    sw t6, 32(a0)
-; RV32IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IZCMP-SR-NEXT:    sw t3, 20(a0)
+; RV32IZCMP-SR-NEXT:    sw a3, 88(a0)
+; RV32IZCMP-SR-NEXT:    sw a4, 84(a0)
+; RV32IZCMP-SR-NEXT:    sw a5, 80(a0)
+; RV32IZCMP-SR-NEXT:    sw s5, 76(a0)
+; RV32IZCMP-SR-NEXT:    sw s4, 72(a0)
+; RV32IZCMP-SR-NEXT:    sw s3, 68(a0)
+; RV32IZCMP-SR-NEXT:    sw s2, 64(a0)
+; RV32IZCMP-SR-NEXT:    sw s1, 60(a0)
+; RV32IZCMP-SR-NEXT:    sw s0, 56(a0)
+; RV32IZCMP-SR-NEXT:    sw t6, 52(a0)
+; RV32IZCMP-SR-NEXT:    sw t5, 48(a0)
+; RV32IZCMP-SR-NEXT:    sw t4, 44(a0)
+; RV32IZCMP-SR-NEXT:    sw t3, 40(a0)
+; RV32IZCMP-SR-NEXT:    sw t2, 36(a0)
+; RV32IZCMP-SR-NEXT:    sw t1, 32(a0)
+; RV32IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IZCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IZCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV32IZCMP-SR-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -3656,60 +3656,60 @@ define void @callee_no_irq() {
 ; RV64IZCMP-SR-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IZCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV64IZCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IZCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IZCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    lw t6, 32(a0)
-; RV64IZCMP-SR-NEXT:    lw s2, 36(a0)
-; RV64IZCMP-SR-NEXT:    lw s3, 40(a0)
-; RV64IZCMP-SR-NEXT:    lw s4, 44(a0)
-; RV64IZCMP-SR-NEXT:    lw s5, 48(a0)
-; RV64IZCMP-SR-NEXT:    lw s6, 52(a0)
-; RV64IZCMP-SR-NEXT:    lw s7, 56(a0)
-; RV64IZCMP-SR-NEXT:    lw s8, 60(a0)
-; RV64IZCMP-SR-NEXT:    lw s9, 64(a0)
-; RV64IZCMP-SR-NEXT:    lw s10, 68(a0)
-; RV64IZCMP-SR-NEXT:    lw s11, 72(a0)
-; RV64IZCMP-SR-NEXT:    lw ra, 76(a0)
-; RV64IZCMP-SR-NEXT:    lw t0, 112(a0)
-; RV64IZCMP-SR-NEXT:    lw s0, 116(a0)
-; RV64IZCMP-SR-NEXT:    lw s1, 120(a0)
-; RV64IZCMP-SR-NEXT:    lw a5, 124(a0)
-; RV64IZCMP-SR-NEXT:    lw t1, 96(a0)
-; RV64IZCMP-SR-NEXT:    lw a6, 100(a0)
-; RV64IZCMP-SR-NEXT:    lw a3, 104(a0)
+; RV64IZCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IZCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    lw t1, 32(a0)
+; RV64IZCMP-SR-NEXT:    lw t2, 36(a0)
+; RV64IZCMP-SR-NEXT:    lw t3, 40(a0)
+; RV64IZCMP-SR-NEXT:    lw t4, 44(a0)
+; RV64IZCMP-SR-NEXT:    lw t5, 48(a0)
+; RV64IZCMP-SR-NEXT:    lw t6, 52(a0)
+; RV64IZCMP-SR-NEXT:    lw s0, 56(a0)
+; RV64IZCMP-SR-NEXT:    lw s1, 60(a0)
+; RV64IZCMP-SR-NEXT:    lw s2, 64(a0)
+; RV64IZCMP-SR-NEXT:    lw s3, 68(a0)
+; RV64IZCMP-SR-NEXT:    lw s4, 72(a0)
+; RV64IZCMP-SR-NEXT:    lw s5, 76(a0)
+; RV64IZCMP-SR-NEXT:    lw s6, 112(a0)
+; RV64IZCMP-SR-NEXT:    lw s7, 116(a0)
+; RV64IZCMP-SR-NEXT:    lw s8, 120(a0)
+; RV64IZCMP-SR-NEXT:    lw s9, 124(a0)
+; RV64IZCMP-SR-NEXT:    lw s10, 96(a0)
+; RV64IZCMP-SR-NEXT:    lw s11, 100(a0)
+; RV64IZCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV64IZCMP-SR-NEXT:    lw a1, 108(a0)
-; RV64IZCMP-SR-NEXT:    lw t2, 80(a0)
-; RV64IZCMP-SR-NEXT:    lw a7, 84(a0)
-; RV64IZCMP-SR-NEXT:    lw a4, 88(a0)
+; RV64IZCMP-SR-NEXT:    lw a5, 80(a0)
+; RV64IZCMP-SR-NEXT:    lw a4, 84(a0)
+; RV64IZCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV64IZCMP-SR-NEXT:    lw a2, 92(a0)
-; RV64IZCMP-SR-NEXT:    sw a5, 124(a0)
-; RV64IZCMP-SR-NEXT:    sw s1, 120(a0)
-; RV64IZCMP-SR-NEXT:    sw s0, 116(a0)
-; RV64IZCMP-SR-NEXT:    sw t0, 112(a0)
+; RV64IZCMP-SR-NEXT:    sw s9, 124(a0)
+; RV64IZCMP-SR-NEXT:    sw s8, 120(a0)
+; RV64IZCMP-SR-NEXT:    sw s7, 116(a0)
+; RV64IZCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV64IZCMP-SR-NEXT:    sw a1, 108(a0)
-; RV64IZCMP-SR-NEXT:    sw a3, 104(a0)
-; RV64IZCMP-SR-NEXT:    sw a6, 100(a0)
-; RV64IZCMP-SR-NEXT:    sw t1, 96(a0)
+; RV64IZCMP-SR-NEXT:    sw ra, 104(a0)
+; RV64IZCMP-SR-NEXT:    sw s11, 100(a0)
+; RV64IZCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV64IZCMP-SR-NEXT:    sw a2, 92(a0)
-; RV64IZCMP-SR-NEXT:    sw a4, 88(a0)
-; RV64IZCMP-SR-NEXT:    sw a7, 84(a0)
-; RV64IZCMP-SR-NEXT:    sw t2, 80(a0)
-; RV64IZCMP-SR-NEXT:    sw ra, 76(a0)
-; RV64IZCMP-SR-NEXT:    sw s11, 72(a0)
-; RV64IZCMP-SR-NEXT:    sw s10, 68(a0)
-; RV64IZCMP-SR-NEXT:    sw s9, 64(a0)
-; RV64IZCMP-SR-NEXT:    sw s8, 60(a0)
-; RV64IZCMP-SR-NEXT:    sw s7, 56(a0)
-; RV64IZCMP-SR-NEXT:    sw s6, 52(a0)
-; RV64IZCMP-SR-NEXT:    sw s5, 48(a0)
-; RV64IZCMP-SR-NEXT:    sw s4, 44(a0)
-; RV64IZCMP-SR-NEXT:    sw s3, 40(a0)
-; RV64IZCMP-SR-NEXT:    sw s2, 36(a0)
-; RV64IZCMP-SR-NEXT:    sw t6, 32(a0)
-; RV64IZCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IZCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IZCMP-SR-NEXT:    sw t3, 20(a0)
+; RV64IZCMP-SR-NEXT:    sw a3, 88(a0)
+; RV64IZCMP-SR-NEXT:    sw a4, 84(a0)
+; RV64IZCMP-SR-NEXT:    sw a5, 80(a0)
+; RV64IZCMP-SR-NEXT:    sw s5, 76(a0)
+; RV64IZCMP-SR-NEXT:    sw s4, 72(a0)
+; RV64IZCMP-SR-NEXT:    sw s3, 68(a0)
+; RV64IZCMP-SR-NEXT:    sw s2, 64(a0)
+; RV64IZCMP-SR-NEXT:    sw s1, 60(a0)
+; RV64IZCMP-SR-NEXT:    sw s0, 56(a0)
+; RV64IZCMP-SR-NEXT:    sw t6, 52(a0)
+; RV64IZCMP-SR-NEXT:    sw t5, 48(a0)
+; RV64IZCMP-SR-NEXT:    sw t4, 44(a0)
+; RV64IZCMP-SR-NEXT:    sw t3, 40(a0)
+; RV64IZCMP-SR-NEXT:    sw t2, 36(a0)
+; RV64IZCMP-SR-NEXT:    sw t1, 32(a0)
+; RV64IZCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IZCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IZCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV64IZCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IZCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV64IZCMP-SR-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/qci-interrupt-attr-fpr.ll b/llvm/test/CodeGen/RISCV/qci-interrupt-attr-fpr.ll
index 1caf2c110a46a..a16cc9ef87177 100644
--- a/llvm/test/CodeGen/RISCV/qci-interrupt-attr-fpr.ll
+++ b/llvm/test/CodeGen/RISCV/qci-interrupt-attr-fpr.ll
@@ -1094,60 +1094,60 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-F-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-F-NEXT:    lw a1, 16(a0)
 ; QCI-F-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-F-NEXT:    lw t3, 20(a0)
-; QCI-F-NEXT:    lw t4, 24(a0)
-; QCI-F-NEXT:    lw t5, 28(a0)
-; QCI-F-NEXT:    lw t6, 32(a0)
-; QCI-F-NEXT:    lw s2, 36(a0)
-; QCI-F-NEXT:    lw s3, 40(a0)
-; QCI-F-NEXT:    lw s4, 44(a0)
-; QCI-F-NEXT:    lw s5, 48(a0)
-; QCI-F-NEXT:    lw s6, 52(a0)
-; QCI-F-NEXT:    lw s7, 56(a0)
-; QCI-F-NEXT:    lw s8, 60(a0)
-; QCI-F-NEXT:    lw s9, 64(a0)
-; QCI-F-NEXT:    lw s10, 68(a0)
-; QCI-F-NEXT:    lw s11, 72(a0)
-; QCI-F-NEXT:    lw ra, 76(a0)
-; QCI-F-NEXT:    lw t0, 112(a0)
-; QCI-F-NEXT:    lw s0, 116(a0)
-; QCI-F-NEXT:    lw s1, 120(a0)
-; QCI-F-NEXT:    lw a5, 124(a0)
-; QCI-F-NEXT:    lw t1, 96(a0)
-; QCI-F-NEXT:    lw a6, 100(a0)
-; QCI-F-NEXT:    lw a3, 104(a0)
+; QCI-F-NEXT:    lw a6, 20(a0)
+; QCI-F-NEXT:    lw a7, 24(a0)
+; QCI-F-NEXT:    lw t0, 28(a0)
+; QCI-F-NEXT:    lw t1, 32(a0)
+; QCI-F-NEXT:    lw t2, 36(a0)
+; QCI-F-NEXT:    lw t3, 40(a0)
+; QCI-F-NEXT:    lw t4, 44(a0)
+; QCI-F-NEXT:    lw t5, 48(a0)
+; QCI-F-NEXT:    lw t6, 52(a0)
+; QCI-F-NEXT:    lw s0, 56(a0)
+; QCI-F-NEXT:    lw s1, 60(a0)
+; QCI-F-NEXT:    lw s2, 64(a0)
+; QCI-F-NEXT:    lw s3, 68(a0)
+; QCI-F-NEXT:    lw s4, 72(a0)
+; QCI-F-NEXT:    lw s5, 76(a0)
+; QCI-F-NEXT:    lw s6, 112(a0)
+; QCI-F-NEXT:    lw s7, 116(a0)
+; QCI-F-NEXT:    lw s8, 120(a0)
+; QCI-F-NEXT:    lw s9, 124(a0)
+; QCI-F-NEXT:    lw s10, 96(a0)
+; QCI-F-NEXT:    lw s11, 100(a0)
+; QCI-F-NEXT:    lw ra, 104(a0)
 ; QCI-F-NEXT:    lw a1, 108(a0)
-; QCI-F-NEXT:    lw t2, 80(a0)
-; QCI-F-NEXT:    lw a7, 84(a0)
-; QCI-F-NEXT:    lw a4, 88(a0)
+; QCI-F-NEXT:    lw a5, 80(a0)
+; QCI-F-NEXT:    lw a4, 84(a0)
+; QCI-F-NEXT:    lw a3, 88(a0)
 ; QCI-F-NEXT:    lw a2, 92(a0)
-; QCI-F-NEXT:    sw a5, 124(a0)
-; QCI-F-NEXT:    sw s1, 120(a0)
-; QCI-F-NEXT:    sw s0, 116(a0)
-; QCI-F-NEXT:    sw t0, 112(a0)
+; QCI-F-NEXT:    sw s9, 124(a0)
+; QCI-F-NEXT:    sw s8, 120(a0)
+; QCI-F-NEXT:    sw s7, 116(a0)
+; QCI-F-NEXT:    sw s6, 112(a0)
 ; QCI-F-NEXT:    sw a1, 108(a0)
-; QCI-F-NEXT:    sw a3, 104(a0)
-; QCI-F-NEXT:    sw a6, 100(a0)
-; QCI-F-NEXT:    sw t1, 96(a0)
+; QCI-F-NEXT:    sw ra, 104(a0)
+; QCI-F-NEXT:    sw s11, 100(a0)
+; QCI-F-NEXT:    sw s10, 96(a0)
 ; QCI-F-NEXT:    sw a2, 92(a0)
-; QCI-F-NEXT:    sw a4, 88(a0)
-; QCI-F-NEXT:    sw a7, 84(a0)
-; QCI-F-NEXT:    sw t2, 80(a0)
-; QCI-F-NEXT:    sw ra, 76(a0)
-; QCI-F-NEXT:    sw s11, 72(a0)
-; QCI-F-NEXT:    sw s10, 68(a0)
-; QCI-F-NEXT:    sw s9, 64(a0)
-; QCI-F-NEXT:    sw s8, 60(a0)
-; QCI-F-NEXT:    sw s7, 56(a0)
-; QCI-F-NEXT:    sw s6, 52(a0)
-; QCI-F-NEXT:    sw s5, 48(a0)
-; QCI-F-NEXT:    sw s4, 44(a0)
-; QCI-F-NEXT:    sw s3, 40(a0)
-; QCI-F-NEXT:    sw s2, 36(a0)
-; QCI-F-NEXT:    sw t6, 32(a0)
-; QCI-F-NEXT:    sw t5, 28(a0)
-; QCI-F-NEXT:    sw t4, 24(a0)
-; QCI-F-NEXT:    sw t3, 20(a0)
+; QCI-F-NEXT:    sw a3, 88(a0)
+; QCI-F-NEXT:    sw a4, 84(a0)
+; QCI-F-NEXT:    sw a5, 80(a0)
+; QCI-F-NEXT:    sw s5, 76(a0)
+; QCI-F-NEXT:    sw s4, 72(a0)
+; QCI-F-NEXT:    sw s3, 68(a0)
+; QCI-F-NEXT:    sw s2, 64(a0)
+; QCI-F-NEXT:    sw s1, 60(a0)
+; QCI-F-NEXT:    sw s0, 56(a0)
+; QCI-F-NEXT:    sw t6, 52(a0)
+; QCI-F-NEXT:    sw t5, 48(a0)
+; QCI-F-NEXT:    sw t4, 44(a0)
+; QCI-F-NEXT:    sw t3, 40(a0)
+; QCI-F-NEXT:    sw t2, 36(a0)
+; QCI-F-NEXT:    sw t1, 32(a0)
+; QCI-F-NEXT:    sw t0, 28(a0)
+; QCI-F-NEXT:    sw a7, 24(a0)
+; QCI-F-NEXT:    sw a6, 20(a0)
 ; QCI-F-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-F-NEXT:    sw a1, 16(a0)
 ; QCI-F-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1241,60 +1241,60 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-D-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-D-NEXT:    lw a1, 16(a0)
 ; QCI-D-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-D-NEXT:    lw t3, 20(a0)
-; QCI-D-NEXT:    lw t4, 24(a0)
-; QCI-D-NEXT:    lw t5, 28(a0)
-; QCI-D-NEXT:    lw t6, 32(a0)
-; QCI-D-NEXT:    lw s2, 36(a0)
-; QCI-D-NEXT:    lw s3, 40(a0)
-; QCI-D-NEXT:    lw s4, 44(a0)
-; QCI-D-NEXT:    lw s5, 48(a0)
-; QCI-D-NEXT:    lw s6, 52(a0)
-; QCI-D-NEXT:    lw s7, 56(a0)
-; QCI-D-NEXT:    lw s8, 60(a0)
-; QCI-D-NEXT:    lw s9, 64(a0)
-; QCI-D-NEXT:    lw s10, 68(a0)
-; QCI-D-NEXT:    lw s11, 72(a0)
-; QCI-D-NEXT:    lw ra, 76(a0)
-; QCI-D-NEXT:    lw t0, 112(a0)
-; QCI-D-NEXT:    lw s0, 116(a0)
-; QCI-D-NEXT:    lw s1, 120(a0)
-; QCI-D-NEXT:    lw a5, 124(a0)
-; QCI-D-NEXT:    lw t1, 96(a0)
-; QCI-D-NEXT:    lw a6, 100(a0)
-; QCI-D-NEXT:    lw a3, 104(a0)
+; QCI-D-NEXT:    lw a6, 20(a0)
+; QCI-D-NEXT:    lw a7, 24(a0)
+; QCI-D-NEXT:    lw t0, 28(a0)
+; QCI-D-NEXT:    lw t1, 32(a0)
+; QCI-D-NEXT:    lw t2, 36(a0)
+; QCI-D-NEXT:    lw t3, 40(a0)
+; QCI-D-NEXT:    lw t4, 44(a0)
+; QCI-D-NEXT:    lw t5, 48(a0)
+; QCI-D-NEXT:    lw t6, 52(a0)
+; QCI-D-NEXT:    lw s0, 56(a0)
+; QCI-D-NEXT:    lw s1, 60(a0)
+; QCI-D-NEXT:    lw s2, 64(a0)
+; QCI-D-NEXT:    lw s3, 68(a0)
+; QCI-D-NEXT:    lw s4, 72(a0)
+; QCI-D-NEXT:    lw s5, 76(a0)
+; QCI-D-NEXT:    lw s6, 112(a0)
+; QCI-D-NEXT:    lw s7, 116(a0)
+; QCI-D-NEXT:    lw s8, 120(a0)
+; QCI-D-NEXT:    lw s9, 124(a0)
+; QCI-D-NEXT:    lw s10, 96(a0)
+; QCI-D-NEXT:    lw s11, 100(a0)
+; QCI-D-NEXT:    lw ra, 104(a0)
 ; QCI-D-NEXT:    lw a1, 108(a0)
-; QCI-D-NEXT:    lw t2, 80(a0)
-; QCI-D-NEXT:    lw a7, 84(a0)
-; QCI-D-NEXT:    lw a4, 88(a0)
+; QCI-D-NEXT:    lw a5, 80(a0)
+; QCI-D-NEXT:    lw a4, 84(a0)
+; QCI-D-NEXT:    lw a3, 88(a0)
 ; QCI-D-NEXT:    lw a2, 92(a0)
-; QCI-D-NEXT:    sw a5, 124(a0)
-; QCI-D-NEXT:    sw s1, 120(a0)
-; QCI-D-NEXT:    sw s0, 116(a0)
-; QCI-D-NEXT:    sw t0, 112(a0)
+; QCI-D-NEXT:    sw s9, 124(a0)
+; QCI-D-NEXT:    sw s8, 120(a0)
+; QCI-D-NEXT:    sw s7, 116(a0)
+; QCI-D-NEXT:    sw s6, 112(a0)
 ; QCI-D-NEXT:    sw a1, 108(a0)
-; QCI-D-NEXT:    sw a3, 104(a0)
-; QCI-D-NEXT:    sw a6, 100(a0)
-; QCI-D-NEXT:    sw t1, 96(a0)
+; QCI-D-NEXT:    sw ra, 104(a0)
+; QCI-D-NEXT:    sw s11, 100(a0)
+; QCI-D-NEXT:    sw s10, 96(a0)
 ; QCI-D-NEXT:    sw a2, 92(a0)
-; QCI-D-NEXT:    sw a4, 88(a0)
-; QCI-D-NEXT:    sw a7, 84(a0)
-; QCI-D-NEXT:    sw t2, 80(a0)
-; QCI-D-NEXT:    sw ra, 76(a0)
-; QCI-D-NEXT:    sw s11, 72(a0)
-; QCI-D-NEXT:    sw s10, 68(a0)
-; QCI-D-NEXT:    sw s9, 64(a0)
-; QCI-D-NEXT:    sw s8, 60(a0)
-; QCI-D-NEXT:    sw s7, 56(a0)
-; QCI-D-NEXT:    sw s6, 52(a0)
-; QCI-D-NEXT:    sw s5, 48(a0)
-; QCI-D-NEXT:    sw s4, 44(a0)
-; QCI-D-NEXT:    sw s3, 40(a0)
-; QCI-D-NEXT:    sw s2, 36(a0)
-; QCI-D-NEXT:    sw t6, 32(a0)
-; QCI-D-NEXT:    sw t5, 28(a0)
-; QCI-D-NEXT:    sw t4, 24(a0)
-; QCI-D-NEXT:    sw t3, 20(a0)
+; QCI-D-NEXT:    sw a3, 88(a0)
+; QCI-D-NEXT:    sw a4, 84(a0)
+; QCI-D-NEXT:    sw a5, 80(a0)
+; QCI-D-NEXT:    sw s5, 76(a0)
+; QCI-D-NEXT:    sw s4, 72(a0)
+; QCI-D-NEXT:    sw s3, 68(a0)
+; QCI-D-NEXT:    sw s2, 64(a0)
+; QCI-D-NEXT:    sw s1, 60(a0)
+; QCI-D-NEXT:    sw s0, 56(a0)
+; QCI-D-NEXT:    sw t6, 52(a0)
+; QCI-D-NEXT:    sw t5, 48(a0)
+; QCI-D-NEXT:    sw t4, 44(a0)
+; QCI-D-NEXT:    sw t3, 40(a0)
+; QCI-D-NEXT:    sw t2, 36(a0)
+; QCI-D-NEXT:    sw t1, 32(a0)
+; QCI-D-NEXT:    sw t0, 28(a0)
+; QCI-D-NEXT:    sw a7, 24(a0)
+; QCI-D-NEXT:    sw a6, 20(a0)
 ; QCI-D-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-D-NEXT:    sw a1, 16(a0)
 ; QCI-D-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1393,60 +1393,60 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-F-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-F-NEXT:    lw a1, 16(a0)
 ; QCI-F-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-F-NEXT:    lw t3, 20(a0)
-; QCI-F-NEXT:    lw t4, 24(a0)
-; QCI-F-NEXT:    lw t5, 28(a0)
-; QCI-F-NEXT:    lw t6, 32(a0)
-; QCI-F-NEXT:    lw s2, 36(a0)
-; QCI-F-NEXT:    lw s3, 40(a0)
-; QCI-F-NEXT:    lw s4, 44(a0)
-; QCI-F-NEXT:    lw s5, 48(a0)
-; QCI-F-NEXT:    lw s6, 52(a0)
-; QCI-F-NEXT:    lw s7, 56(a0)
-; QCI-F-NEXT:    lw s8, 60(a0)
-; QCI-F-NEXT:    lw s9, 64(a0)
-; QCI-F-NEXT:    lw s10, 68(a0)
-; QCI-F-NEXT:    lw s11, 72(a0)
-; QCI-F-NEXT:    lw ra, 76(a0)
-; QCI-F-NEXT:    lw t0, 112(a0)
-; QCI-F-NEXT:    lw s0, 116(a0)
-; QCI-F-NEXT:    lw s1, 120(a0)
-; QCI-F-NEXT:    lw a5, 124(a0)
-; QCI-F-NEXT:    lw t1, 96(a0)
-; QCI-F-NEXT:    lw a6, 100(a0)
-; QCI-F-NEXT:    lw a3, 104(a0)
+; QCI-F-NEXT:    lw a6, 20(a0)
+; QCI-F-NEXT:    lw a7, 24(a0)
+; QCI-F-NEXT:    lw t0, 28(a0)
+; QCI-F-NEXT:    lw t1, 32(a0)
+; QCI-F-NEXT:    lw t2, 36(a0)
+; QCI-F-NEXT:    lw t3, 40(a0)
+; QCI-F-NEXT:    lw t4, 44(a0)
+; QCI-F-NEXT:    lw t5, 48(a0)
+; QCI-F-NEXT:    lw t6, 52(a0)
+; QCI-F-NEXT:    lw s0, 56(a0)
+; QCI-F-NEXT:    lw s1, 60(a0)
+; QCI-F-NEXT:    lw s2, 64(a0)
+; QCI-F-NEXT:    lw s3, 68(a0)
+; QCI-F-NEXT:    lw s4, 72(a0)
+; QCI-F-NEXT:    lw s5, 76(a0)
+; QCI-F-NEXT:    lw s6, 112(a0)
+; QCI-F-NEXT:    lw s7, 116(a0)
+; QCI-F-NEXT:    lw s8, 120(a0)
+; QCI-F-NEXT:    lw s9, 124(a0)
+; QCI-F-NEXT:    lw s10, 96(a0)
+; QCI-F-NEXT:    lw s11, 100(a0)
+; QCI-F-NEXT:    lw ra, 104(a0)
 ; QCI-F-NEXT:    lw a1, 108(a0)
-; QCI-F-NEXT:    lw t2, 80(a0)
-; QCI-F-NEXT:    lw a7, 84(a0)
-; QCI-F-NEXT:    lw a4, 88(a0)
+; QCI-F-NEXT:    lw a5, 80(a0)
+; QCI-F-NEXT:    lw a4, 84(a0)
+; QCI-F-NEXT:    lw a3, 88(a0)
 ; QCI-F-NEXT:    lw a2, 92(a0)
-; QCI-F-NEXT:    sw a5, 124(a0)
-; QCI-F-NEXT:    sw s1, 120(a0)
-; QCI-F-NEXT:    sw s0, 116(a0)
-; QCI-F-NEXT:    sw t0, 112(a0)
+; QCI-F-NEXT:    sw s9, 124(a0)
+; QCI-F-NEXT:    sw s8, 120(a0)
+; QCI-F-NEXT:    sw s7, 116(a0)
+; QCI-F-NEXT:    sw s6, 112(a0)
 ; QCI-F-NEXT:    sw a1, 108(a0)
-; QCI-F-NEXT:    sw a3, 104(a0)
-; QCI-F-NEXT:    sw a6, 100(a0)
-; QCI-F-NEXT:    sw t1, 96(a0)
+; QCI-F-NEXT:    sw ra, 104(a0)
+; QCI-F-NEXT:    sw s11, 100(a0)
+; QCI-F-NEXT:    sw s10, 96(a0)
 ; QCI-F-NEXT:    sw a2, 92(a0)
-; QCI-F-NEXT:    sw a4, 88(a0)
-; QCI-F-NEXT:    sw a7, 84(a0)
-; QCI-F-NEXT:    sw t2, 80(a0)
-; QCI-F-NEXT:    sw ra, 76(a0)
-; QCI-F-NEXT:    sw s11, 72(a0)
-; QCI-F-NEXT:    sw s10, 68(a0)
-; QCI-F-NEXT:    sw s9, 64(a0)
-; QCI-F-NEXT:    sw s8, 60(a0)
-; QCI-F-NEXT:    sw s7, 56(a0)
-; QCI-F-NEXT:    sw s6, 52(a0)
-; QCI-F-NEXT:    sw s5, 48(a0)
-; QCI-F-NEXT:    sw s4, 44(a0)
-; QCI-F-NEXT:    sw s3, 40(a0)
-; QCI-F-NEXT:    sw s2, 36(a0)
-; QCI-F-NEXT:    sw t6, 32(a0)
-; QCI-F-NEXT:    sw t5, 28(a0)
-; QCI-F-NEXT:    sw t4, 24(a0)
-; QCI-F-NEXT:    sw t3, 20(a0)
+; QCI-F-NEXT:    sw a3, 88(a0)
+; QCI-F-NEXT:    sw a4, 84(a0)
+; QCI-F-NEXT:    sw a5, 80(a0)
+; QCI-F-NEXT:    sw s5, 76(a0)
+; QCI-F-NEXT:    sw s4, 72(a0)
+; QCI-F-NEXT:    sw s3, 68(a0)
+; QCI-F-NEXT:    sw s2, 64(a0)
+; QCI-F-NEXT:    sw s1, 60(a0)
+; QCI-F-NEXT:    sw s0, 56(a0)
+; QCI-F-NEXT:    sw t6, 52(a0)
+; QCI-F-NEXT:    sw t5, 48(a0)
+; QCI-F-NEXT:    sw t4, 44(a0)
+; QCI-F-NEXT:    sw t3, 40(a0)
+; QCI-F-NEXT:    sw t2, 36(a0)
+; QCI-F-NEXT:    sw t1, 32(a0)
+; QCI-F-NEXT:    sw t0, 28(a0)
+; QCI-F-NEXT:    sw a7, 24(a0)
+; QCI-F-NEXT:    sw a6, 20(a0)
 ; QCI-F-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-F-NEXT:    sw a1, 16(a0)
 ; QCI-F-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1540,60 +1540,60 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-D-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-D-NEXT:    lw a1, 16(a0)
 ; QCI-D-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-D-NEXT:    lw t3, 20(a0)
-; QCI-D-NEXT:    lw t4, 24(a0)
-; QCI-D-NEXT:    lw t5, 28(a0)
-; QCI-D-NEXT:    lw t6, 32(a0)
-; QCI-D-NEXT:    lw s2, 36(a0)
-; QCI-D-NEXT:    lw s3, 40(a0)
-; QCI-D-NEXT:    lw s4, 44(a0)
-; QCI-D-NEXT:    lw s5, 48(a0)
-; QCI-D-NEXT:    lw s6, 52(a0)
-; QCI-D-NEXT:    lw s7, 56(a0)
-; QCI-D-NEXT:    lw s8, 60(a0)
-; QCI-D-NEXT:    lw s9, 64(a0)
-; QCI-D-NEXT:    lw s10, 68(a0)
-; QCI-D-NEXT:    lw s11, 72(a0)
-; QCI-D-NEXT:    lw ra, 76(a0)
-; QCI-D-NEXT:    lw t0, 112(a0)
-; QCI-D-NEXT:    lw s0, 116(a0)
-; QCI-D-NEXT:    lw s1, 120(a0)
-; QCI-D-NEXT:    lw a5, 124(a0)
-; QCI-D-NEXT:    lw t1, 96(a0)
-; QCI-D-NEXT:    lw a6, 100(a0)
-; QCI-D-NEXT:    lw a3, 104(a0)
+; QCI-D-NEXT:    lw a6, 20(a0)
+; QCI-D-NEXT:    lw a7, 24(a0)
+; QCI-D-NEXT:    lw t0, 28(a0)
+; QCI-D-NEXT:    lw t1, 32(a0)
+; QCI-D-NEXT:    lw t2, 36(a0)
+; QCI-D-NEXT:    lw t3, 40(a0)
+; QCI-D-NEXT:    lw t4, 44(a0)
+; QCI-D-NEXT:    lw t5, 48(a0)
+; QCI-D-NEXT:    lw t6, 52(a0)
+; QCI-D-NEXT:    lw s0, 56(a0)
+; QCI-D-NEXT:    lw s1, 60(a0)
+; QCI-D-NEXT:    lw s2, 64(a0)
+; QCI-D-NEXT:    lw s3, 68(a0)
+; QCI-D-NEXT:    lw s4, 72(a0)
+; QCI-D-NEXT:    lw s5, 76(a0)
+; QCI-D-NEXT:    lw s6, 112(a0)
+; QCI-D-NEXT:    lw s7, 116(a0)
+; QCI-D-NEXT:    lw s8, 120(a0)
+; QCI-D-NEXT:    lw s9, 124(a0)
+; QCI-D-NEXT:    lw s10, 96(a0)
+; QCI-D-NEXT:    lw s11, 100(a0)
+; QCI-D-NEXT:    lw ra, 104(a0)
 ; QCI-D-NEXT:    lw a1, 108(a0)
-; QCI-D-NEXT:    lw t2, 80(a0)
-; QCI-D-NEXT:    lw a7, 84(a0)
-; QCI-D-NEXT:    lw a4, 88(a0)
+; QCI-D-NEXT:    lw a5, 80(a0)
+; QCI-D-NEXT:    lw a4, 84(a0)
+; QCI-D-NEXT:    lw a3, 88(a0)
 ; QCI-D-NEXT:    lw a2, 92(a0)
-; QCI-D-NEXT:    sw a5, 124(a0)
-; QCI-D-NEXT:    sw s1, 120(a0)
-; QCI-D-NEXT:    sw s0, 116(a0)
-; QCI-D-NEXT:    sw t0, 112(a0)
+; QCI-D-NEXT:    sw s9, 124(a0)
+; QCI-D-NEXT:    sw s8, 120(a0)
+; QCI-D-NEXT:    sw s7, 116(a0)
+; QCI-D-NEXT:    sw s6, 112(a0)
 ; QCI-D-NEXT:    sw a1, 108(a0)
-; QCI-D-NEXT:    sw a3, 104(a0)
-; QCI-D-NEXT:    sw a6, 100(a0)
-; QCI-D-NEXT:    sw t1, 96(a0)
+; QCI-D-NEXT:    sw ra, 104(a0)
+; QCI-D-NEXT:    sw s11, 100(a0)
+; QCI-D-NEXT:    sw s10, 96(a0)
 ; QCI-D-NEXT:    sw a2, 92(a0)
-; QCI-D-NEXT:    sw a4, 88(a0)
-; QCI-D-NEXT:    sw a7, 84(a0)
-; QCI-D-NEXT:    sw t2, 80(a0)
-; QCI-D-NEXT:    sw ra, 76(a0)
-; QCI-D-NEXT:    sw s11, 72(a0)
-; QCI-D-NEXT:    sw s10, 68(a0)
-; QCI-D-NEXT:    sw s9, 64(a0)
-; QCI-D-NEXT:    sw s8, 60(a0)
-; QCI-D-NEXT:    sw s7, 56(a0)
-; QCI-D-NEXT:    sw s6, 52(a0)
-; QCI-D-NEXT:    sw s5, 48(a0)
-; QCI-D-NEXT:    sw s4, 44(a0)
-; QCI-D-NEXT:    sw s3, 40(a0)
-; QCI-D-NEXT:    sw s2, 36(a0)
-; QCI-D-NEXT:    sw t6, 32(a0)
-; QCI-D-NEXT:    sw t5, 28(a0)
-; QCI-D-NEXT:    sw t4, 24(a0)
-; QCI-D-NEXT:    sw t3, 20(a0)
+; QCI-D-NEXT:    sw a3, 88(a0)
+; QCI-D-NEXT:    sw a4, 84(a0)
+; QCI-D-NEXT:    sw a5, 80(a0)
+; QCI-D-NEXT:    sw s5, 76(a0)
+; QCI-D-NEXT:    sw s4, 72(a0)
+; QCI-D-NEXT:    sw s3, 68(a0)
+; QCI-D-NEXT:    sw s2, 64(a0)
+; QCI-D-NEXT:    sw s1, 60(a0)
+; QCI-D-NEXT:    sw s0, 56(a0)
+; QCI-D-NEXT:    sw t6, 52(a0)
+; QCI-D-NEXT:    sw t5, 48(a0)
+; QCI-D-NEXT:    sw t4, 44(a0)
+; QCI-D-NEXT:    sw t3, 40(a0)
+; QCI-D-NEXT:    sw t2, 36(a0)
+; QCI-D-NEXT:    sw t1, 32(a0)
+; QCI-D-NEXT:    sw t0, 28(a0)
+; QCI-D-NEXT:    sw a7, 24(a0)
+; QCI-D-NEXT:    sw a6, 20(a0)
 ; QCI-D-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-D-NEXT:    sw a1, 16(a0)
 ; QCI-D-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1764,17 +1764,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-F-NEXT:    sw a0, 20(sp) # 4-byte Folded Spill
 ; QCI-F-NEXT:    lw a0, 80(s0)
 ; QCI-F-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
-; QCI-F-NEXT:    lw s1, 84(s0)
-; QCI-F-NEXT:    lw s2, 88(s0)
-; QCI-F-NEXT:    lw s3, 92(s0)
-; QCI-F-NEXT:    lw s4, 96(s0)
-; QCI-F-NEXT:    lw s5, 100(s0)
-; QCI-F-NEXT:    lw s6, 104(s0)
-; QCI-F-NEXT:    lw s7, 108(s0)
-; QCI-F-NEXT:    lw s8, 112(s0)
-; QCI-F-NEXT:    lw s9, 116(s0)
-; QCI-F-NEXT:    lw s10, 120(s0)
-; QCI-F-NEXT:    lw s11, 124(s0)
+; QCI-F-NEXT:    lw s11, 84(s0)
+; QCI-F-NEXT:    lw s1, 88(s0)
+; QCI-F-NEXT:    lw s2, 92(s0)
+; QCI-F-NEXT:    lw s3, 96(s0)
+; QCI-F-NEXT:    lw s4, 100(s0)
+; QCI-F-NEXT:    lw s5, 104(s0)
+; QCI-F-NEXT:    lw s6, 108(s0)
+; QCI-F-NEXT:    lw s7, 112(s0)
+; QCI-F-NEXT:    lw s8, 116(s0)
+; QCI-F-NEXT:    lw s9, 120(s0)
+; QCI-F-NEXT:    lw s10, 124(s0)
 ; QCI-F-NEXT:    li a1, 0
 ; QCI-F-NEXT:    li a3, 0
 ; QCI-F-NEXT:    li a5, 0
@@ -1805,17 +1805,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-F-NEXT:    sw t0, 4(sp)
 ; QCI-F-NEXT:    call function_with_one_stack_arg
 ; QCI-F-NEXT:    call use_float
-; QCI-F-NEXT:    sw s11, 124(s0)
-; QCI-F-NEXT:    sw s10, 120(s0)
-; QCI-F-NEXT:    sw s9, 116(s0)
-; QCI-F-NEXT:    sw s8, 112(s0)
-; QCI-F-NEXT:    sw s7, 108(s0)
-; QCI-F-NEXT:    sw s6, 104(s0)
-; QCI-F-NEXT:    sw s5, 100(s0)
-; QCI-F-NEXT:    sw s4, 96(s0)
-; QCI-F-NEXT:    sw s3, 92(s0)
-; QCI-F-NEXT:    sw s2, 88(s0)
-; QCI-F-NEXT:    sw s1, 84(s0)
+; QCI-F-NEXT:    sw s10, 124(s0)
+; QCI-F-NEXT:    sw s9, 120(s0)
+; QCI-F-NEXT:    sw s8, 116(s0)
+; QCI-F-NEXT:    sw s7, 112(s0)
+; QCI-F-NEXT:    sw s6, 108(s0)
+; QCI-F-NEXT:    sw s5, 104(s0)
+; QCI-F-NEXT:    sw s4, 100(s0)
+; QCI-F-NEXT:    sw s3, 96(s0)
+; QCI-F-NEXT:    sw s2, 92(s0)
+; QCI-F-NEXT:    sw s1, 88(s0)
+; QCI-F-NEXT:    sw s11, 84(s0)
 ; QCI-F-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
 ; QCI-F-NEXT:    sw a0, 80(s0)
 ; QCI-F-NEXT:    lw a0, 20(sp) # 4-byte Folded Reload
@@ -2053,17 +2053,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-D-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-D-NEXT:    lw a0, 80(s0)
 ; QCI-D-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-D-NEXT:    lw s1, 84(s0)
-; QCI-D-NEXT:    lw s2, 88(s0)
-; QCI-D-NEXT:    lw s3, 92(s0)
-; QCI-D-NEXT:    lw s4, 96(s0)
-; QCI-D-NEXT:    lw s5, 100(s0)
-; QCI-D-NEXT:    lw s6, 104(s0)
-; QCI-D-NEXT:    lw s7, 108(s0)
-; QCI-D-NEXT:    lw s8, 112(s0)
-; QCI-D-NEXT:    lw s9, 116(s0)
-; QCI-D-NEXT:    lw s10, 120(s0)
-; QCI-D-NEXT:    lw s11, 124(s0)
+; QCI-D-NEXT:    lw s11, 84(s0)
+; QCI-D-NEXT:    lw s1, 88(s0)
+; QCI-D-NEXT:    lw s2, 92(s0)
+; QCI-D-NEXT:    lw s3, 96(s0)
+; QCI-D-NEXT:    lw s4, 100(s0)
+; QCI-D-NEXT:    lw s5, 104(s0)
+; QCI-D-NEXT:    lw s6, 108(s0)
+; QCI-D-NEXT:    lw s7, 112(s0)
+; QCI-D-NEXT:    lw s8, 116(s0)
+; QCI-D-NEXT:    lw s9, 120(s0)
+; QCI-D-NEXT:    lw s10, 124(s0)
 ; QCI-D-NEXT:    li a1, 0
 ; QCI-D-NEXT:    li a3, 0
 ; QCI-D-NEXT:    li a5, 0
@@ -2094,17 +2094,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-D-NEXT:    sw t0, 4(sp)
 ; QCI-D-NEXT:    call function_with_one_stack_arg
 ; QCI-D-NEXT:    call use_float
-; QCI-D-NEXT:    sw s11, 124(s0)
-; QCI-D-NEXT:    sw s10, 120(s0)
-; QCI-D-NEXT:    sw s9, 116(s0)
-; QCI-D-NEXT:    sw s8, 112(s0)
-; QCI-D-NEXT:    sw s7, 108(s0)
-; QCI-D-NEXT:    sw s6, 104(s0)
-; QCI-D-NEXT:    sw s5, 100(s0)
-; QCI-D-NEXT:    sw s4, 96(s0)
-; QCI-D-NEXT:    sw s3, 92(s0)
-; QCI-D-NEXT:    sw s2, 88(s0)
-; QCI-D-NEXT:    sw s1, 84(s0)
+; QCI-D-NEXT:    sw s10, 124(s0)
+; QCI-D-NEXT:    sw s9, 120(s0)
+; QCI-D-NEXT:    sw s8, 116(s0)
+; QCI-D-NEXT:    sw s7, 112(s0)
+; QCI-D-NEXT:    sw s6, 108(s0)
+; QCI-D-NEXT:    sw s5, 104(s0)
+; QCI-D-NEXT:    sw s4, 100(s0)
+; QCI-D-NEXT:    sw s3, 96(s0)
+; QCI-D-NEXT:    sw s2, 92(s0)
+; QCI-D-NEXT:    sw s1, 88(s0)
+; QCI-D-NEXT:    sw s11, 84(s0)
 ; QCI-D-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-D-NEXT:    sw a0, 80(s0)
 ; QCI-D-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -2349,17 +2349,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-F-NEXT:    sw a0, 20(sp) # 4-byte Folded Spill
 ; QCI-F-NEXT:    lw a0, 80(s0)
 ; QCI-F-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
-; QCI-F-NEXT:    lw s1, 84(s0)
-; QCI-F-NEXT:    lw s2, 88(s0)
-; QCI-F-NEXT:    lw s3, 92(s0)
-; QCI-F-NEXT:    lw s4, 96(s0)
-; QCI-F-NEXT:    lw s5, 100(s0)
-; QCI-F-NEXT:    lw s6, 104(s0)
-; QCI-F-NEXT:    lw s7, 108(s0)
-; QCI-F-NEXT:    lw s8, 112(s0)
-; QCI-F-NEXT:    lw s9, 116(s0)
-; QCI-F-NEXT:    lw s10, 120(s0)
-; QCI-F-NEXT:    lw s11, 124(s0)
+; QCI-F-NEXT:    lw s11, 84(s0)
+; QCI-F-NEXT:    lw s1, 88(s0)
+; QCI-F-NEXT:    lw s2, 92(s0)
+; QCI-F-NEXT:    lw s3, 96(s0)
+; QCI-F-NEXT:    lw s4, 100(s0)
+; QCI-F-NEXT:    lw s5, 104(s0)
+; QCI-F-NEXT:    lw s6, 108(s0)
+; QCI-F-NEXT:    lw s7, 112(s0)
+; QCI-F-NEXT:    lw s8, 116(s0)
+; QCI-F-NEXT:    lw s9, 120(s0)
+; QCI-F-NEXT:    lw s10, 124(s0)
 ; QCI-F-NEXT:    li a1, 0
 ; QCI-F-NEXT:    li a3, 0
 ; QCI-F-NEXT:    li a5, 0
@@ -2390,17 +2390,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-F-NEXT:    sw t0, 4(sp)
 ; QCI-F-NEXT:    call function_with_one_stack_arg
 ; QCI-F-NEXT:    call use_float
-; QCI-F-NEXT:    sw s11, 124(s0)
-; QCI-F-NEXT:    sw s10, 120(s0)
-; QCI-F-NEXT:    sw s9, 116(s0)
-; QCI-F-NEXT:    sw s8, 112(s0)
-; QCI-F-NEXT:    sw s7, 108(s0)
-; QCI-F-NEXT:    sw s6, 104(s0)
-; QCI-F-NEXT:    sw s5, 100(s0)
-; QCI-F-NEXT:    sw s4, 96(s0)
-; QCI-F-NEXT:    sw s3, 92(s0)
-; QCI-F-NEXT:    sw s2, 88(s0)
-; QCI-F-NEXT:    sw s1, 84(s0)
+; QCI-F-NEXT:    sw s10, 124(s0)
+; QCI-F-NEXT:    sw s9, 120(s0)
+; QCI-F-NEXT:    sw s8, 116(s0)
+; QCI-F-NEXT:    sw s7, 112(s0)
+; QCI-F-NEXT:    sw s6, 108(s0)
+; QCI-F-NEXT:    sw s5, 104(s0)
+; QCI-F-NEXT:    sw s4, 100(s0)
+; QCI-F-NEXT:    sw s3, 96(s0)
+; QCI-F-NEXT:    sw s2, 92(s0)
+; QCI-F-NEXT:    sw s1, 88(s0)
+; QCI-F-NEXT:    sw s11, 84(s0)
 ; QCI-F-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
 ; QCI-F-NEXT:    sw a0, 80(s0)
 ; QCI-F-NEXT:    lw a0, 20(sp) # 4-byte Folded Reload
@@ -2638,17 +2638,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-D-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-D-NEXT:    lw a0, 80(s0)
 ; QCI-D-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-D-NEXT:    lw s1, 84(s0)
-; QCI-D-NEXT:    lw s2, 88(s0)
-; QCI-D-NEXT:    lw s3, 92(s0)
-; QCI-D-NEXT:    lw s4, 96(s0)
-; QCI-D-NEXT:    lw s5, 100(s0)
-; QCI-D-NEXT:    lw s6, 104(s0)
-; QCI-D-NEXT:    lw s7, 108(s0)
-; QCI-D-NEXT:    lw s8, 112(s0)
-; QCI-D-NEXT:    lw s9, 116(s0)
-; QCI-D-NEXT:    lw s10, 120(s0)
-; QCI-D-NEXT:    lw s11, 124(s0)
+; QCI-D-NEXT:    lw s11, 84(s0)
+; QCI-D-NEXT:    lw s1, 88(s0)
+; QCI-D-NEXT:    lw s2, 92(s0)
+; QCI-D-NEXT:    lw s3, 96(s0)
+; QCI-D-NEXT:    lw s4, 100(s0)
+; QCI-D-NEXT:    lw s5, 104(s0)
+; QCI-D-NEXT:    lw s6, 108(s0)
+; QCI-D-NEXT:    lw s7, 112(s0)
+; QCI-D-NEXT:    lw s8, 116(s0)
+; QCI-D-NEXT:    lw s9, 120(s0)
+; QCI-D-NEXT:    lw s10, 124(s0)
 ; QCI-D-NEXT:    li a1, 0
 ; QCI-D-NEXT:    li a3, 0
 ; QCI-D-NEXT:    li a5, 0
@@ -2679,17 +2679,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-D-NEXT:    sw t0, 4(sp)
 ; QCI-D-NEXT:    call function_with_one_stack_arg
 ; QCI-D-NEXT:    call use_float
-; QCI-D-NEXT:    sw s11, 124(s0)
-; QCI-D-NEXT:    sw s10, 120(s0)
-; QCI-D-NEXT:    sw s9, 116(s0)
-; QCI-D-NEXT:    sw s8, 112(s0)
-; QCI-D-NEXT:    sw s7, 108(s0)
-; QCI-D-NEXT:    sw s6, 104(s0)
-; QCI-D-NEXT:    sw s5, 100(s0)
-; QCI-D-NEXT:    sw s4, 96(s0)
-; QCI-D-NEXT:    sw s3, 92(s0)
-; QCI-D-NEXT:    sw s2, 88(s0)
-; QCI-D-NEXT:    sw s1, 84(s0)
+; QCI-D-NEXT:    sw s10, 124(s0)
+; QCI-D-NEXT:    sw s9, 120(s0)
+; QCI-D-NEXT:    sw s8, 116(s0)
+; QCI-D-NEXT:    sw s7, 112(s0)
+; QCI-D-NEXT:    sw s6, 108(s0)
+; QCI-D-NEXT:    sw s5, 104(s0)
+; QCI-D-NEXT:    sw s4, 100(s0)
+; QCI-D-NEXT:    sw s3, 96(s0)
+; QCI-D-NEXT:    sw s2, 92(s0)
+; QCI-D-NEXT:    sw s1, 88(s0)
+; QCI-D-NEXT:    sw s11, 84(s0)
 ; QCI-D-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-D-NEXT:    sw a0, 80(s0)
 ; QCI-D-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll b/llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll
index 0a9decc4f9e85..8551b7813862f 100644
--- a/llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll
+++ b/llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll
@@ -1045,60 +1045,60 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-NEXT:    lw a1, 16(a0)
 ; QCI-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-NEXT:    lw t3, 20(a0)
-; QCI-NEXT:    lw t4, 24(a0)
-; QCI-NEXT:    lw t5, 28(a0)
-; QCI-NEXT:    lw t6, 32(a0)
-; QCI-NEXT:    lw s2, 36(a0)
-; QCI-NEXT:    lw s3, 40(a0)
-; QCI-NEXT:    lw s4, 44(a0)
-; QCI-NEXT:    lw s5, 48(a0)
-; QCI-NEXT:    lw s6, 52(a0)
-; QCI-NEXT:    lw s7, 56(a0)
-; QCI-NEXT:    lw s8, 60(a0)
-; QCI-NEXT:    lw s9, 64(a0)
-; QCI-NEXT:    lw s10, 68(a0)
-; QCI-NEXT:    lw s11, 72(a0)
-; QCI-NEXT:    lw ra, 76(a0)
-; QCI-NEXT:    lw t0, 112(a0)
-; QCI-NEXT:    lw s0, 116(a0)
-; QCI-NEXT:    lw s1, 120(a0)
-; QCI-NEXT:    lw a5, 124(a0)
-; QCI-NEXT:    lw t1, 96(a0)
-; QCI-NEXT:    lw a6, 100(a0)
-; QCI-NEXT:    lw a3, 104(a0)
+; QCI-NEXT:    lw a6, 20(a0)
+; QCI-NEXT:    lw a7, 24(a0)
+; QCI-NEXT:    lw t0, 28(a0)
+; QCI-NEXT:    lw t1, 32(a0)
+; QCI-NEXT:    lw t2, 36(a0)
+; QCI-NEXT:    lw t3, 40(a0)
+; QCI-NEXT:    lw t4, 44(a0)
+; QCI-NEXT:    lw t5, 48(a0)
+; QCI-NEXT:    lw t6, 52(a0)
+; QCI-NEXT:    lw s0, 56(a0)
+; QCI-NEXT:    lw s1, 60(a0)
+; QCI-NEXT:    lw s2, 64(a0)
+; QCI-NEXT:    lw s3, 68(a0)
+; QCI-NEXT:    lw s4, 72(a0)
+; QCI-NEXT:    lw s5, 76(a0)
+; QCI-NEXT:    lw s6, 112(a0)
+; QCI-NEXT:    lw s7, 116(a0)
+; QCI-NEXT:    lw s8, 120(a0)
+; QCI-NEXT:    lw s9, 124(a0)
+; QCI-NEXT:    lw s10, 96(a0)
+; QCI-NEXT:    lw s11, 100(a0)
+; QCI-NEXT:    lw ra, 104(a0)
 ; QCI-NEXT:    lw a1, 108(a0)
-; QCI-NEXT:    lw t2, 80(a0)
-; QCI-NEXT:    lw a7, 84(a0)
-; QCI-NEXT:    lw a4, 88(a0)
+; QCI-NEXT:    lw a5, 80(a0)
+; QCI-NEXT:    lw a4, 84(a0)
+; QCI-NEXT:    lw a3, 88(a0)
 ; QCI-NEXT:    lw a2, 92(a0)
-; QCI-NEXT:    sw a5, 124(a0)
-; QCI-NEXT:    sw s1, 120(a0)
-; QCI-NEXT:    sw s0, 116(a0)
-; QCI-NEXT:    sw t0, 112(a0)
+; QCI-NEXT:    sw s9, 124(a0)
+; QCI-NEXT:    sw s8, 120(a0)
+; QCI-NEXT:    sw s7, 116(a0)
+; QCI-NEXT:    sw s6, 112(a0)
 ; QCI-NEXT:    sw a1, 108(a0)
-; QCI-NEXT:    sw a3, 104(a0)
-; QCI-NEXT:    sw a6, 100(a0)
-; QCI-NEXT:    sw t1, 96(a0)
+; QCI-NEXT:    sw ra, 104(a0)
+; QCI-NEXT:    sw s11, 100(a0)
+; QCI-NEXT:    sw s10, 96(a0)
 ; QCI-NEXT:    sw a2, 92(a0)
-; QCI-NEXT:    sw a4, 88(a0)
-; QCI-NEXT:    sw a7, 84(a0)
-; QCI-NEXT:    sw t2, 80(a0)
-; QCI-NEXT:    sw ra, 76(a0)
-; QCI-NEXT:    sw s11, 72(a0)
-; QCI-NEXT:    sw s10, 68(a0)
-; QCI-NEXT:    sw s9, 64(a0)
-; QCI-NEXT:    sw s8, 60(a0)
-; QCI-NEXT:    sw s7, 56(a0)
-; QCI-NEXT:    sw s6, 52(a0)
-; QCI-NEXT:    sw s5, 48(a0)
-; QCI-NEXT:    sw s4, 44(a0)
-; QCI-NEXT:    sw s3, 40(a0)
-; QCI-NEXT:    sw s2, 36(a0)
-; QCI-NEXT:    sw t6, 32(a0)
-; QCI-NEXT:    sw t5, 28(a0)
-; QCI-NEXT:    sw t4, 24(a0)
-; QCI-NEXT:    sw t3, 20(a0)
+; QCI-NEXT:    sw a3, 88(a0)
+; QCI-NEXT:    sw a4, 84(a0)
+; QCI-NEXT:    sw a5, 80(a0)
+; QCI-NEXT:    sw s5, 76(a0)
+; QCI-NEXT:    sw s4, 72(a0)
+; QCI-NEXT:    sw s3, 68(a0)
+; QCI-NEXT:    sw s2, 64(a0)
+; QCI-NEXT:    sw s1, 60(a0)
+; QCI-NEXT:    sw s0, 56(a0)
+; QCI-NEXT:    sw t6, 52(a0)
+; QCI-NEXT:    sw t5, 48(a0)
+; QCI-NEXT:    sw t4, 44(a0)
+; QCI-NEXT:    sw t3, 40(a0)
+; QCI-NEXT:    sw t2, 36(a0)
+; QCI-NEXT:    sw t1, 32(a0)
+; QCI-NEXT:    sw t0, 28(a0)
+; QCI-NEXT:    sw a7, 24(a0)
+; QCI-NEXT:    sw a6, 20(a0)
 ; QCI-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-NEXT:    sw a1, 16(a0)
 ; QCI-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1195,58 +1195,58 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-FP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-FP-NEXT:    lw a1, 20(a0)
 ; QCI-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-FP-NEXT:    lw t4, 24(a0)
-; QCI-FP-NEXT:    lw t5, 28(a0)
-; QCI-FP-NEXT:    lw t6, 32(a0)
-; QCI-FP-NEXT:    lw s2, 36(a0)
-; QCI-FP-NEXT:    lw s3, 40(a0)
-; QCI-FP-NEXT:    lw s4, 44(a0)
-; QCI-FP-NEXT:    lw s5, 48(a0)
-; QCI-FP-NEXT:    lw s6, 52(a0)
-; QCI-FP-NEXT:    lw s7, 56(a0)
-; QCI-FP-NEXT:    lw s8, 60(a0)
-; QCI-FP-NEXT:    lw s9, 64(a0)
-; QCI-FP-NEXT:    lw s10, 68(a0)
-; QCI-FP-NEXT:    lw s11, 72(a0)
-; QCI-FP-NEXT:    lw ra, 76(a0)
-; QCI-FP-NEXT:    lw s1, 112(a0)
-; QCI-FP-NEXT:    lw t0, 116(a0)
-; QCI-FP-NEXT:    lw a4, 120(a0)
-; QCI-FP-NEXT:    lw a2, 124(a0)
-; QCI-FP-NEXT:    lw t3, 96(a0)
-; QCI-FP-NEXT:    lw t1, 100(a0)
-; QCI-FP-NEXT:    lw a6, 104(a0)
+; QCI-FP-NEXT:    lw a7, 24(a0)
+; QCI-FP-NEXT:    lw t0, 28(a0)
+; QCI-FP-NEXT:    lw t1, 32(a0)
+; QCI-FP-NEXT:    lw t2, 36(a0)
+; QCI-FP-NEXT:    lw t3, 40(a0)
+; QCI-FP-NEXT:    lw t4, 44(a0)
+; QCI-FP-NEXT:    lw t5, 48(a0)
+; QCI-FP-NEXT:    lw t6, 52(a0)
+; QCI-FP-NEXT:    lw s1, 56(a0)
+; QCI-FP-NEXT:    lw s2, 60(a0)
+; QCI-FP-NEXT:    lw s3, 64(a0)
+; QCI-FP-NEXT:    lw s4, 68(a0)
+; QCI-FP-NEXT:    lw s5, 72(a0)
+; QCI-FP-NEXT:    lw s6, 76(a0)
+; QCI-FP-NEXT:    lw s7, 112(a0)
+; QCI-FP-NEXT:    lw s8, 116(a0)
+; QCI-FP-NEXT:    lw s9, 120(a0)
+; QCI-FP-NEXT:    lw s10, 124(a0)
+; QCI-FP-NEXT:    lw s11, 96(a0)
+; QCI-FP-NEXT:    lw ra, 100(a0)
+; QCI-FP-NEXT:    lw a4, 104(a0)
 ; QCI-FP-NEXT:    lw a1, 108(a0)
-; QCI-FP-NEXT:    lw t2, 80(a0)
-; QCI-FP-NEXT:    lw a7, 84(a0)
-; QCI-FP-NEXT:    lw a5, 88(a0)
-; QCI-FP-NEXT:    lw a3, 92(a0)
-; QCI-FP-NEXT:    sw a2, 124(a0)
-; QCI-FP-NEXT:    sw a4, 120(a0)
-; QCI-FP-NEXT:    sw t0, 116(a0)
-; QCI-FP-NEXT:    sw s1, 112(a0)
+; QCI-FP-NEXT:    lw a6, 80(a0)
+; QCI-FP-NEXT:    lw a5, 84(a0)
+; QCI-FP-NEXT:    lw a3, 88(a0)
+; QCI-FP-NEXT:    lw a2, 92(a0)
+; QCI-FP-NEXT:    sw s10, 124(a0)
+; QCI-FP-NEXT:    sw s9, 120(a0)
+; QCI-FP-NEXT:    sw s8, 116(a0)
+; QCI-FP-NEXT:    sw s7, 112(a0)
 ; QCI-FP-NEXT:    sw a1, 108(a0)
-; QCI-FP-NEXT:    sw a6, 104(a0)
-; QCI-FP-NEXT:    sw t1, 100(a0)
-; QCI-FP-NEXT:    sw t3, 96(a0)
-; QCI-FP-NEXT:    sw a3, 92(a0)
-; QCI-FP-NEXT:    sw a5, 88(a0)
-; QCI-FP-NEXT:    sw a7, 84(a0)
-; QCI-FP-NEXT:    sw t2, 80(a0)
-; QCI-FP-NEXT:    sw ra, 76(a0)
-; QCI-FP-NEXT:    sw s11, 72(a0)
-; QCI-FP-NEXT:    sw s10, 68(a0)
-; QCI-FP-NEXT:    sw s9, 64(a0)
-; QCI-FP-NEXT:    sw s8, 60(a0)
-; QCI-FP-NEXT:    sw s7, 56(a0)
-; QCI-FP-NEXT:    sw s6, 52(a0)
-; QCI-FP-NEXT:    sw s5, 48(a0)
-; QCI-FP-NEXT:    sw s4, 44(a0)
-; QCI-FP-NEXT:    sw s3, 40(a0)
-; QCI-FP-NEXT:    sw s2, 36(a0)
-; QCI-FP-NEXT:    sw t6, 32(a0)
-; QCI-FP-NEXT:    sw t5, 28(a0)
-; QCI-FP-NEXT:    sw t4, 24(a0)
+; QCI-FP-NEXT:    sw a4, 104(a0)
+; QCI-FP-NEXT:    sw ra, 100(a0)
+; QCI-FP-NEXT:    sw s11, 96(a0)
+; QCI-FP-NEXT:    sw a2, 92(a0)
+; QCI-FP-NEXT:    sw a3, 88(a0)
+; QCI-FP-NEXT:    sw a5, 84(a0)
+; QCI-FP-NEXT:    sw a6, 80(a0)
+; QCI-FP-NEXT:    sw s6, 76(a0)
+; QCI-FP-NEXT:    sw s5, 72(a0)
+; QCI-FP-NEXT:    sw s4, 68(a0)
+; QCI-FP-NEXT:    sw s3, 64(a0)
+; QCI-FP-NEXT:    sw s2, 60(a0)
+; QCI-FP-NEXT:    sw s1, 56(a0)
+; QCI-FP-NEXT:    sw t6, 52(a0)
+; QCI-FP-NEXT:    sw t5, 48(a0)
+; QCI-FP-NEXT:    sw t4, 44(a0)
+; QCI-FP-NEXT:    sw t3, 40(a0)
+; QCI-FP-NEXT:    sw t2, 36(a0)
+; QCI-FP-NEXT:    sw t1, 32(a0)
+; QCI-FP-NEXT:    sw t0, 28(a0)
+; QCI-FP-NEXT:    sw a7, 24(a0)
 ; QCI-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-FP-NEXT:    sw a1, 20(a0)
 ; QCI-FP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -1332,60 +1332,60 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-PUSH-POP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-PUSH-POP-NEXT:    lw a1, 16(a0)
 ; QCI-PUSH-POP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-PUSH-POP-NEXT:    lw t3, 20(a0)
-; QCI-PUSH-POP-NEXT:    lw t4, 24(a0)
-; QCI-PUSH-POP-NEXT:    lw t5, 28(a0)
-; QCI-PUSH-POP-NEXT:    lw t6, 32(a0)
-; QCI-PUSH-POP-NEXT:    lw s2, 36(a0)
-; QCI-PUSH-POP-NEXT:    lw s3, 40(a0)
-; QCI-PUSH-POP-NEXT:    lw s4, 44(a0)
-; QCI-PUSH-POP-NEXT:    lw s5, 48(a0)
-; QCI-PUSH-POP-NEXT:    lw s6, 52(a0)
-; QCI-PUSH-POP-NEXT:    lw s7, 56(a0)
-; QCI-PUSH-POP-NEXT:    lw s8, 60(a0)
-; QCI-PUSH-POP-NEXT:    lw s9, 64(a0)
-; QCI-PUSH-POP-NEXT:    lw s10, 68(a0)
-; QCI-PUSH-POP-NEXT:    lw s11, 72(a0)
-; QCI-PUSH-POP-NEXT:    lw ra, 76(a0)
-; QCI-PUSH-POP-NEXT:    lw t0, 112(a0)
-; QCI-PUSH-POP-NEXT:    lw s0, 116(a0)
-; QCI-PUSH-POP-NEXT:    lw s1, 120(a0)
-; QCI-PUSH-POP-NEXT:    lw a5, 124(a0)
-; QCI-PUSH-POP-NEXT:    lw t1, 96(a0)
-; QCI-PUSH-POP-NEXT:    lw a6, 100(a0)
-; QCI-PUSH-POP-NEXT:    lw a3, 104(a0)
+; QCI-PUSH-POP-NEXT:    lw a6, 20(a0)
+; QCI-PUSH-POP-NEXT:    lw a7, 24(a0)
+; QCI-PUSH-POP-NEXT:    lw t0, 28(a0)
+; QCI-PUSH-POP-NEXT:    lw t1, 32(a0)
+; QCI-PUSH-POP-NEXT:    lw t2, 36(a0)
+; QCI-PUSH-POP-NEXT:    lw t3, 40(a0)
+; QCI-PUSH-POP-NEXT:    lw t4, 44(a0)
+; QCI-PUSH-POP-NEXT:    lw t5, 48(a0)
+; QCI-PUSH-POP-NEXT:    lw t6, 52(a0)
+; QCI-PUSH-POP-NEXT:    lw s0, 56(a0)
+; QCI-PUSH-POP-NEXT:    lw s1, 60(a0)
+; QCI-PUSH-POP-NEXT:    lw s2, 64(a0)
+; QCI-PUSH-POP-NEXT:    lw s3, 68(a0)
+; QCI-PUSH-POP-NEXT:    lw s4, 72(a0)
+; QCI-PUSH-POP-NEXT:    lw s5, 76(a0)
+; QCI-PUSH-POP-NEXT:    lw s6, 112(a0)
+; QCI-PUSH-POP-NEXT:    lw s7, 116(a0)
+; QCI-PUSH-POP-NEXT:    lw s8, 120(a0)
+; QCI-PUSH-POP-NEXT:    lw s9, 124(a0)
+; QCI-PUSH-POP-NEXT:    lw s10, 96(a0)
+; QCI-PUSH-POP-NEXT:    lw s11, 100(a0)
+; QCI-PUSH-POP-NEXT:    lw ra, 104(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 108(a0)
-; QCI-PUSH-POP-NEXT:    lw t2, 80(a0)
-; QCI-PUSH-POP-NEXT:    lw a7, 84(a0)
-; QCI-PUSH-POP-NEXT:    lw a4, 88(a0)
+; QCI-PUSH-POP-NEXT:    lw a5, 80(a0)
+; QCI-PUSH-POP-NEXT:    lw a4, 84(a0)
+; QCI-PUSH-POP-NEXT:    lw a3, 88(a0)
 ; QCI-PUSH-POP-NEXT:    lw a2, 92(a0)
-; QCI-PUSH-POP-NEXT:    sw a5, 124(a0)
-; QCI-PUSH-POP-NEXT:    sw s1, 120(a0)
-; QCI-PUSH-POP-NEXT:    sw s0, 116(a0)
-; QCI-PUSH-POP-NEXT:    sw t0, 112(a0)
+; QCI-PUSH-POP-NEXT:    sw s9, 124(a0)
+; QCI-PUSH-POP-NEXT:    sw s8, 120(a0)
+; QCI-PUSH-POP-NEXT:    sw s7, 116(a0)
+; QCI-PUSH-POP-NEXT:    sw s6, 112(a0)
 ; QCI-PUSH-POP-NEXT:    sw a1, 108(a0)
-; QCI-PUSH-POP-NEXT:    sw a3, 104(a0)
-; QCI-PUSH-POP-NEXT:    sw a6, 100(a0)
-; QCI-PUSH-POP-NEXT:    sw t1, 96(a0)
+; QCI-PUSH-POP-NEXT:    sw ra, 104(a0)
+; QCI-PUSH-POP-NEXT:    sw s11, 100(a0)
+; QCI-PUSH-POP-NEXT:    sw s10, 96(a0)
 ; QCI-PUSH-POP-NEXT:    sw a2, 92(a0)
-; QCI-PUSH-POP-NEXT:    sw a4, 88(a0)
-; QCI-PUSH-POP-NEXT:    sw a7, 84(a0)
-; QCI-PUSH-POP-NEXT:    sw t2, 80(a0)
-; QCI-PUSH-POP-NEXT:    sw ra, 76(a0)
-; QCI-PUSH-POP-NEXT:    sw s11, 72(a0)
-; QCI-PUSH-POP-NEXT:    sw s10, 68(a0)
-; QCI-PUSH-POP-NEXT:    sw s9, 64(a0)
-; QCI-PUSH-POP-NEXT:    sw s8, 60(a0)
-; QCI-PUSH-POP-NEXT:    sw s7, 56(a0)
-; QCI-PUSH-POP-NEXT:    sw s6, 52(a0)
-; QCI-PUSH-POP-NEXT:    sw s5, 48(a0)
-; QCI-PUSH-POP-NEXT:    sw s4, 44(a0)
-; QCI-PUSH-POP-NEXT:    sw s3, 40(a0)
-; QCI-PUSH-POP-NEXT:    sw s2, 36(a0)
-; QCI-PUSH-POP-NEXT:    sw t6, 32(a0)
-; QCI-PUSH-POP-NEXT:    sw t5, 28(a0)
-; QCI-PUSH-POP-NEXT:    sw t4, 24(a0)
-; QCI-PUSH-POP-NEXT:    sw t3, 20(a0)
+; QCI-PUSH-POP-NEXT:    sw a3, 88(a0)
+; QCI-PUSH-POP-NEXT:    sw a4, 84(a0)
+; QCI-PUSH-POP-NEXT:    sw a5, 80(a0)
+; QCI-PUSH-POP-NEXT:    sw s5, 76(a0)
+; QCI-PUSH-POP-NEXT:    sw s4, 72(a0)
+; QCI-PUSH-POP-NEXT:    sw s3, 68(a0)
+; QCI-PUSH-POP-NEXT:    sw s2, 64(a0)
+; QCI-PUSH-POP-NEXT:    sw s1, 60(a0)
+; QCI-PUSH-POP-NEXT:    sw s0, 56(a0)
+; QCI-PUSH-POP-NEXT:    sw t6, 52(a0)
+; QCI-PUSH-POP-NEXT:    sw t5, 48(a0)
+; QCI-PUSH-POP-NEXT:    sw t4, 44(a0)
+; QCI-PUSH-POP-NEXT:    sw t3, 40(a0)
+; QCI-PUSH-POP-NEXT:    sw t2, 36(a0)
+; QCI-PUSH-POP-NEXT:    sw t1, 32(a0)
+; QCI-PUSH-POP-NEXT:    sw t0, 28(a0)
+; QCI-PUSH-POP-NEXT:    sw a7, 24(a0)
+; QCI-PUSH-POP-NEXT:    sw a6, 20(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-PUSH-POP-NEXT:    sw a1, 16(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -1457,60 +1457,60 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 16(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t3, 20(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t0, 112(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s0, 116(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 120(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a5, 124(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t1, 96(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a6, 100(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a3, 104(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a6, 20(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s0, 56(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 60(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 64(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 68(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 72(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 76(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 112(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 116(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 120(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 124(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 96(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 100(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw ra, 104(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a4, 88(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a5, 80(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a4, 84(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a3, 88(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a2, 92(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a5, 124(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 120(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s0, 116(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 112(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 124(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 120(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 116(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 112(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a3, 104(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a6, 100(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t1, 96(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw ra, 104(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 100(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 96(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a2, 92(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a4, 88(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t3, 20(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a4, 84(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a5, 80(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 76(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 72(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 68(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 64(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 60(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s0, 56(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a6, 20(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 16(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -1585,58 +1585,58 @@ define void @test_spill_nest() "interrupt"="qci-nest" {
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 20(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s1, 112(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t0, 116(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a4, 120(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a2, 124(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t3, 96(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t1, 100(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a6, 104(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s1, 56(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s2, 60(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s3, 64(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s4, 68(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s5, 72(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s6, 76(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s7, 112(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s8, 116(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s9, 120(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s10, 124(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s11, 96(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw ra, 100(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a4, 104(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a5, 88(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a3, 92(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a2, 124(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a4, 120(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t0, 116(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s1, 112(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a6, 80(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a5, 84(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a2, 92(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s10, 124(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s9, 120(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s8, 116(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s7, 112(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a6, 104(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t1, 100(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t3, 96(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a3, 92(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a5, 88(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t4, 24(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a4, 104(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw ra, 100(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s11, 96(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a2, 92(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a5, 84(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a6, 80(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s6, 76(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s5, 72(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s4, 68(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s3, 64(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s2, 60(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s1, 56(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a7, 24(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 20(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
@@ -1727,60 +1727,60 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; QCI-NEXT:    lw a1, 16(a0)
 ; QCI-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; QCI-NEXT:    lw t3, 20(a0)
-; QCI-NEXT:    lw t4, 24(a0)
-; QCI-NEXT:    lw t5, 28(a0)
-; QCI-NEXT:    lw t6, 32(a0)
-; QCI-NEXT:    lw s2, 36(a0)
-; QCI-NEXT:    lw s3, 40(a0)
-; QCI-NEXT:    lw s4, 44(a0)
-; QCI-NEXT:    lw s5, 48(a0)
-; QCI-NEXT:    lw s6, 52(a0)
-; QCI-NEXT:    lw s7, 56(a0)
-; QCI-NEXT:    lw s8, 60(a0)
-; QCI-NEXT:    lw s9, 64(a0)
-; QCI-NEXT:    lw s10, 68(a0)
-; QCI-NEXT:    lw s11, 72(a0)
-; QCI-NEXT:    lw ra, 76(a0)
-; QCI-NEXT:    lw t0, 112(a0)
-; QCI-NEXT:    lw s0, 116(a0)
-; QCI-NEXT:    lw s1, 120(a0)
-; QCI-NEXT:    lw a5, 124(a0)
-; QCI-NEXT:    lw t1, 96(a0)
-; QCI-NEXT:    lw a6, 100(a0)
-; QCI-NEXT:    lw a3, 104(a0)
+; QCI-NEXT:    lw a6, 20(a0)
+; QCI-NEXT:    lw a7, 24(a0)
+; QCI-NEXT:    lw t0, 28(a0)
+; QCI-NEXT:    lw t1, 32(a0)
+; QCI-NEXT:    lw t2, 36(a0)
+; QCI-NEXT:    lw t3, 40(a0)
+; QCI-NEXT:    lw t4, 44(a0)
+; QCI-NEXT:    lw t5, 48(a0)
+; QCI-NEXT:    lw t6, 52(a0)
+; QCI-NEXT:    lw s0, 56(a0)
+; QCI-NEXT:    lw s1, 60(a0)
+; QCI-NEXT:    lw s2, 64(a0)
+; QCI-NEXT:    lw s3, 68(a0)
+; QCI-NEXT:    lw s4, 72(a0)
+; QCI-NEXT:    lw s5, 76(a0)
+; QCI-NEXT:    lw s6, 112(a0)
+; QCI-NEXT:    lw s7, 116(a0)
+; QCI-NEXT:    lw s8, 120(a0)
+; QCI-NEXT:    lw s9, 124(a0)
+; QCI-NEXT:    lw s10, 96(a0)
+; QCI-NEXT:    lw s11, 100(a0)
+; QCI-NEXT:    lw ra, 104(a0)
 ; QCI-NEXT:    lw a1, 108(a0)
-; QCI-NEXT:    lw t2, 80(a0)
-; QCI-NEXT:    lw a7, 84(a0)
-; QCI-NEXT:    lw a4, 88(a0)
+; QCI-NEXT:    lw a5, 80(a0)
+; QCI-NEXT:    lw a4, 84(a0)
+; QCI-NEXT:    lw a3, 88(a0)
 ; QCI-NEXT:    lw a2, 92(a0)
-; QCI-NEXT:    sw a5, 124(a0)
-; QCI-NEXT:    sw s1, 120(a0)
-; QCI-NEXT:    sw s0, 116(a0)
-; QCI-NEXT:    sw t0, 112(a0)
+; QCI-NEXT:    sw s9, 124(a0)
+; QCI-NEXT:    sw s8, 120(a0)
+; QCI-NEXT:    sw s7, 116(a0)
+; QCI-NEXT:    sw s6, 112(a0)
 ; QCI-NEXT:    sw a1, 108(a0)
-; QCI-NEXT:    sw a3, 104(a0)
-; QCI-NEXT:    sw a6, 100(a0)
-; QCI-NEXT:    sw t1, 96(a0)
+; QCI-NEXT:    sw ra, 104(a0)
+; QCI-NEXT:    sw s11, 100(a0)
+; QCI-NEXT:    sw s10, 96(a0)
 ; QCI-NEXT:    sw a2, 92(a0)
-; QCI-NEXT:    sw a4, 88(a0)
-; QCI-NEXT:    sw a7, 84(a0)
-; QCI-NEXT:    sw t2, 80(a0)
-; QCI-NEXT:    sw ra, 76(a0)
-; QCI-NEXT:    sw s11, 72(a0)
-; QCI-NEXT:    sw s10, 68(a0)
-; QCI-NEXT:    sw s9, 64(a0)
-; QCI-NEXT:    sw s8, 60(a0)
-; QCI-NEXT:    sw s7, 56(a0)
-; QCI-NEXT:    sw s6, 52(a0)
-; QCI-NEXT:    sw s5, 48(a0)
-; QCI-NEXT:    sw s4, 44(a0)
-; QCI-NEXT:    sw s3, 40(a0)
-; QCI-NEXT:    sw s2, 36(a0)
-; QCI-NEXT:    sw t6, 32(a0)
-; QCI-NEXT:    sw t5, 28(a0)
-; QCI-NEXT:    sw t4, 24(a0)
-; QCI-NEXT:    sw t3, 20(a0)
+; QCI-NEXT:    sw a3, 88(a0)
+; QCI-NEXT:    sw a4, 84(a0)
+; QCI-NEXT:    sw a5, 80(a0)
+; QCI-NEXT:    sw s5, 76(a0)
+; QCI-NEXT:    sw s4, 72(a0)
+; QCI-NEXT:    sw s3, 68(a0)
+; QCI-NEXT:    sw s2, 64(a0)
+; QCI-NEXT:    sw s1, 60(a0)
+; QCI-NEXT:    sw s0, 56(a0)
+; QCI-NEXT:    sw t6, 52(a0)
+; QCI-NEXT:    sw t5, 48(a0)
+; QCI-NEXT:    sw t4, 44(a0)
+; QCI-NEXT:    sw t3, 40(a0)
+; QCI-NEXT:    sw t2, 36(a0)
+; QCI-NEXT:    sw t1, 32(a0)
+; QCI-NEXT:    sw t0, 28(a0)
+; QCI-NEXT:    sw a7, 24(a0)
+; QCI-NEXT:    sw a6, 20(a0)
 ; QCI-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; QCI-NEXT:    sw a1, 16(a0)
 ; QCI-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -1877,58 +1877,58 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-FP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-FP-NEXT:    lw a1, 20(a0)
 ; QCI-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-FP-NEXT:    lw t4, 24(a0)
-; QCI-FP-NEXT:    lw t5, 28(a0)
-; QCI-FP-NEXT:    lw t6, 32(a0)
-; QCI-FP-NEXT:    lw s2, 36(a0)
-; QCI-FP-NEXT:    lw s3, 40(a0)
-; QCI-FP-NEXT:    lw s4, 44(a0)
-; QCI-FP-NEXT:    lw s5, 48(a0)
-; QCI-FP-NEXT:    lw s6, 52(a0)
-; QCI-FP-NEXT:    lw s7, 56(a0)
-; QCI-FP-NEXT:    lw s8, 60(a0)
-; QCI-FP-NEXT:    lw s9, 64(a0)
-; QCI-FP-NEXT:    lw s10, 68(a0)
-; QCI-FP-NEXT:    lw s11, 72(a0)
-; QCI-FP-NEXT:    lw ra, 76(a0)
-; QCI-FP-NEXT:    lw s1, 112(a0)
-; QCI-FP-NEXT:    lw t0, 116(a0)
-; QCI-FP-NEXT:    lw a4, 120(a0)
-; QCI-FP-NEXT:    lw a2, 124(a0)
-; QCI-FP-NEXT:    lw t3, 96(a0)
-; QCI-FP-NEXT:    lw t1, 100(a0)
-; QCI-FP-NEXT:    lw a6, 104(a0)
+; QCI-FP-NEXT:    lw a7, 24(a0)
+; QCI-FP-NEXT:    lw t0, 28(a0)
+; QCI-FP-NEXT:    lw t1, 32(a0)
+; QCI-FP-NEXT:    lw t2, 36(a0)
+; QCI-FP-NEXT:    lw t3, 40(a0)
+; QCI-FP-NEXT:    lw t4, 44(a0)
+; QCI-FP-NEXT:    lw t5, 48(a0)
+; QCI-FP-NEXT:    lw t6, 52(a0)
+; QCI-FP-NEXT:    lw s1, 56(a0)
+; QCI-FP-NEXT:    lw s2, 60(a0)
+; QCI-FP-NEXT:    lw s3, 64(a0)
+; QCI-FP-NEXT:    lw s4, 68(a0)
+; QCI-FP-NEXT:    lw s5, 72(a0)
+; QCI-FP-NEXT:    lw s6, 76(a0)
+; QCI-FP-NEXT:    lw s7, 112(a0)
+; QCI-FP-NEXT:    lw s8, 116(a0)
+; QCI-FP-NEXT:    lw s9, 120(a0)
+; QCI-FP-NEXT:    lw s10, 124(a0)
+; QCI-FP-NEXT:    lw s11, 96(a0)
+; QCI-FP-NEXT:    lw ra, 100(a0)
+; QCI-FP-NEXT:    lw a4, 104(a0)
 ; QCI-FP-NEXT:    lw a1, 108(a0)
-; QCI-FP-NEXT:    lw t2, 80(a0)
-; QCI-FP-NEXT:    lw a7, 84(a0)
-; QCI-FP-NEXT:    lw a5, 88(a0)
-; QCI-FP-NEXT:    lw a3, 92(a0)
-; QCI-FP-NEXT:    sw a2, 124(a0)
-; QCI-FP-NEXT:    sw a4, 120(a0)
-; QCI-FP-NEXT:    sw t0, 116(a0)
-; QCI-FP-NEXT:    sw s1, 112(a0)
+; QCI-FP-NEXT:    lw a6, 80(a0)
+; QCI-FP-NEXT:    lw a5, 84(a0)
+; QCI-FP-NEXT:    lw a3, 88(a0)
+; QCI-FP-NEXT:    lw a2, 92(a0)
+; QCI-FP-NEXT:    sw s10, 124(a0)
+; QCI-FP-NEXT:    sw s9, 120(a0)
+; QCI-FP-NEXT:    sw s8, 116(a0)
+; QCI-FP-NEXT:    sw s7, 112(a0)
 ; QCI-FP-NEXT:    sw a1, 108(a0)
-; QCI-FP-NEXT:    sw a6, 104(a0)
-; QCI-FP-NEXT:    sw t1, 100(a0)
-; QCI-FP-NEXT:    sw t3, 96(a0)
-; QCI-FP-NEXT:    sw a3, 92(a0)
-; QCI-FP-NEXT:    sw a5, 88(a0)
-; QCI-FP-NEXT:    sw a7, 84(a0)
-; QCI-FP-NEXT:    sw t2, 80(a0)
-; QCI-FP-NEXT:    sw ra, 76(a0)
-; QCI-FP-NEXT:    sw s11, 72(a0)
-; QCI-FP-NEXT:    sw s10, 68(a0)
-; QCI-FP-NEXT:    sw s9, 64(a0)
-; QCI-FP-NEXT:    sw s8, 60(a0)
-; QCI-FP-NEXT:    sw s7, 56(a0)
-; QCI-FP-NEXT:    sw s6, 52(a0)
-; QCI-FP-NEXT:    sw s5, 48(a0)
-; QCI-FP-NEXT:    sw s4, 44(a0)
-; QCI-FP-NEXT:    sw s3, 40(a0)
-; QCI-FP-NEXT:    sw s2, 36(a0)
-; QCI-FP-NEXT:    sw t6, 32(a0)
-; QCI-FP-NEXT:    sw t5, 28(a0)
-; QCI-FP-NEXT:    sw t4, 24(a0)
+; QCI-FP-NEXT:    sw a4, 104(a0)
+; QCI-FP-NEXT:    sw ra, 100(a0)
+; QCI-FP-NEXT:    sw s11, 96(a0)
+; QCI-FP-NEXT:    sw a2, 92(a0)
+; QCI-FP-NEXT:    sw a3, 88(a0)
+; QCI-FP-NEXT:    sw a5, 84(a0)
+; QCI-FP-NEXT:    sw a6, 80(a0)
+; QCI-FP-NEXT:    sw s6, 76(a0)
+; QCI-FP-NEXT:    sw s5, 72(a0)
+; QCI-FP-NEXT:    sw s4, 68(a0)
+; QCI-FP-NEXT:    sw s3, 64(a0)
+; QCI-FP-NEXT:    sw s2, 60(a0)
+; QCI-FP-NEXT:    sw s1, 56(a0)
+; QCI-FP-NEXT:    sw t6, 52(a0)
+; QCI-FP-NEXT:    sw t5, 48(a0)
+; QCI-FP-NEXT:    sw t4, 44(a0)
+; QCI-FP-NEXT:    sw t3, 40(a0)
+; QCI-FP-NEXT:    sw t2, 36(a0)
+; QCI-FP-NEXT:    sw t1, 32(a0)
+; QCI-FP-NEXT:    sw t0, 28(a0)
+; QCI-FP-NEXT:    sw a7, 24(a0)
 ; QCI-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-FP-NEXT:    sw a1, 20(a0)
 ; QCI-FP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -2014,60 +2014,60 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-PUSH-POP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-PUSH-POP-NEXT:    lw a1, 16(a0)
 ; QCI-PUSH-POP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-PUSH-POP-NEXT:    lw t3, 20(a0)
-; QCI-PUSH-POP-NEXT:    lw t4, 24(a0)
-; QCI-PUSH-POP-NEXT:    lw t5, 28(a0)
-; QCI-PUSH-POP-NEXT:    lw t6, 32(a0)
-; QCI-PUSH-POP-NEXT:    lw s2, 36(a0)
-; QCI-PUSH-POP-NEXT:    lw s3, 40(a0)
-; QCI-PUSH-POP-NEXT:    lw s4, 44(a0)
-; QCI-PUSH-POP-NEXT:    lw s5, 48(a0)
-; QCI-PUSH-POP-NEXT:    lw s6, 52(a0)
-; QCI-PUSH-POP-NEXT:    lw s7, 56(a0)
-; QCI-PUSH-POP-NEXT:    lw s8, 60(a0)
-; QCI-PUSH-POP-NEXT:    lw s9, 64(a0)
-; QCI-PUSH-POP-NEXT:    lw s10, 68(a0)
-; QCI-PUSH-POP-NEXT:    lw s11, 72(a0)
-; QCI-PUSH-POP-NEXT:    lw ra, 76(a0)
-; QCI-PUSH-POP-NEXT:    lw t0, 112(a0)
-; QCI-PUSH-POP-NEXT:    lw s0, 116(a0)
-; QCI-PUSH-POP-NEXT:    lw s1, 120(a0)
-; QCI-PUSH-POP-NEXT:    lw a5, 124(a0)
-; QCI-PUSH-POP-NEXT:    lw t1, 96(a0)
-; QCI-PUSH-POP-NEXT:    lw a6, 100(a0)
-; QCI-PUSH-POP-NEXT:    lw a3, 104(a0)
+; QCI-PUSH-POP-NEXT:    lw a6, 20(a0)
+; QCI-PUSH-POP-NEXT:    lw a7, 24(a0)
+; QCI-PUSH-POP-NEXT:    lw t0, 28(a0)
+; QCI-PUSH-POP-NEXT:    lw t1, 32(a0)
+; QCI-PUSH-POP-NEXT:    lw t2, 36(a0)
+; QCI-PUSH-POP-NEXT:    lw t3, 40(a0)
+; QCI-PUSH-POP-NEXT:    lw t4, 44(a0)
+; QCI-PUSH-POP-NEXT:    lw t5, 48(a0)
+; QCI-PUSH-POP-NEXT:    lw t6, 52(a0)
+; QCI-PUSH-POP-NEXT:    lw s0, 56(a0)
+; QCI-PUSH-POP-NEXT:    lw s1, 60(a0)
+; QCI-PUSH-POP-NEXT:    lw s2, 64(a0)
+; QCI-PUSH-POP-NEXT:    lw s3, 68(a0)
+; QCI-PUSH-POP-NEXT:    lw s4, 72(a0)
+; QCI-PUSH-POP-NEXT:    lw s5, 76(a0)
+; QCI-PUSH-POP-NEXT:    lw s6, 112(a0)
+; QCI-PUSH-POP-NEXT:    lw s7, 116(a0)
+; QCI-PUSH-POP-NEXT:    lw s8, 120(a0)
+; QCI-PUSH-POP-NEXT:    lw s9, 124(a0)
+; QCI-PUSH-POP-NEXT:    lw s10, 96(a0)
+; QCI-PUSH-POP-NEXT:    lw s11, 100(a0)
+; QCI-PUSH-POP-NEXT:    lw ra, 104(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 108(a0)
-; QCI-PUSH-POP-NEXT:    lw t2, 80(a0)
-; QCI-PUSH-POP-NEXT:    lw a7, 84(a0)
-; QCI-PUSH-POP-NEXT:    lw a4, 88(a0)
+; QCI-PUSH-POP-NEXT:    lw a5, 80(a0)
+; QCI-PUSH-POP-NEXT:    lw a4, 84(a0)
+; QCI-PUSH-POP-NEXT:    lw a3, 88(a0)
 ; QCI-PUSH-POP-NEXT:    lw a2, 92(a0)
-; QCI-PUSH-POP-NEXT:    sw a5, 124(a0)
-; QCI-PUSH-POP-NEXT:    sw s1, 120(a0)
-; QCI-PUSH-POP-NEXT:    sw s0, 116(a0)
-; QCI-PUSH-POP-NEXT:    sw t0, 112(a0)
+; QCI-PUSH-POP-NEXT:    sw s9, 124(a0)
+; QCI-PUSH-POP-NEXT:    sw s8, 120(a0)
+; QCI-PUSH-POP-NEXT:    sw s7, 116(a0)
+; QCI-PUSH-POP-NEXT:    sw s6, 112(a0)
 ; QCI-PUSH-POP-NEXT:    sw a1, 108(a0)
-; QCI-PUSH-POP-NEXT:    sw a3, 104(a0)
-; QCI-PUSH-POP-NEXT:    sw a6, 100(a0)
-; QCI-PUSH-POP-NEXT:    sw t1, 96(a0)
+; QCI-PUSH-POP-NEXT:    sw ra, 104(a0)
+; QCI-PUSH-POP-NEXT:    sw s11, 100(a0)
+; QCI-PUSH-POP-NEXT:    sw s10, 96(a0)
 ; QCI-PUSH-POP-NEXT:    sw a2, 92(a0)
-; QCI-PUSH-POP-NEXT:    sw a4, 88(a0)
-; QCI-PUSH-POP-NEXT:    sw a7, 84(a0)
-; QCI-PUSH-POP-NEXT:    sw t2, 80(a0)
-; QCI-PUSH-POP-NEXT:    sw ra, 76(a0)
-; QCI-PUSH-POP-NEXT:    sw s11, 72(a0)
-; QCI-PUSH-POP-NEXT:    sw s10, 68(a0)
-; QCI-PUSH-POP-NEXT:    sw s9, 64(a0)
-; QCI-PUSH-POP-NEXT:    sw s8, 60(a0)
-; QCI-PUSH-POP-NEXT:    sw s7, 56(a0)
-; QCI-PUSH-POP-NEXT:    sw s6, 52(a0)
-; QCI-PUSH-POP-NEXT:    sw s5, 48(a0)
-; QCI-PUSH-POP-NEXT:    sw s4, 44(a0)
-; QCI-PUSH-POP-NEXT:    sw s3, 40(a0)
-; QCI-PUSH-POP-NEXT:    sw s2, 36(a0)
-; QCI-PUSH-POP-NEXT:    sw t6, 32(a0)
-; QCI-PUSH-POP-NEXT:    sw t5, 28(a0)
-; QCI-PUSH-POP-NEXT:    sw t4, 24(a0)
-; QCI-PUSH-POP-NEXT:    sw t3, 20(a0)
+; QCI-PUSH-POP-NEXT:    sw a3, 88(a0)
+; QCI-PUSH-POP-NEXT:    sw a4, 84(a0)
+; QCI-PUSH-POP-NEXT:    sw a5, 80(a0)
+; QCI-PUSH-POP-NEXT:    sw s5, 76(a0)
+; QCI-PUSH-POP-NEXT:    sw s4, 72(a0)
+; QCI-PUSH-POP-NEXT:    sw s3, 68(a0)
+; QCI-PUSH-POP-NEXT:    sw s2, 64(a0)
+; QCI-PUSH-POP-NEXT:    sw s1, 60(a0)
+; QCI-PUSH-POP-NEXT:    sw s0, 56(a0)
+; QCI-PUSH-POP-NEXT:    sw t6, 52(a0)
+; QCI-PUSH-POP-NEXT:    sw t5, 48(a0)
+; QCI-PUSH-POP-NEXT:    sw t4, 44(a0)
+; QCI-PUSH-POP-NEXT:    sw t3, 40(a0)
+; QCI-PUSH-POP-NEXT:    sw t2, 36(a0)
+; QCI-PUSH-POP-NEXT:    sw t1, 32(a0)
+; QCI-PUSH-POP-NEXT:    sw t0, 28(a0)
+; QCI-PUSH-POP-NEXT:    sw a7, 24(a0)
+; QCI-PUSH-POP-NEXT:    sw a6, 20(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-PUSH-POP-NEXT:    sw a1, 16(a0)
 ; QCI-PUSH-POP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -2139,60 +2139,60 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 16(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t3, 20(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t0, 112(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s0, 116(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 120(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a5, 124(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t1, 96(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a6, 100(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a3, 104(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a6, 20(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s0, 56(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 60(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 64(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 68(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 72(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 76(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 112(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 116(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 120(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 124(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 96(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 100(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw ra, 104(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw a4, 88(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a5, 80(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a4, 84(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw a3, 88(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a2, 92(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a5, 124(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 120(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s0, 116(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 112(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 124(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 120(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 116(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 112(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a3, 104(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a6, 100(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t1, 96(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw ra, 104(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 100(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 96(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a2, 92(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a4, 88(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw t3, 20(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a4, 84(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a5, 80(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 76(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 72(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 68(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 64(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 60(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s0, 56(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw a6, 20(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a1, 16(a0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -2267,58 +2267,58 @@ define void @test_spill_nonest() "interrupt"="qci-nonest" {
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 20(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t4, 24(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s1, 112(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t0, 116(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a4, 120(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a2, 124(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t3, 96(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t1, 100(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a6, 104(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a7, 24(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s1, 56(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s2, 60(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s3, 64(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s4, 68(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s5, 72(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s6, 76(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s7, 112(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s8, 116(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s9, 120(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s10, 124(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw s11, 96(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw ra, 100(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a4, 104(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a5, 88(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a3, 92(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a2, 124(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a4, 120(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t0, 116(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s1, 112(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a6, 80(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a5, 84(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a2, 92(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s10, 124(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s9, 120(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s8, 116(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s7, 112(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 108(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a6, 104(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t1, 100(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t3, 96(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a3, 92(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a5, 88(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a7, 84(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t2, 80(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw ra, 76(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s11, 72(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s10, 68(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s9, 64(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s8, 60(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s7, 56(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s6, 52(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s5, 48(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s4, 44(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s3, 40(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s2, 36(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t6, 32(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t5, 28(a0)
-; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t4, 24(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a4, 104(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw ra, 100(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s11, 96(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a2, 92(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a3, 88(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a5, 84(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a6, 80(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s6, 76(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s5, 72(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s4, 68(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s3, 64(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s2, 60(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw s1, 56(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t6, 52(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t5, 48(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t4, 44(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t3, 40(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t2, 36(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t1, 32(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw t0, 28(a0)
+; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a7, 24(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    sw a1, 20(a0)
 ; QCI-QCCMP-PUSH-POP-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
@@ -2441,17 +2441,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-NEXT:    sw a0, 20(sp) # 4-byte Folded Spill
 ; QCI-NEXT:    lw a0, 80(s0)
 ; QCI-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
-; QCI-NEXT:    lw s1, 84(s0)
-; QCI-NEXT:    lw s2, 88(s0)
-; QCI-NEXT:    lw s3, 92(s0)
-; QCI-NEXT:    lw s4, 96(s0)
-; QCI-NEXT:    lw s5, 100(s0)
-; QCI-NEXT:    lw s6, 104(s0)
-; QCI-NEXT:    lw s7, 108(s0)
-; QCI-NEXT:    lw s8, 112(s0)
-; QCI-NEXT:    lw s9, 116(s0)
-; QCI-NEXT:    lw s10, 120(s0)
-; QCI-NEXT:    lw s11, 124(s0)
+; QCI-NEXT:    lw s11, 84(s0)
+; QCI-NEXT:    lw s1, 88(s0)
+; QCI-NEXT:    lw s2, 92(s0)
+; QCI-NEXT:    lw s3, 96(s0)
+; QCI-NEXT:    lw s4, 100(s0)
+; QCI-NEXT:    lw s5, 104(s0)
+; QCI-NEXT:    lw s6, 108(s0)
+; QCI-NEXT:    lw s7, 112(s0)
+; QCI-NEXT:    lw s8, 116(s0)
+; QCI-NEXT:    lw s9, 120(s0)
+; QCI-NEXT:    lw s10, 124(s0)
 ; QCI-NEXT:    li t0, 4
 ; QCI-NEXT:    li a2, 1
 ; QCI-NEXT:    li a4, 2
@@ -2464,17 +2464,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-NEXT:    sw t0, 0(sp)
 ; QCI-NEXT:    call function_with_one_stack_arg
 ; QCI-NEXT:    call use_i64
-; QCI-NEXT:    sw s11, 124(s0)
-; QCI-NEXT:    sw s10, 120(s0)
-; QCI-NEXT:    sw s9, 116(s0)
-; QCI-NEXT:    sw s8, 112(s0)
-; QCI-NEXT:    sw s7, 108(s0)
-; QCI-NEXT:    sw s6, 104(s0)
-; QCI-NEXT:    sw s5, 100(s0)
-; QCI-NEXT:    sw s4, 96(s0)
-; QCI-NEXT:    sw s3, 92(s0)
-; QCI-NEXT:    sw s2, 88(s0)
-; QCI-NEXT:    sw s1, 84(s0)
+; QCI-NEXT:    sw s10, 124(s0)
+; QCI-NEXT:    sw s9, 120(s0)
+; QCI-NEXT:    sw s8, 116(s0)
+; QCI-NEXT:    sw s7, 112(s0)
+; QCI-NEXT:    sw s6, 108(s0)
+; QCI-NEXT:    sw s5, 104(s0)
+; QCI-NEXT:    sw s4, 100(s0)
+; QCI-NEXT:    sw s3, 96(s0)
+; QCI-NEXT:    sw s2, 92(s0)
+; QCI-NEXT:    sw s1, 88(s0)
+; QCI-NEXT:    sw s11, 84(s0)
 ; QCI-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
 ; QCI-NEXT:    sw a0, 80(s0)
 ; QCI-NEXT:    lw a0, 20(sp) # 4-byte Folded Reload
@@ -2818,17 +2818,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-PUSH-POP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-PUSH-POP-NEXT:    lw a0, 80(s0)
 ; QCI-PUSH-POP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-PUSH-POP-NEXT:    lw s1, 84(s0)
-; QCI-PUSH-POP-NEXT:    lw s2, 88(s0)
-; QCI-PUSH-POP-NEXT:    lw s3, 92(s0)
-; QCI-PUSH-POP-NEXT:    lw s4, 96(s0)
-; QCI-PUSH-POP-NEXT:    lw s5, 100(s0)
-; QCI-PUSH-POP-NEXT:    lw s6, 104(s0)
-; QCI-PUSH-POP-NEXT:    lw s7, 108(s0)
-; QCI-PUSH-POP-NEXT:    lw s8, 112(s0)
-; QCI-PUSH-POP-NEXT:    lw s9, 116(s0)
-; QCI-PUSH-POP-NEXT:    lw s10, 120(s0)
-; QCI-PUSH-POP-NEXT:    lw s11, 124(s0)
+; QCI-PUSH-POP-NEXT:    lw s11, 84(s0)
+; QCI-PUSH-POP-NEXT:    lw s1, 88(s0)
+; QCI-PUSH-POP-NEXT:    lw s2, 92(s0)
+; QCI-PUSH-POP-NEXT:    lw s3, 96(s0)
+; QCI-PUSH-POP-NEXT:    lw s4, 100(s0)
+; QCI-PUSH-POP-NEXT:    lw s5, 104(s0)
+; QCI-PUSH-POP-NEXT:    lw s6, 108(s0)
+; QCI-PUSH-POP-NEXT:    lw s7, 112(s0)
+; QCI-PUSH-POP-NEXT:    lw s8, 116(s0)
+; QCI-PUSH-POP-NEXT:    lw s9, 120(s0)
+; QCI-PUSH-POP-NEXT:    lw s10, 124(s0)
 ; QCI-PUSH-POP-NEXT:    li t0, 4
 ; QCI-PUSH-POP-NEXT:    li a2, 1
 ; QCI-PUSH-POP-NEXT:    li a4, 2
@@ -2841,17 +2841,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-PUSH-POP-NEXT:    sw t0, 0(sp)
 ; QCI-PUSH-POP-NEXT:    call function_with_one_stack_arg
 ; QCI-PUSH-POP-NEXT:    call use_i64
-; QCI-PUSH-POP-NEXT:    sw s11, 124(s0)
-; QCI-PUSH-POP-NEXT:    sw s10, 120(s0)
-; QCI-PUSH-POP-NEXT:    sw s9, 116(s0)
-; QCI-PUSH-POP-NEXT:    sw s8, 112(s0)
-; QCI-PUSH-POP-NEXT:    sw s7, 108(s0)
-; QCI-PUSH-POP-NEXT:    sw s6, 104(s0)
-; QCI-PUSH-POP-NEXT:    sw s5, 100(s0)
-; QCI-PUSH-POP-NEXT:    sw s4, 96(s0)
-; QCI-PUSH-POP-NEXT:    sw s3, 92(s0)
-; QCI-PUSH-POP-NEXT:    sw s2, 88(s0)
-; QCI-PUSH-POP-NEXT:    sw s1, 84(s0)
+; QCI-PUSH-POP-NEXT:    sw s10, 124(s0)
+; QCI-PUSH-POP-NEXT:    sw s9, 120(s0)
+; QCI-PUSH-POP-NEXT:    sw s8, 116(s0)
+; QCI-PUSH-POP-NEXT:    sw s7, 112(s0)
+; QCI-PUSH-POP-NEXT:    sw s6, 108(s0)
+; QCI-PUSH-POP-NEXT:    sw s5, 104(s0)
+; QCI-PUSH-POP-NEXT:    sw s4, 100(s0)
+; QCI-PUSH-POP-NEXT:    sw s3, 96(s0)
+; QCI-PUSH-POP-NEXT:    sw s2, 92(s0)
+; QCI-PUSH-POP-NEXT:    sw s1, 88(s0)
+; QCI-PUSH-POP-NEXT:    sw s11, 84(s0)
 ; QCI-PUSH-POP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-PUSH-POP-NEXT:    sw a0, 80(s0)
 ; QCI-PUSH-POP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -2991,17 +2991,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 80(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 84(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 88(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 92(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 96(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 100(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 104(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 108(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 112(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 116(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 120(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 124(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 84(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 88(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 92(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 96(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 100(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 104(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 108(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 112(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 116(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 120(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 124(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    li t0, 4
 ; QCI-QCCMP-PUSH-POP-NEXT:    li a2, 1
 ; QCI-QCCMP-PUSH-POP-NEXT:    li a4, 2
@@ -3014,17 +3014,17 @@ define void @test_spill_call_nest() "interrupt"="qci-nest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 0(sp)
 ; QCI-QCCMP-PUSH-POP-NEXT:    call function_with_one_stack_arg
 ; QCI-QCCMP-PUSH-POP-NEXT:    call use_i64
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 124(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 120(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 116(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 112(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 108(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 104(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 100(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 96(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 92(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 88(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 84(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 124(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 120(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 116(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 112(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 108(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 104(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 100(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 96(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 92(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 88(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 84(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 80(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -3357,17 +3357,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-NEXT:    sw a0, 20(sp) # 4-byte Folded Spill
 ; QCI-NEXT:    lw a0, 80(s0)
 ; QCI-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
-; QCI-NEXT:    lw s1, 84(s0)
-; QCI-NEXT:    lw s2, 88(s0)
-; QCI-NEXT:    lw s3, 92(s0)
-; QCI-NEXT:    lw s4, 96(s0)
-; QCI-NEXT:    lw s5, 100(s0)
-; QCI-NEXT:    lw s6, 104(s0)
-; QCI-NEXT:    lw s7, 108(s0)
-; QCI-NEXT:    lw s8, 112(s0)
-; QCI-NEXT:    lw s9, 116(s0)
-; QCI-NEXT:    lw s10, 120(s0)
-; QCI-NEXT:    lw s11, 124(s0)
+; QCI-NEXT:    lw s11, 84(s0)
+; QCI-NEXT:    lw s1, 88(s0)
+; QCI-NEXT:    lw s2, 92(s0)
+; QCI-NEXT:    lw s3, 96(s0)
+; QCI-NEXT:    lw s4, 100(s0)
+; QCI-NEXT:    lw s5, 104(s0)
+; QCI-NEXT:    lw s6, 108(s0)
+; QCI-NEXT:    lw s7, 112(s0)
+; QCI-NEXT:    lw s8, 116(s0)
+; QCI-NEXT:    lw s9, 120(s0)
+; QCI-NEXT:    lw s10, 124(s0)
 ; QCI-NEXT:    li t0, 4
 ; QCI-NEXT:    li a2, 1
 ; QCI-NEXT:    li a4, 2
@@ -3380,17 +3380,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-NEXT:    sw t0, 0(sp)
 ; QCI-NEXT:    call function_with_one_stack_arg
 ; QCI-NEXT:    call use_i64
-; QCI-NEXT:    sw s11, 124(s0)
-; QCI-NEXT:    sw s10, 120(s0)
-; QCI-NEXT:    sw s9, 116(s0)
-; QCI-NEXT:    sw s8, 112(s0)
-; QCI-NEXT:    sw s7, 108(s0)
-; QCI-NEXT:    sw s6, 104(s0)
-; QCI-NEXT:    sw s5, 100(s0)
-; QCI-NEXT:    sw s4, 96(s0)
-; QCI-NEXT:    sw s3, 92(s0)
-; QCI-NEXT:    sw s2, 88(s0)
-; QCI-NEXT:    sw s1, 84(s0)
+; QCI-NEXT:    sw s10, 124(s0)
+; QCI-NEXT:    sw s9, 120(s0)
+; QCI-NEXT:    sw s8, 116(s0)
+; QCI-NEXT:    sw s7, 112(s0)
+; QCI-NEXT:    sw s6, 108(s0)
+; QCI-NEXT:    sw s5, 104(s0)
+; QCI-NEXT:    sw s4, 100(s0)
+; QCI-NEXT:    sw s3, 96(s0)
+; QCI-NEXT:    sw s2, 92(s0)
+; QCI-NEXT:    sw s1, 88(s0)
+; QCI-NEXT:    sw s11, 84(s0)
 ; QCI-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
 ; QCI-NEXT:    sw a0, 80(s0)
 ; QCI-NEXT:    lw a0, 20(sp) # 4-byte Folded Reload
@@ -3734,17 +3734,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-PUSH-POP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-PUSH-POP-NEXT:    lw a0, 80(s0)
 ; QCI-PUSH-POP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-PUSH-POP-NEXT:    lw s1, 84(s0)
-; QCI-PUSH-POP-NEXT:    lw s2, 88(s0)
-; QCI-PUSH-POP-NEXT:    lw s3, 92(s0)
-; QCI-PUSH-POP-NEXT:    lw s4, 96(s0)
-; QCI-PUSH-POP-NEXT:    lw s5, 100(s0)
-; QCI-PUSH-POP-NEXT:    lw s6, 104(s0)
-; QCI-PUSH-POP-NEXT:    lw s7, 108(s0)
-; QCI-PUSH-POP-NEXT:    lw s8, 112(s0)
-; QCI-PUSH-POP-NEXT:    lw s9, 116(s0)
-; QCI-PUSH-POP-NEXT:    lw s10, 120(s0)
-; QCI-PUSH-POP-NEXT:    lw s11, 124(s0)
+; QCI-PUSH-POP-NEXT:    lw s11, 84(s0)
+; QCI-PUSH-POP-NEXT:    lw s1, 88(s0)
+; QCI-PUSH-POP-NEXT:    lw s2, 92(s0)
+; QCI-PUSH-POP-NEXT:    lw s3, 96(s0)
+; QCI-PUSH-POP-NEXT:    lw s4, 100(s0)
+; QCI-PUSH-POP-NEXT:    lw s5, 104(s0)
+; QCI-PUSH-POP-NEXT:    lw s6, 108(s0)
+; QCI-PUSH-POP-NEXT:    lw s7, 112(s0)
+; QCI-PUSH-POP-NEXT:    lw s8, 116(s0)
+; QCI-PUSH-POP-NEXT:    lw s9, 120(s0)
+; QCI-PUSH-POP-NEXT:    lw s10, 124(s0)
 ; QCI-PUSH-POP-NEXT:    li t0, 4
 ; QCI-PUSH-POP-NEXT:    li a2, 1
 ; QCI-PUSH-POP-NEXT:    li a4, 2
@@ -3757,17 +3757,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-PUSH-POP-NEXT:    sw t0, 0(sp)
 ; QCI-PUSH-POP-NEXT:    call function_with_one_stack_arg
 ; QCI-PUSH-POP-NEXT:    call use_i64
-; QCI-PUSH-POP-NEXT:    sw s11, 124(s0)
-; QCI-PUSH-POP-NEXT:    sw s10, 120(s0)
-; QCI-PUSH-POP-NEXT:    sw s9, 116(s0)
-; QCI-PUSH-POP-NEXT:    sw s8, 112(s0)
-; QCI-PUSH-POP-NEXT:    sw s7, 108(s0)
-; QCI-PUSH-POP-NEXT:    sw s6, 104(s0)
-; QCI-PUSH-POP-NEXT:    sw s5, 100(s0)
-; QCI-PUSH-POP-NEXT:    sw s4, 96(s0)
-; QCI-PUSH-POP-NEXT:    sw s3, 92(s0)
-; QCI-PUSH-POP-NEXT:    sw s2, 88(s0)
-; QCI-PUSH-POP-NEXT:    sw s1, 84(s0)
+; QCI-PUSH-POP-NEXT:    sw s10, 124(s0)
+; QCI-PUSH-POP-NEXT:    sw s9, 120(s0)
+; QCI-PUSH-POP-NEXT:    sw s8, 116(s0)
+; QCI-PUSH-POP-NEXT:    sw s7, 112(s0)
+; QCI-PUSH-POP-NEXT:    sw s6, 108(s0)
+; QCI-PUSH-POP-NEXT:    sw s5, 104(s0)
+; QCI-PUSH-POP-NEXT:    sw s4, 100(s0)
+; QCI-PUSH-POP-NEXT:    sw s3, 96(s0)
+; QCI-PUSH-POP-NEXT:    sw s2, 92(s0)
+; QCI-PUSH-POP-NEXT:    sw s1, 88(s0)
+; QCI-PUSH-POP-NEXT:    sw s11, 84(s0)
 ; QCI-PUSH-POP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-PUSH-POP-NEXT:    sw a0, 80(s0)
 ; QCI-PUSH-POP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -3907,17 +3907,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 80(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 84(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 88(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 92(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 96(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 100(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 104(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 108(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 112(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 116(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 120(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 124(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s11, 84(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s1, 88(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s2, 92(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s3, 96(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s4, 100(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s5, 104(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s6, 108(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s7, 112(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s8, 116(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s9, 120(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    lw s10, 124(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    li t0, 4
 ; QCI-QCCMP-PUSH-POP-NEXT:    li a2, 1
 ; QCI-QCCMP-PUSH-POP-NEXT:    li a4, 2
@@ -3930,17 +3930,17 @@ define void @test_spill_call_nonest() "interrupt"="qci-nonest" {
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw t0, 0(sp)
 ; QCI-QCCMP-PUSH-POP-NEXT:    call function_with_one_stack_arg
 ; QCI-QCCMP-PUSH-POP-NEXT:    call use_i64
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 124(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 120(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 116(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 112(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 108(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 104(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 100(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 96(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 92(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 88(s0)
-; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 84(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s10, 124(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s9, 120(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s8, 116(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s7, 112(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s6, 108(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s5, 104(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s4, 100(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s3, 96(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s2, 92(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s1, 88(s0)
+; QCI-QCCMP-PUSH-POP-NEXT:    sw s11, 84(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; QCI-QCCMP-PUSH-POP-NEXT:    sw a0, 80(s0)
 ; QCI-QCCMP-PUSH-POP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
index a95902995fe37..4bda8441ee88c 100644
--- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
@@ -1499,87 +1499,87 @@ define <16 x i8> @buildvec_v16i8_loads_contigous(ptr %p) {
 ; RVA22U64:       # %bb.0:
 ; RVA22U64-NEXT:    lbu a1, 1(a0)
 ; RVA22U64-NEXT:    lbu a2, 0(a0)
-; RVA22U64-NEXT:    lbu a7, 2(a0)
+; RVA22U64-NEXT:    lbu a3, 2(a0)
 ; RVA22U64-NEXT:    lbu a4, 3(a0)
 ; RVA22U64-NEXT:    lbu a5, 4(a0)
 ; RVA22U64-NEXT:    slli a1, a1, 8
 ; RVA22U64-NEXT:    or a1, a1, a2
 ; RVA22U64-NEXT:    lbu a2, 5(a0)
 ; RVA22U64-NEXT:    lbu a6, 6(a0)
-; RVA22U64-NEXT:    lbu a3, 7(a0)
-; RVA22U64-NEXT:    slli a7, a7, 16
+; RVA22U64-NEXT:    lbu a7, 7(a0)
+; RVA22U64-NEXT:    slli a3, a3, 16
 ; RVA22U64-NEXT:    slli a4, a4, 24
-; RVA22U64-NEXT:    or a4, a4, a7
+; RVA22U64-NEXT:    or a3, a3, a4
 ; RVA22U64-NEXT:    slli a5, a5, 32
-; RVA22U64-NEXT:    or a7, a1, a4
+; RVA22U64-NEXT:    or a1, a1, a3
 ; RVA22U64-NEXT:    slli a2, a2, 40
-; RVA22U64-NEXT:    lbu a4, 8(a0)
-; RVA22U64-NEXT:    lbu a1, 9(a0)
+; RVA22U64-NEXT:    lbu a3, 8(a0)
+; RVA22U64-NEXT:    lbu a4, 9(a0)
 ; RVA22U64-NEXT:    slli a6, a6, 48
-; RVA22U64-NEXT:    slli a3, a3, 56
+; RVA22U64-NEXT:    slli a7, a7, 56
 ; RVA22U64-NEXT:    or a2, a2, a5
-; RVA22U64-NEXT:    or a3, a3, a6
-; RVA22U64-NEXT:    or a2, a2, a3
-; RVA22U64-NEXT:    lbu a3, 10(a0)
-; RVA22U64-NEXT:    lbu a5, 11(a0)
-; RVA22U64-NEXT:    slli a1, a1, 8
-; RVA22U64-NEXT:    or a7, a7, a2
-; RVA22U64-NEXT:    or a6, a4, a1
-; RVA22U64-NEXT:    lbu a4, 12(a0)
-; RVA22U64-NEXT:    lbu a1, 13(a0)
-; RVA22U64-NEXT:    lbu a2, 14(a0)
+; RVA22U64-NEXT:    or a5, a7, a6
+; RVA22U64-NEXT:    or a2, a2, a5
+; RVA22U64-NEXT:    lbu a5, 10(a0)
+; RVA22U64-NEXT:    lbu a6, 11(a0)
+; RVA22U64-NEXT:    slli a4, a4, 8
+; RVA22U64-NEXT:    or a1, a1, a2
+; RVA22U64-NEXT:    or a3, a3, a4
+; RVA22U64-NEXT:    lbu a2, 12(a0)
+; RVA22U64-NEXT:    lbu a4, 13(a0)
+; RVA22U64-NEXT:    lbu a7, 14(a0)
 ; RVA22U64-NEXT:    lbu a0, 15(a0)
-; RVA22U64-NEXT:    slli a3, a3, 16
-; RVA22U64-NEXT:    slli a5, a5, 24
-; RVA22U64-NEXT:    or a3, a3, a5
+; RVA22U64-NEXT:    slli a5, a5, 16
+; RVA22U64-NEXT:    slli a6, a6, 24
+; RVA22U64-NEXT:    or a5, a6, a5
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-NEXT:    vmv.v.x v8, a7
-; RVA22U64-NEXT:    slli a4, a4, 32
-; RVA22U64-NEXT:    slli a1, a1, 40
-; RVA22U64-NEXT:    slli a2, a2, 48
+; RVA22U64-NEXT:    vmv.v.x v8, a1
+; RVA22U64-NEXT:    slli a2, a2, 32
+; RVA22U64-NEXT:    slli a4, a4, 40
+; RVA22U64-NEXT:    slli a7, a7, 48
 ; RVA22U64-NEXT:    slli a0, a0, 56
-; RVA22U64-NEXT:    or a1, a1, a4
-; RVA22U64-NEXT:    or a0, a0, a2
-; RVA22U64-NEXT:    or a2, a6, a3
-; RVA22U64-NEXT:    or a0, a0, a1
+; RVA22U64-NEXT:    or a2, a2, a4
+; RVA22U64-NEXT:    or a0, a0, a7
+; RVA22U64-NEXT:    or a3, a3, a5
 ; RVA22U64-NEXT:    or a0, a0, a2
+; RVA22U64-NEXT:    or a0, a0, a3
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-NEXT:    ret
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_loads_contigous:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    lbu a6, 0(a0)
-; RVA22U64-PACK-NEXT:    lbu a7, 1(a0)
-; RVA22U64-PACK-NEXT:    lbu t0, 2(a0)
+; RVA22U64-PACK-NEXT:    lbu a1, 0(a0)
+; RVA22U64-PACK-NEXT:    lbu a2, 1(a0)
+; RVA22U64-PACK-NEXT:    lbu a3, 2(a0)
 ; RVA22U64-PACK-NEXT:    lbu a4, 3(a0)
 ; RVA22U64-PACK-NEXT:    lbu a5, 4(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 5(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 6(a0)
-; RVA22U64-PACK-NEXT:    lbu a3, 7(a0)
-; RVA22U64-PACK-NEXT:    packh a6, a6, a7
-; RVA22U64-PACK-NEXT:    packh t0, t0, a4
-; RVA22U64-PACK-NEXT:    packh a7, a5, a1
-; RVA22U64-PACK-NEXT:    packh t1, a2, a3
-; RVA22U64-PACK-NEXT:    lbu t3, 8(a0)
-; RVA22U64-PACK-NEXT:    lbu t5, 9(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 10(a0)
-; RVA22U64-PACK-NEXT:    lbu a4, 11(a0)
-; RVA22U64-PACK-NEXT:    lbu t2, 12(a0)
-; RVA22U64-PACK-NEXT:    lbu t4, 13(a0)
-; RVA22U64-PACK-NEXT:    lbu a3, 14(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 5(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 6(a0)
+; RVA22U64-PACK-NEXT:    lbu t0, 7(a0)
+; RVA22U64-PACK-NEXT:    packh a1, a1, a2
+; RVA22U64-PACK-NEXT:    packh a2, a3, a4
+; RVA22U64-PACK-NEXT:    packh a3, a5, a6
+; RVA22U64-PACK-NEXT:    packh a4, a7, t0
+; RVA22U64-PACK-NEXT:    lbu a5, 8(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 9(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 10(a0)
+; RVA22U64-PACK-NEXT:    lbu t0, 11(a0)
+; RVA22U64-PACK-NEXT:    lbu t1, 12(a0)
+; RVA22U64-PACK-NEXT:    lbu t2, 13(a0)
+; RVA22U64-PACK-NEXT:    lbu t3, 14(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 15(a0)
-; RVA22U64-PACK-NEXT:    packw a2, a6, t0
-; RVA22U64-PACK-NEXT:    packw a5, a7, t1
-; RVA22U64-PACK-NEXT:    pack a2, a2, a5
-; RVA22U64-PACK-NEXT:    packh a5, t3, t5
-; RVA22U64-PACK-NEXT:    packh a1, a1, a4
+; RVA22U64-PACK-NEXT:    packw a1, a1, a2
+; RVA22U64-PACK-NEXT:    packw a2, a3, a4
+; RVA22U64-PACK-NEXT:    pack a1, a1, a2
+; RVA22U64-PACK-NEXT:    packh a2, a5, a6
+; RVA22U64-PACK-NEXT:    packh a3, a7, t0
 ; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-PACK-NEXT:    vmv.v.x v8, a2
-; RVA22U64-PACK-NEXT:    packh a2, t2, t4
-; RVA22U64-PACK-NEXT:    packh a0, a3, a0
-; RVA22U64-PACK-NEXT:    packw a1, a5, a1
-; RVA22U64-PACK-NEXT:    packw a0, a2, a0
-; RVA22U64-PACK-NEXT:    pack a0, a1, a0
+; RVA22U64-PACK-NEXT:    vmv.v.x v8, a1
+; RVA22U64-PACK-NEXT:    packh a1, t1, t2
+; RVA22U64-PACK-NEXT:    packh a0, t3, a0
+; RVA22U64-PACK-NEXT:    packw a2, a2, a3
+; RVA22U64-PACK-NEXT:    packw a0, a1, a0
+; RVA22U64-PACK-NEXT:    pack a0, a2, a0
 ; RVA22U64-PACK-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-PACK-NEXT:    ret
 ;
@@ -1847,50 +1847,50 @@ define <16 x i8> @buildvec_v16i8_loads_gather(ptr %p) {
 ;
 ; RVA22U64-LABEL: buildvec_v16i8_loads_gather:
 ; RVA22U64:       # %bb.0:
-; RVA22U64-NEXT:    lbu a7, 1(a0)
+; RVA22U64-NEXT:    lbu a1, 1(a0)
 ; RVA22U64-NEXT:    lbu a2, 22(a0)
-; RVA22U64-NEXT:    lbu t0, 0(a0)
+; RVA22U64-NEXT:    lbu a3, 0(a0)
 ; RVA22U64-NEXT:    lbu a4, 31(a0)
-; RVA22U64-NEXT:    lbu a6, 623(a0)
-; RVA22U64-NEXT:    lbu a5, 44(a0)
-; RVA22U64-NEXT:    lbu t1, 55(a0)
-; RVA22U64-NEXT:    lbu a3, 75(a0)
-; RVA22U64-NEXT:    slli a7, a7, 8
+; RVA22U64-NEXT:    lbu a5, 623(a0)
+; RVA22U64-NEXT:    lbu a6, 44(a0)
+; RVA22U64-NEXT:    lbu a7, 55(a0)
+; RVA22U64-NEXT:    lbu t0, 75(a0)
+; RVA22U64-NEXT:    slli a1, a1, 8
 ; RVA22U64-NEXT:    slli a2, a2, 16
 ; RVA22U64-NEXT:    slli a4, a4, 24
-; RVA22U64-NEXT:    or a1, t0, a7
+; RVA22U64-NEXT:    or a1, a1, a3
 ; RVA22U64-NEXT:    or a2, a2, a4
-; RVA22U64-NEXT:    lbu a7, 82(a0)
-; RVA22U64-NEXT:    or t0, a1, a2
-; RVA22U64-NEXT:    slli a5, a5, 32
-; RVA22U64-NEXT:    slli t1, t1, 40
-; RVA22U64-NEXT:    slli a6, a6, 48
-; RVA22U64-NEXT:    slli a3, a3, 56
+; RVA22U64-NEXT:    lbu a3, 82(a0)
+; RVA22U64-NEXT:    or a1, a1, a2
+; RVA22U64-NEXT:    slli a6, a6, 32
+; RVA22U64-NEXT:    slli a7, a7, 40
+; RVA22U64-NEXT:    slli a5, a5, 48
+; RVA22U64-NEXT:    slli t0, t0, 56
 ; RVA22U64-NEXT:    lbu a2, 93(a0)
-; RVA22U64-NEXT:    or a5, t1, a5
-; RVA22U64-NEXT:    or a3, a3, a6
-; RVA22U64-NEXT:    or a3, a3, a5
+; RVA22U64-NEXT:    or a4, a7, a6
+; RVA22U64-NEXT:    or a5, t0, a5
+; RVA22U64-NEXT:    or a4, a4, a5
 ; RVA22U64-NEXT:    lbu a5, 161(a0)
-; RVA22U64-NEXT:    lbu a4, 105(a0)
-; RVA22U64-NEXT:    lbu t1, 124(a0)
-; RVA22U64-NEXT:    lbu a6, 144(a0)
+; RVA22U64-NEXT:    lbu a6, 105(a0)
+; RVA22U64-NEXT:    lbu a7, 124(a0)
+; RVA22U64-NEXT:    lbu t0, 144(a0)
 ; RVA22U64-NEXT:    slli a2, a2, 8
-; RVA22U64-NEXT:    lbu a1, 154(a0)
+; RVA22U64-NEXT:    lbu t1, 154(a0)
 ; RVA22U64-NEXT:    lbu a0, 163(a0)
-; RVA22U64-NEXT:    or a3, t0, a3
-; RVA22U64-NEXT:    or a2, a7, a2
-; RVA22U64-NEXT:    slli a4, a4, 16
+; RVA22U64-NEXT:    or a1, a1, a4
+; RVA22U64-NEXT:    or a2, a2, a3
+; RVA22U64-NEXT:    slli a6, a6, 16
 ; RVA22U64-NEXT:    slli a5, a5, 24
-; RVA22U64-NEXT:    or a4, a4, a5
+; RVA22U64-NEXT:    or a3, a5, a6
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-NEXT:    vmv.v.x v8, a3
-; RVA22U64-NEXT:    slli t1, t1, 32
+; RVA22U64-NEXT:    vmv.v.x v8, a1
+; RVA22U64-NEXT:    slli a7, a7, 32
 ; RVA22U64-NEXT:    slli a0, a0, 40
-; RVA22U64-NEXT:    slli a6, a6, 48
-; RVA22U64-NEXT:    slli a1, a1, 56
-; RVA22U64-NEXT:    or a0, a0, t1
-; RVA22U64-NEXT:    or a1, a1, a6
-; RVA22U64-NEXT:    or a2, a2, a4
+; RVA22U64-NEXT:    slli t0, t0, 48
+; RVA22U64-NEXT:    slli t1, t1, 56
+; RVA22U64-NEXT:    or a0, a0, a7
+; RVA22U64-NEXT:    or a1, t1, t0
+; RVA22U64-NEXT:    or a2, a2, a3
 ; RVA22U64-NEXT:    or a0, a0, a1
 ; RVA22U64-NEXT:    or a0, a0, a2
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, a0
@@ -1898,38 +1898,38 @@ define <16 x i8> @buildvec_v16i8_loads_gather(ptr %p) {
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_loads_gather:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    lbu a6, 0(a0)
-; RVA22U64-PACK-NEXT:    lbu a7, 1(a0)
-; RVA22U64-PACK-NEXT:    lbu t0, 22(a0)
+; RVA22U64-PACK-NEXT:    lbu a1, 0(a0)
+; RVA22U64-PACK-NEXT:    lbu a2, 1(a0)
+; RVA22U64-PACK-NEXT:    lbu a3, 22(a0)
 ; RVA22U64-PACK-NEXT:    lbu a4, 31(a0)
 ; RVA22U64-PACK-NEXT:    lbu a5, 44(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 55(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 623(a0)
-; RVA22U64-PACK-NEXT:    lbu a3, 75(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 55(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 623(a0)
+; RVA22U64-PACK-NEXT:    lbu t0, 75(a0)
 ; RVA22U64-PACK-NEXT:    lbu t1, 82(a0)
-; RVA22U64-PACK-NEXT:    packh a6, a6, a7
-; RVA22U64-PACK-NEXT:    packh t2, t0, a4
-; RVA22U64-PACK-NEXT:    packh a7, a5, a1
-; RVA22U64-PACK-NEXT:    packh t3, a2, a3
-; RVA22U64-PACK-NEXT:    lbu t0, 93(a0)
-; RVA22U64-PACK-NEXT:    lbu t4, 154(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 161(a0)
-; RVA22U64-PACK-NEXT:    lbu t5, 163(a0)
-; RVA22U64-PACK-NEXT:    lbu a4, 105(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 124(a0)
+; RVA22U64-PACK-NEXT:    packh a1, a1, a2
+; RVA22U64-PACK-NEXT:    packh a2, a3, a4
+; RVA22U64-PACK-NEXT:    packh a3, a5, a6
+; RVA22U64-PACK-NEXT:    packh a4, a7, t0
+; RVA22U64-PACK-NEXT:    lbu a5, 93(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 154(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 161(a0)
+; RVA22U64-PACK-NEXT:    lbu t0, 163(a0)
+; RVA22U64-PACK-NEXT:    lbu t2, 105(a0)
+; RVA22U64-PACK-NEXT:    lbu t3, 124(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 144(a0)
-; RVA22U64-PACK-NEXT:    packw a5, a6, t2
-; RVA22U64-PACK-NEXT:    packw a3, a7, t3
-; RVA22U64-PACK-NEXT:    pack a3, a5, a3
-; RVA22U64-PACK-NEXT:    packh a5, t1, t0
-; RVA22U64-PACK-NEXT:    packh a1, a4, a1
+; RVA22U64-PACK-NEXT:    packw a1, a1, a2
+; RVA22U64-PACK-NEXT:    packw a2, a3, a4
+; RVA22U64-PACK-NEXT:    pack a1, a1, a2
+; RVA22U64-PACK-NEXT:    packh a2, t1, a5
+; RVA22U64-PACK-NEXT:    packh a3, t2, a7
 ; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-PACK-NEXT:    vmv.v.x v8, a3
-; RVA22U64-PACK-NEXT:    packh a2, a2, t5
-; RVA22U64-PACK-NEXT:    packh a0, a0, t4
-; RVA22U64-PACK-NEXT:    packw a1, a5, a1
-; RVA22U64-PACK-NEXT:    packw a0, a2, a0
-; RVA22U64-PACK-NEXT:    pack a0, a1, a0
+; RVA22U64-PACK-NEXT:    vmv.v.x v8, a1
+; RVA22U64-PACK-NEXT:    packh a1, t3, t0
+; RVA22U64-PACK-NEXT:    packh a0, a0, a6
+; RVA22U64-PACK-NEXT:    packw a2, a2, a3
+; RVA22U64-PACK-NEXT:    packw a0, a1, a0
+; RVA22U64-PACK-NEXT:    pack a0, a2, a0
 ; RVA22U64-PACK-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-PACK-NEXT:    ret
 ;
@@ -2126,53 +2126,53 @@ define <16 x i8> @buildvec_v16i8_undef_low_half(ptr %p) {
 ; RVA22U64:       # %bb.0:
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
 ; RVA22U64-NEXT:    vmv.v.i v8, 0
-; RVA22U64-NEXT:    lbu a6, 93(a0)
-; RVA22U64-NEXT:    lbu a7, 161(a0)
+; RVA22U64-NEXT:    lbu a1, 93(a0)
+; RVA22U64-NEXT:    lbu a2, 161(a0)
 ; RVA22U64-NEXT:    lbu a3, 105(a0)
 ; RVA22U64-NEXT:    lbu a4, 82(a0)
 ; RVA22U64-NEXT:    lbu a5, 124(a0)
-; RVA22U64-NEXT:    lbu a1, 163(a0)
-; RVA22U64-NEXT:    lbu a2, 144(a0)
+; RVA22U64-NEXT:    lbu a6, 163(a0)
+; RVA22U64-NEXT:    lbu a7, 144(a0)
 ; RVA22U64-NEXT:    lbu a0, 154(a0)
-; RVA22U64-NEXT:    slli a6, a6, 8
+; RVA22U64-NEXT:    slli a1, a1, 8
 ; RVA22U64-NEXT:    slli a3, a3, 16
-; RVA22U64-NEXT:    slli a7, a7, 24
-; RVA22U64-NEXT:    or a4, a4, a6
-; RVA22U64-NEXT:    or a3, a7, a3
+; RVA22U64-NEXT:    slli a2, a2, 24
+; RVA22U64-NEXT:    or a1, a1, a4
+; RVA22U64-NEXT:    or a2, a2, a3
 ; RVA22U64-NEXT:    slli a5, a5, 32
-; RVA22U64-NEXT:    slli a1, a1, 40
-; RVA22U64-NEXT:    slli a2, a2, 48
+; RVA22U64-NEXT:    slli a6, a6, 40
+; RVA22U64-NEXT:    slli a7, a7, 48
 ; RVA22U64-NEXT:    slli a0, a0, 56
-; RVA22U64-NEXT:    or a1, a1, a5
-; RVA22U64-NEXT:    or a0, a0, a2
-; RVA22U64-NEXT:    or a3, a3, a4
-; RVA22U64-NEXT:    or a0, a0, a1
+; RVA22U64-NEXT:    or a3, a6, a5
+; RVA22U64-NEXT:    or a0, a0, a7
+; RVA22U64-NEXT:    or a1, a1, a2
 ; RVA22U64-NEXT:    or a0, a0, a3
+; RVA22U64-NEXT:    or a0, a0, a1
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-NEXT:    ret
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_undef_low_half:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    packh a6, a0, a0
-; RVA22U64-PACK-NEXT:    lbu a7, 82(a0)
-; RVA22U64-PACK-NEXT:    lbu t0, 93(a0)
-; RVA22U64-PACK-NEXT:    lbu t1, 105(a0)
-; RVA22U64-PACK-NEXT:    lbu t2, 124(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 161(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 144(a0)
-; RVA22U64-PACK-NEXT:    lbu a3, 154(a0)
+; RVA22U64-PACK-NEXT:    packh a1, a0, a0
+; RVA22U64-PACK-NEXT:    lbu a2, 82(a0)
+; RVA22U64-PACK-NEXT:    lbu a3, 93(a0)
+; RVA22U64-PACK-NEXT:    lbu a4, 105(a0)
+; RVA22U64-PACK-NEXT:    lbu a5, 124(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 161(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 144(a0)
+; RVA22U64-PACK-NEXT:    lbu t0, 154(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 163(a0)
-; RVA22U64-PACK-NEXT:    packw a4, a6, a6
-; RVA22U64-PACK-NEXT:    packh a5, a7, t0
-; RVA22U64-PACK-NEXT:    pack a4, a4, a4
-; RVA22U64-PACK-NEXT:    packh a1, t1, a1
-; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-PACK-NEXT:    vmv.v.x v8, a4
-; RVA22U64-PACK-NEXT:    packh a0, t2, a0
+; RVA22U64-PACK-NEXT:    packw a1, a1, a1
 ; RVA22U64-PACK-NEXT:    packh a2, a2, a3
-; RVA22U64-PACK-NEXT:    packw a1, a5, a1
-; RVA22U64-PACK-NEXT:    packw a0, a0, a2
-; RVA22U64-PACK-NEXT:    pack a0, a1, a0
+; RVA22U64-PACK-NEXT:    pack a1, a1, a1
+; RVA22U64-PACK-NEXT:    packh a3, a4, a6
+; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
+; RVA22U64-PACK-NEXT:    vmv.v.x v8, a1
+; RVA22U64-PACK-NEXT:    packh a0, a5, a0
+; RVA22U64-PACK-NEXT:    packh a1, a7, t0
+; RVA22U64-PACK-NEXT:    packw a2, a2, a3
+; RVA22U64-PACK-NEXT:    packw a0, a0, a1
+; RVA22U64-PACK-NEXT:    pack a0, a2, a0
 ; RVA22U64-PACK-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-PACK-NEXT:    ret
 ;
@@ -2326,28 +2326,28 @@ define <16 x i8> @buildvec_v16i8_undef_high_half(ptr %p) {
 ;
 ; RVA22U64-LABEL: buildvec_v16i8_undef_high_half:
 ; RVA22U64:       # %bb.0:
-; RVA22U64-NEXT:    lbu a6, 1(a0)
-; RVA22U64-NEXT:    lbu a7, 22(a0)
+; RVA22U64-NEXT:    lbu a1, 1(a0)
+; RVA22U64-NEXT:    lbu a2, 22(a0)
 ; RVA22U64-NEXT:    lbu a3, 31(a0)
 ; RVA22U64-NEXT:    lbu a4, 0(a0)
 ; RVA22U64-NEXT:    lbu a5, 623(a0)
-; RVA22U64-NEXT:    lbu a1, 44(a0)
-; RVA22U64-NEXT:    lbu a2, 55(a0)
+; RVA22U64-NEXT:    lbu a6, 44(a0)
+; RVA22U64-NEXT:    lbu a7, 55(a0)
 ; RVA22U64-NEXT:    lbu a0, 75(a0)
-; RVA22U64-NEXT:    slli a6, a6, 8
-; RVA22U64-NEXT:    slli a7, a7, 16
+; RVA22U64-NEXT:    slli a1, a1, 8
+; RVA22U64-NEXT:    slli a2, a2, 16
 ; RVA22U64-NEXT:    slli a3, a3, 24
-; RVA22U64-NEXT:    or a4, a4, a6
-; RVA22U64-NEXT:    or a3, a3, a7
-; RVA22U64-NEXT:    slli a1, a1, 32
-; RVA22U64-NEXT:    slli a2, a2, 40
+; RVA22U64-NEXT:    or a1, a1, a4
+; RVA22U64-NEXT:    or a2, a2, a3
+; RVA22U64-NEXT:    slli a6, a6, 32
+; RVA22U64-NEXT:    slli a7, a7, 40
 ; RVA22U64-NEXT:    slli a5, a5, 48
 ; RVA22U64-NEXT:    slli a0, a0, 56
-; RVA22U64-NEXT:    or a1, a1, a2
+; RVA22U64-NEXT:    or a3, a7, a6
 ; RVA22U64-NEXT:    or a0, a0, a5
-; RVA22U64-NEXT:    or a3, a3, a4
-; RVA22U64-NEXT:    or a0, a0, a1
+; RVA22U64-NEXT:    or a1, a1, a2
 ; RVA22U64-NEXT:    or a0, a0, a3
+; RVA22U64-NEXT:    or a0, a0, a1
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
 ; RVA22U64-NEXT:    vmv.v.x v8, a0
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, zero
@@ -2355,21 +2355,21 @@ define <16 x i8> @buildvec_v16i8_undef_high_half(ptr %p) {
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_undef_high_half:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    lbu a6, 0(a0)
-; RVA22U64-PACK-NEXT:    lbu a7, 1(a0)
-; RVA22U64-PACK-NEXT:    lbu t0, 22(a0)
+; RVA22U64-PACK-NEXT:    lbu a1, 0(a0)
+; RVA22U64-PACK-NEXT:    lbu a2, 1(a0)
+; RVA22U64-PACK-NEXT:    lbu a3, 22(a0)
 ; RVA22U64-PACK-NEXT:    lbu a4, 31(a0)
 ; RVA22U64-PACK-NEXT:    lbu a5, 623(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 44(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 55(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 44(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 55(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 75(a0)
-; RVA22U64-PACK-NEXT:    packh a3, a6, a7
-; RVA22U64-PACK-NEXT:    packh a4, t0, a4
 ; RVA22U64-PACK-NEXT:    packh a1, a1, a2
+; RVA22U64-PACK-NEXT:    packh a2, a3, a4
+; RVA22U64-PACK-NEXT:    packh a3, a6, a7
 ; RVA22U64-PACK-NEXT:    packh a0, a5, a0
-; RVA22U64-PACK-NEXT:    packw a2, a3, a4
-; RVA22U64-PACK-NEXT:    packw a0, a1, a0
-; RVA22U64-PACK-NEXT:    pack a0, a2, a0
+; RVA22U64-PACK-NEXT:    packw a1, a1, a2
+; RVA22U64-PACK-NEXT:    packw a0, a3, a0
+; RVA22U64-PACK-NEXT:    pack a0, a1, a0
 ; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
 ; RVA22U64-PACK-NEXT:    vmv.v.x v8, a0
 ; RVA22U64-PACK-NEXT:    packh a0, a0, a0
@@ -2556,9 +2556,9 @@ define <16 x i8> @buildvec_v16i8_undef_edges(ptr %p) {
 ; RVA22U64-NEXT:    slli a4, a4, 56
 ; RVA22U64-NEXT:    or a1, a1, a2
 ; RVA22U64-NEXT:    or a3, a3, a4
-; RVA22U64-NEXT:    lbu a6, 82(a0)
+; RVA22U64-NEXT:    lbu a2, 82(a0)
 ; RVA22U64-NEXT:    lbu a4, 93(a0)
-; RVA22U64-NEXT:    lbu a2, 105(a0)
+; RVA22U64-NEXT:    lbu a6, 105(a0)
 ; RVA22U64-NEXT:    lbu a0, 161(a0)
 ; RVA22U64-NEXT:    or a1, a1, a3
 ; RVA22U64-NEXT:    slli a5, a5, 24
@@ -2566,38 +2566,38 @@ define <16 x i8> @buildvec_v16i8_undef_edges(ptr %p) {
 ; RVA22U64-NEXT:    slli a4, a4, 8
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
 ; RVA22U64-NEXT:    vmv.v.x v8, a1
-; RVA22U64-NEXT:    slli a2, a2, 16
+; RVA22U64-NEXT:    slli a6, a6, 16
 ; RVA22U64-NEXT:    slli a0, a0, 24
-; RVA22U64-NEXT:    or a1, a6, a4
+; RVA22U64-NEXT:    or a2, a2, a4
+; RVA22U64-NEXT:    or a0, a0, a6
 ; RVA22U64-NEXT:    or a0, a0, a2
-; RVA22U64-NEXT:    or a0, a0, a1
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-NEXT:    ret
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_undef_edges:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    packh a6, a0, a0
+; RVA22U64-PACK-NEXT:    packh a1, a0, a0
 ; RVA22U64-PACK-NEXT:    lbu a2, 623(a0)
 ; RVA22U64-PACK-NEXT:    lbu a3, 31(a0)
 ; RVA22U64-PACK-NEXT:    lbu a4, 44(a0)
 ; RVA22U64-PACK-NEXT:    lbu a5, 55(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 75(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 75(a0)
 ; RVA22U64-PACK-NEXT:    packh a3, a0, a3
 ; RVA22U64-PACK-NEXT:    packh a4, a4, a5
-; RVA22U64-PACK-NEXT:    packh a1, a2, a1
-; RVA22U64-PACK-NEXT:    lbu a7, 82(a0)
-; RVA22U64-PACK-NEXT:    lbu a5, 93(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 105(a0)
+; RVA22U64-PACK-NEXT:    packh a2, a2, a6
+; RVA22U64-PACK-NEXT:    lbu a5, 82(a0)
+; RVA22U64-PACK-NEXT:    lbu a6, 93(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 105(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 161(a0)
-; RVA22U64-PACK-NEXT:    packw a1, a4, a1
-; RVA22U64-PACK-NEXT:    packw a3, a6, a3
-; RVA22U64-PACK-NEXT:    pack a1, a3, a1
+; RVA22U64-PACK-NEXT:    packw a2, a4, a2
+; RVA22U64-PACK-NEXT:    packw a3, a1, a3
+; RVA22U64-PACK-NEXT:    pack a2, a3, a2
 ; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-PACK-NEXT:    vmv.v.x v8, a1
-; RVA22U64-PACK-NEXT:    packh a1, a7, a5
-; RVA22U64-PACK-NEXT:    packh a0, a2, a0
-; RVA22U64-PACK-NEXT:    packw a0, a1, a0
-; RVA22U64-PACK-NEXT:    packw a1, a6, a6
+; RVA22U64-PACK-NEXT:    vmv.v.x v8, a2
+; RVA22U64-PACK-NEXT:    packh a2, a5, a6
+; RVA22U64-PACK-NEXT:    packh a0, a7, a0
+; RVA22U64-PACK-NEXT:    packw a0, a2, a0
+; RVA22U64-PACK-NEXT:    packw a1, a1, a1
 ; RVA22U64-PACK-NEXT:    pack a0, a0, a1
 ; RVA22U64-PACK-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-PACK-NEXT:    ret
@@ -2824,30 +2824,30 @@ define <16 x i8> @buildvec_v16i8_loads_undef_scattered(ptr %p) {
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_loads_undef_scattered:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    packh a6, a0, a0
+; RVA22U64-PACK-NEXT:    packh a1, a0, a0
 ; RVA22U64-PACK-NEXT:    lbu a2, 0(a0)
 ; RVA22U64-PACK-NEXT:    lbu a3, 1(a0)
 ; RVA22U64-PACK-NEXT:    lbu a4, 44(a0)
 ; RVA22U64-PACK-NEXT:    lbu a5, 55(a0)
-; RVA22U64-PACK-NEXT:    lbu a1, 75(a0)
-; RVA22U64-PACK-NEXT:    packh a7, a2, a3
+; RVA22U64-PACK-NEXT:    lbu a6, 75(a0)
+; RVA22U64-PACK-NEXT:    packh a2, a2, a3
 ; RVA22U64-PACK-NEXT:    lbu a3, 82(a0)
-; RVA22U64-PACK-NEXT:    lbu a2, 93(a0)
+; RVA22U64-PACK-NEXT:    lbu a7, 93(a0)
 ; RVA22U64-PACK-NEXT:    lbu t0, 124(a0)
 ; RVA22U64-PACK-NEXT:    packh a4, a4, a5
-; RVA22U64-PACK-NEXT:    packh a1, a0, a1
-; RVA22U64-PACK-NEXT:    lbu a5, 144(a0)
+; RVA22U64-PACK-NEXT:    packh a5, a0, a6
+; RVA22U64-PACK-NEXT:    lbu a6, 144(a0)
 ; RVA22U64-PACK-NEXT:    lbu a0, 154(a0)
-; RVA22U64-PACK-NEXT:    packw a1, a4, a1
-; RVA22U64-PACK-NEXT:    packw a4, a7, a6
-; RVA22U64-PACK-NEXT:    pack a1, a4, a1
-; RVA22U64-PACK-NEXT:    packh a2, a3, a2
+; RVA22U64-PACK-NEXT:    packw a4, a4, a5
+; RVA22U64-PACK-NEXT:    packw a2, a2, a1
+; RVA22U64-PACK-NEXT:    pack a2, a2, a4
+; RVA22U64-PACK-NEXT:    packh a3, a3, a7
 ; RVA22U64-PACK-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-PACK-NEXT:    vmv.v.x v8, a1
-; RVA22U64-PACK-NEXT:    packh a0, a5, a0
-; RVA22U64-PACK-NEXT:    packh a1, t0, a0
-; RVA22U64-PACK-NEXT:    packw a0, a1, a0
-; RVA22U64-PACK-NEXT:    packw a1, a2, a6
+; RVA22U64-PACK-NEXT:    vmv.v.x v8, a2
+; RVA22U64-PACK-NEXT:    packh a0, a6, a0
+; RVA22U64-PACK-NEXT:    packh a2, t0, a0
+; RVA22U64-PACK-NEXT:    packw a0, a2, a0
+; RVA22U64-PACK-NEXT:    packw a1, a3, a1
 ; RVA22U64-PACK-NEXT:    pack a0, a1, a0
 ; RVA22U64-PACK-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-PACK-NEXT:    ret
diff --git a/llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll b/llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
index c5b1572c0cd6c..2daba2d57367f 100644
--- a/llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
@@ -29463,18 +29463,18 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_P1(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB850_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -29486,9 +29486,9 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_P1(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v26, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB850_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB850_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB850_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -29638,18 +29638,18 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_PALL(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB851_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -29661,9 +29661,9 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_PALL(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v26, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB851_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB851_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB851_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -29813,18 +29813,18 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_S1(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB852_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -29836,9 +29836,9 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_S1(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v26, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB852_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB852_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB852_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -29988,18 +29988,18 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_ALL(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB853_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -30011,9 +30011,9 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_ALL(<vscale x 32 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v26, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB853_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB853_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB853_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -30162,18 +30162,18 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_DEFAULT(<vscale x
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB854_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -30185,9 +30185,9 @@ define <vscale x 32 x i8> @test_nontemporal_vp_gather_nxv32i8_DEFAULT(<vscale x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v26, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB854_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB854_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB854_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -30378,26 +30378,26 @@ define void @test_nontemporal_vp_scatter_nxv32i8_P1(<vscale x 32 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB855_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB855_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB855_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
 ; CHECK-RV64VC-NEXT:    mv a0, a1
 ; CHECK-RV64VC-NEXT:  .LBB855_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v8, (a6) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
 ; CHECK-RV64VC-NEXT:    csrr a5, vlenb
 ; CHECK-RV64VC-NEXT:    slli a5, a5, 4
 ; CHECK-RV64VC-NEXT:    add a5, a5, sp
@@ -30615,26 +30615,26 @@ define void @test_nontemporal_vp_scatter_nxv32i8_PALL(<vscale x 32 x i8> %val, <
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB856_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB856_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB856_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
 ; CHECK-RV64VC-NEXT:    mv a0, a1
 ; CHECK-RV64VC-NEXT:  .LBB856_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v8, (a6) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
 ; CHECK-RV64VC-NEXT:    csrr a5, vlenb
 ; CHECK-RV64VC-NEXT:    slli a5, a5, 4
 ; CHECK-RV64VC-NEXT:    add a5, a5, sp
@@ -30852,26 +30852,26 @@ define void @test_nontemporal_vp_scatter_nxv32i8_S1(<vscale x 32 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB857_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB857_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB857_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
 ; CHECK-RV64VC-NEXT:    mv a0, a1
 ; CHECK-RV64VC-NEXT:  .LBB857_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v8, (a6) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
 ; CHECK-RV64VC-NEXT:    csrr a5, vlenb
 ; CHECK-RV64VC-NEXT:    slli a5, a5, 4
 ; CHECK-RV64VC-NEXT:    add a5, a5, sp
@@ -31089,26 +31089,26 @@ define void @test_nontemporal_vp_scatter_nxv32i8_ALL(<vscale x 32 x i8> %val, <v
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB858_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB858_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB858_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
 ; CHECK-RV64VC-NEXT:    mv a0, a1
 ; CHECK-RV64VC-NEXT:  .LBB858_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v8, (a6) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
 ; CHECK-RV64VC-NEXT:    csrr a5, vlenb
 ; CHECK-RV64VC-NEXT:    slli a5, a5, 4
 ; CHECK-RV64VC-NEXT:    add a5, a5, sp
@@ -31325,26 +31325,26 @@ define void @test_nontemporal_vp_scatter_nxv32i8_DEFAULT(<vscale x 32 x i8> %val
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB859_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB859_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a6, a6, a0
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB859_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
 ; CHECK-RV64VC-NEXT:    mv a0, a1
 ; CHECK-RV64VC-NEXT:  .LBB859_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v8, (a6) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v8, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
 ; CHECK-RV64VC-NEXT:    csrr a5, vlenb
 ; CHECK-RV64VC-NEXT:    slli a5, a5, 4
 ; CHECK-RV64VC-NEXT:    add a5, a5, sp
@@ -32177,18 +32177,18 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_P1(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB880_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -32200,9 +32200,9 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_P1(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB880_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB880_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB880_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -32352,18 +32352,18 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_PALL(<vscale x 3
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB881_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -32375,9 +32375,9 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_PALL(<vscale x 3
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB881_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB881_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB881_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -32527,18 +32527,18 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_S1(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB882_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -32550,9 +32550,9 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_S1(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB882_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB882_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB882_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -32702,18 +32702,18 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_ALL(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB883_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -32725,9 +32725,9 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_ALL(<vscale x 32
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB883_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB883_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB883_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -32876,18 +32876,18 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_DEFAULT(<vscale
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 1
-; CHECK-RV64VC-NEXT:    sub a4, a2, a6
+; CHECK-RV64VC-NEXT:    slli a3, a1, 1
+; CHECK-RV64VC-NEXT:    sub a4, a2, a3
 ; CHECK-RV64VC-NEXT:    sltu a5, a2, a4
 ; CHECK-RV64VC-NEXT:    addi a5, a5, -1
 ; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, a1
-; CHECK-RV64VC-NEXT:    sltu a3, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    slli a7, a1, 3
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
 ; CHECK-RV64VC-NEXT:    add a0, a0, a7
-; CHECK-RV64VC-NEXT:    and a3, a3, a5
-; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e64, m8, ta, ma
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
 ; CHECK-RV64VC-NEXT:    vle64.v v0, (a0)
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB884_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
@@ -32899,9 +32899,9 @@ define <vscale x 32 x i16> @test_nontemporal_vp_gather_nxv32i16_DEFAULT(<vscale
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a2, a6, .LBB884_4
+; CHECK-RV64VC-NEXT:    bltu a2, a3, .LBB884_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a2, a6
+; CHECK-RV64VC-NEXT:    mv a2, a3
 ; CHECK-RV64VC-NEXT:  .LBB884_4:
 ; CHECK-RV64VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV64VC-NEXT:    sltu a3, a2, a0
@@ -33047,21 +33047,21 @@ define void @test_nontemporal_vp_scatter_nxv32i16_P1(<vscale x 32 x i16> %val, <
 ; CHECK-RV64VC-LABEL: test_nontemporal_vp_scatter_nxv32i16_P1:
 ; CHECK-RV64VC:       # %bb.0:
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB885_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB885_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
-; CHECK-RV64VC-NEXT:    add a0, a0, a5
-; CHECK-RV64VC-NEXT:    mv a5, a4
+; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a0, a0, a6
+; CHECK-RV64VC-NEXT:    mv a6, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB885_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a5, a1
+; CHECK-RV64VC-NEXT:    mv a6, a1
 ; CHECK-RV64VC-NEXT:  .LBB885_4:
 ; CHECK-RV64VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV64VC-NEXT:    .cfi_def_cfa_offset 16
@@ -33069,11 +33069,11 @@ define void @test_nontemporal_vp_scatter_nxv32i16_P1(<vscale x 32 x i16> %val, <
 ; CHECK-RV64VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a0)
-; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e16, m2, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a6, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v8, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, a1
@@ -33232,21 +33232,21 @@ define void @test_nontemporal_vp_scatter_nxv32i16_PALL(<vscale x 32 x i16> %val,
 ; CHECK-RV64VC-LABEL: test_nontemporal_vp_scatter_nxv32i16_PALL:
 ; CHECK-RV64VC:       # %bb.0:
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB886_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB886_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
-; CHECK-RV64VC-NEXT:    add a0, a0, a5
-; CHECK-RV64VC-NEXT:    mv a5, a4
+; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a0, a0, a6
+; CHECK-RV64VC-NEXT:    mv a6, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB886_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a5, a1
+; CHECK-RV64VC-NEXT:    mv a6, a1
 ; CHECK-RV64VC-NEXT:  .LBB886_4:
 ; CHECK-RV64VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV64VC-NEXT:    .cfi_def_cfa_offset 16
@@ -33254,11 +33254,11 @@ define void @test_nontemporal_vp_scatter_nxv32i16_PALL(<vscale x 32 x i16> %val,
 ; CHECK-RV64VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a0)
-; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e16, m2, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a6, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v8, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, a1
@@ -33417,21 +33417,21 @@ define void @test_nontemporal_vp_scatter_nxv32i16_S1(<vscale x 32 x i16> %val, <
 ; CHECK-RV64VC-LABEL: test_nontemporal_vp_scatter_nxv32i16_S1:
 ; CHECK-RV64VC:       # %bb.0:
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB887_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB887_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
-; CHECK-RV64VC-NEXT:    add a0, a0, a5
-; CHECK-RV64VC-NEXT:    mv a5, a4
+; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a0, a0, a6
+; CHECK-RV64VC-NEXT:    mv a6, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB887_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a5, a1
+; CHECK-RV64VC-NEXT:    mv a6, a1
 ; CHECK-RV64VC-NEXT:  .LBB887_4:
 ; CHECK-RV64VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV64VC-NEXT:    .cfi_def_cfa_offset 16
@@ -33439,11 +33439,11 @@ define void @test_nontemporal_vp_scatter_nxv32i16_S1(<vscale x 32 x i16> %val, <
 ; CHECK-RV64VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a0)
-; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e16, m2, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a6, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v8, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, a1
@@ -33602,21 +33602,21 @@ define void @test_nontemporal_vp_scatter_nxv32i16_ALL(<vscale x 32 x i16> %val,
 ; CHECK-RV64VC-LABEL: test_nontemporal_vp_scatter_nxv32i16_ALL:
 ; CHECK-RV64VC:       # %bb.0:
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB888_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB888_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
-; CHECK-RV64VC-NEXT:    add a0, a0, a5
-; CHECK-RV64VC-NEXT:    mv a5, a4
+; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a0, a0, a6
+; CHECK-RV64VC-NEXT:    mv a6, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB888_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a5, a1
+; CHECK-RV64VC-NEXT:    mv a6, a1
 ; CHECK-RV64VC-NEXT:  .LBB888_4:
 ; CHECK-RV64VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV64VC-NEXT:    .cfi_def_cfa_offset 16
@@ -33624,11 +33624,11 @@ define void @test_nontemporal_vp_scatter_nxv32i16_ALL(<vscale x 32 x i16> %val,
 ; CHECK-RV64VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a0)
-; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e16, m2, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a6, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v8, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, a1
@@ -33786,21 +33786,21 @@ define void @test_nontemporal_vp_scatter_nxv32i16_DEFAULT(<vscale x 32 x i16> %v
 ; CHECK-RV64VC-LABEL: test_nontemporal_vp_scatter_nxv32i16_DEFAULT:
 ; CHECK-RV64VC:       # %bb.0:
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a6, a1, 4
+; CHECK-RV64VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV64VC-NEXT:    slli a2, a1, 1
-; CHECK-RV64VC-NEXT:    slli a5, a1, 3
+; CHECK-RV64VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
 ; CHECK-RV64VC-NEXT:    bltu a3, a2, .LBB889_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, a2
 ; CHECK-RV64VC-NEXT:  .LBB889_2:
 ; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a0)
-; CHECK-RV64VC-NEXT:    add a6, a6, a0
-; CHECK-RV64VC-NEXT:    add a0, a0, a5
-; CHECK-RV64VC-NEXT:    mv a5, a4
+; CHECK-RV64VC-NEXT:    add a5, a5, a0
+; CHECK-RV64VC-NEXT:    add a0, a0, a6
+; CHECK-RV64VC-NEXT:    mv a6, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, a1, .LBB889_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a5, a1
+; CHECK-RV64VC-NEXT:    mv a6, a1
 ; CHECK-RV64VC-NEXT:  .LBB889_4:
 ; CHECK-RV64VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV64VC-NEXT:    .cfi_def_cfa_offset 16
@@ -33808,11 +33808,11 @@ define void @test_nontemporal_vp_scatter_nxv32i16_DEFAULT(<vscale x 32 x i16> %v
 ; CHECK-RV64VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a6)
-; CHECK-RV64VC-NEXT:    addi a6, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a5)
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v24, (a0)
-; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e16, m2, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a6, e16, m2, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v8, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, a1
@@ -34881,50 +34881,50 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_P1(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    li a1, 40
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    sub a1, s1, a6
-; CHECK-RV64VC-NEXT:    sltu a2, s1, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a3, a2, a1
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    sub a2, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a4, a3, a2
-; CHECK-RV64VC-NEXT:    addi a4, a4, -1
-; CHECK-RV64VC-NEXT:    and a4, a4, a2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    sub a1, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a3, s1, a1
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a1
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    sub a4, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a5, a3, a4
+; CHECK-RV64VC-NEXT:    addi a5, a5, -1
+; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB910_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, s0
 ; CHECK-RV64VC-NEXT:  .LBB910_2:
-; CHECK-RV64VC-NEXT:    addi t0, a2, -1
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB910_4
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB910_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a3, a7
+; CHECK-RV64VC-NEXT:    mv a3, a1
 ; CHECK-RV64VC-NEXT:  .LBB910_4:
-; CHECK-RV64VC-NEXT:    sub a1, a3, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a3, a1
-; CHECK-RV64VC-NEXT:    and a5, t0, a5
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    add a0, a0, s2
-; CHECK-RV64VC-NEXT:    and a1, a1, a2
+; CHECK-RV64VC-NEXT:    sub a7, a3, s0
+; CHECK-RV64VC-NEXT:    sltu t0, a3, a7
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    addi t0, t0, -1
+; CHECK-RV64VC-NEXT:    add a6, s2, a0
+; CHECK-RV64VC-NEXT:    and a0, t0, a7
 ; CHECK-RV64VC-NEXT:    bltu a3, s0, .LBB910_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB910_6:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
-; CHECK-RV64VC-NEXT:    vle64.v v16, (a0)
-; CHECK-RV64VC-NEXT:    addi a0, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vle64.v v16, (a6)
+; CHECK-RV64VC-NEXT:    addi a6, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a6) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v14, (zero), v24
-; CHECK-RV64VC-NEXT:    csrr a0, vlenb
-; CHECK-RV64VC-NEXT:    slli a0, a0, 3
-; CHECK-RV64VC-NEXT:    add a0, a0, sp
-; CHECK-RV64VC-NEXT:    addi a0, a0, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v13, (zero), v24
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
@@ -34935,43 +34935,43 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_P1(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v12, (zero), v24
-; CHECK-RV64VC-NEXT:    bltu s1, a6, .LBB910_8
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB910_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv s1, a6
+; CHECK-RV64VC-NEXT:    mv s1, a2
 ; CHECK-RV64VC-NEXT:  .LBB910_8:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v15, (zero), v16
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (s2)
-; CHECK-RV64VC-NEXT:    sub a0, s1, a7
-; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
-; CHECK-RV64VC-NEXT:    addi a1, a1, -1
-; CHECK-RV64VC-NEXT:    and a0, a0, a1
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a0, a1
+; CHECK-RV64VC-NEXT:    sub a0, s1, a1
+; CHECK-RV64VC-NEXT:    sltu a2, s1, a0
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
+; CHECK-RV64VC-NEXT:    and a0, a0, a2
+; CHECK-RV64VC-NEXT:    sub a2, a0, s0
+; CHECK-RV64VC-NEXT:    sltu a3, a0, a2
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB910_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB910_10:
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    mv a3, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a3, vlenb
+; CHECK-RV64VC-NEXT:    slli a3, a3, 3
+; CHECK-RV64VC-NEXT:    mv a4, a3
+; CHECK-RV64VC-NEXT:    slli a3, a3, 1
+; CHECK-RV64VC-NEXT:    add a3, a3, a4
+; CHECK-RV64VC-NEXT:    add a3, a3, sp
+; CHECK-RV64VC-NEXT:    addi a3, a3, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a3) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v11, (zero), v24
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v10, (zero), v16
-; CHECK-RV64VC-NEXT:    bltu s1, a7, .LBB910_12
+; CHECK-RV64VC-NEXT:    bltu s1, a1, .LBB910_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv s1, a7
+; CHECK-RV64VC-NEXT:    mv s1, a1
 ; CHECK-RV64VC-NEXT:  .LBB910_12:
 ; CHECK-RV64VC-NEXT:    sub a0, s1, s0
 ; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
@@ -35031,19 +35031,19 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_P1(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v8, (a0)
 ; CHECK-RV32VC-NEXT:    csrr a5, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a5, 2
-; CHECK-RV32VC-NEXT:    sub a1, a2, a6
+; CHECK-RV32VC-NEXT:    slli a3, a5, 2
+; CHECK-RV32VC-NEXT:    sub a1, a2, a3
 ; CHECK-RV32VC-NEXT:    sltu a4, a2, a1
 ; CHECK-RV32VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV32VC-NEXT:    and a4, a4, a1
 ; CHECK-RV32VC-NEXT:    slli a1, a5, 1
-; CHECK-RV32VC-NEXT:    sub a3, a4, a1
-; CHECK-RV32VC-NEXT:    sltu a7, a4, a3
+; CHECK-RV32VC-NEXT:    sub a6, a4, a1
+; CHECK-RV32VC-NEXT:    sltu a7, a4, a6
 ; CHECK-RV32VC-NEXT:    slli a5, a5, 3
 ; CHECK-RV32VC-NEXT:    addi a7, a7, -1
 ; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    and a3, a7, a3
-; CHECK-RV32VC-NEXT:    vsetvli zero, a3, e32, m8, ta, ma
+; CHECK-RV32VC-NEXT:    and a5, a7, a6
+; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e32, m8, ta, ma
 ; CHECK-RV32VC-NEXT:    vle32.v v0, (a0)
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB910_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
@@ -35055,9 +35055,9 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_P1(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vsetvli zero, a4, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.p1
 ; CHECK-RV32VC-NEXT:    vluxei32.v v28, (zero), v8
-; CHECK-RV32VC-NEXT:    bltu a2, a6, .LBB910_4
+; CHECK-RV32VC-NEXT:    bltu a2, a3, .LBB910_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a2, a6
+; CHECK-RV32VC-NEXT:    mv a2, a3
 ; CHECK-RV32VC-NEXT:  .LBB910_4:
 ; CHECK-RV32VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV32VC-NEXT:    sltu a3, a2, a0
@@ -35436,50 +35436,50 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_PALL(<vscale x 64
 ; CHECK-RV64VC-NEXT:    li a1, 40
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    sub a1, s1, a6
-; CHECK-RV64VC-NEXT:    sltu a2, s1, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a3, a2, a1
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    sub a2, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a4, a3, a2
-; CHECK-RV64VC-NEXT:    addi a4, a4, -1
-; CHECK-RV64VC-NEXT:    and a4, a4, a2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    sub a1, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a3, s1, a1
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a1
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    sub a4, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a5, a3, a4
+; CHECK-RV64VC-NEXT:    addi a5, a5, -1
+; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB911_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, s0
 ; CHECK-RV64VC-NEXT:  .LBB911_2:
-; CHECK-RV64VC-NEXT:    addi t0, a2, -1
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB911_4
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB911_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a3, a7
+; CHECK-RV64VC-NEXT:    mv a3, a1
 ; CHECK-RV64VC-NEXT:  .LBB911_4:
-; CHECK-RV64VC-NEXT:    sub a1, a3, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a3, a1
-; CHECK-RV64VC-NEXT:    and a5, t0, a5
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    add a0, a0, s2
-; CHECK-RV64VC-NEXT:    and a1, a1, a2
+; CHECK-RV64VC-NEXT:    sub a7, a3, s0
+; CHECK-RV64VC-NEXT:    sltu t0, a3, a7
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    addi t0, t0, -1
+; CHECK-RV64VC-NEXT:    add a6, s2, a0
+; CHECK-RV64VC-NEXT:    and a0, t0, a7
 ; CHECK-RV64VC-NEXT:    bltu a3, s0, .LBB911_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB911_6:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
-; CHECK-RV64VC-NEXT:    vle64.v v16, (a0)
-; CHECK-RV64VC-NEXT:    addi a0, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vle64.v v16, (a6)
+; CHECK-RV64VC-NEXT:    addi a6, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a6) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v14, (zero), v24
-; CHECK-RV64VC-NEXT:    csrr a0, vlenb
-; CHECK-RV64VC-NEXT:    slli a0, a0, 3
-; CHECK-RV64VC-NEXT:    add a0, a0, sp
-; CHECK-RV64VC-NEXT:    addi a0, a0, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v13, (zero), v24
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
@@ -35490,43 +35490,43 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_PALL(<vscale x 64
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v12, (zero), v24
-; CHECK-RV64VC-NEXT:    bltu s1, a6, .LBB911_8
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB911_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv s1, a6
+; CHECK-RV64VC-NEXT:    mv s1, a2
 ; CHECK-RV64VC-NEXT:  .LBB911_8:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v15, (zero), v16
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (s2)
-; CHECK-RV64VC-NEXT:    sub a0, s1, a7
-; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
-; CHECK-RV64VC-NEXT:    addi a1, a1, -1
-; CHECK-RV64VC-NEXT:    and a0, a0, a1
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a0, a1
+; CHECK-RV64VC-NEXT:    sub a0, s1, a1
+; CHECK-RV64VC-NEXT:    sltu a2, s1, a0
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
+; CHECK-RV64VC-NEXT:    and a0, a0, a2
+; CHECK-RV64VC-NEXT:    sub a2, a0, s0
+; CHECK-RV64VC-NEXT:    sltu a3, a0, a2
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB911_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB911_10:
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    mv a3, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a3, vlenb
+; CHECK-RV64VC-NEXT:    slli a3, a3, 3
+; CHECK-RV64VC-NEXT:    mv a4, a3
+; CHECK-RV64VC-NEXT:    slli a3, a3, 1
+; CHECK-RV64VC-NEXT:    add a3, a3, a4
+; CHECK-RV64VC-NEXT:    add a3, a3, sp
+; CHECK-RV64VC-NEXT:    addi a3, a3, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a3) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v11, (zero), v24
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vluxei64.v v10, (zero), v16
-; CHECK-RV64VC-NEXT:    bltu s1, a7, .LBB911_12
+; CHECK-RV64VC-NEXT:    bltu s1, a1, .LBB911_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv s1, a7
+; CHECK-RV64VC-NEXT:    mv s1, a1
 ; CHECK-RV64VC-NEXT:  .LBB911_12:
 ; CHECK-RV64VC-NEXT:    sub a0, s1, s0
 ; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
@@ -35586,19 +35586,19 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_PALL(<vscale x 64
 ; CHECK-RV32VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v8, (a0)
 ; CHECK-RV32VC-NEXT:    csrr a5, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a5, 2
-; CHECK-RV32VC-NEXT:    sub a1, a2, a6
+; CHECK-RV32VC-NEXT:    slli a3, a5, 2
+; CHECK-RV32VC-NEXT:    sub a1, a2, a3
 ; CHECK-RV32VC-NEXT:    sltu a4, a2, a1
 ; CHECK-RV32VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV32VC-NEXT:    and a4, a4, a1
 ; CHECK-RV32VC-NEXT:    slli a1, a5, 1
-; CHECK-RV32VC-NEXT:    sub a3, a4, a1
-; CHECK-RV32VC-NEXT:    sltu a7, a4, a3
+; CHECK-RV32VC-NEXT:    sub a6, a4, a1
+; CHECK-RV32VC-NEXT:    sltu a7, a4, a6
 ; CHECK-RV32VC-NEXT:    slli a5, a5, 3
 ; CHECK-RV32VC-NEXT:    addi a7, a7, -1
 ; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    and a3, a7, a3
-; CHECK-RV32VC-NEXT:    vsetvli zero, a3, e32, m8, ta, ma
+; CHECK-RV32VC-NEXT:    and a5, a7, a6
+; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e32, m8, ta, ma
 ; CHECK-RV32VC-NEXT:    vle32.v v0, (a0)
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB911_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
@@ -35610,9 +35610,9 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_PALL(<vscale x 64
 ; CHECK-RV32VC-NEXT:    vsetvli zero, a4, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.pall
 ; CHECK-RV32VC-NEXT:    vluxei32.v v28, (zero), v8
-; CHECK-RV32VC-NEXT:    bltu a2, a6, .LBB911_4
+; CHECK-RV32VC-NEXT:    bltu a2, a3, .LBB911_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a2, a6
+; CHECK-RV32VC-NEXT:    mv a2, a3
 ; CHECK-RV32VC-NEXT:  .LBB911_4:
 ; CHECK-RV32VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV32VC-NEXT:    sltu a3, a2, a0
@@ -35991,50 +35991,50 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_S1(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    li a1, 40
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    sub a1, s1, a6
-; CHECK-RV64VC-NEXT:    sltu a2, s1, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a3, a2, a1
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    sub a2, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a4, a3, a2
-; CHECK-RV64VC-NEXT:    addi a4, a4, -1
-; CHECK-RV64VC-NEXT:    and a4, a4, a2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    sub a1, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a3, s1, a1
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a1
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    sub a4, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a5, a3, a4
+; CHECK-RV64VC-NEXT:    addi a5, a5, -1
+; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB912_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, s0
 ; CHECK-RV64VC-NEXT:  .LBB912_2:
-; CHECK-RV64VC-NEXT:    addi t0, a2, -1
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB912_4
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB912_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a3, a7
+; CHECK-RV64VC-NEXT:    mv a3, a1
 ; CHECK-RV64VC-NEXT:  .LBB912_4:
-; CHECK-RV64VC-NEXT:    sub a1, a3, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a3, a1
-; CHECK-RV64VC-NEXT:    and a5, t0, a5
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    add a0, a0, s2
-; CHECK-RV64VC-NEXT:    and a1, a1, a2
+; CHECK-RV64VC-NEXT:    sub a7, a3, s0
+; CHECK-RV64VC-NEXT:    sltu t0, a3, a7
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    addi t0, t0, -1
+; CHECK-RV64VC-NEXT:    add a6, s2, a0
+; CHECK-RV64VC-NEXT:    and a0, t0, a7
 ; CHECK-RV64VC-NEXT:    bltu a3, s0, .LBB912_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB912_6:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
-; CHECK-RV64VC-NEXT:    vle64.v v16, (a0)
-; CHECK-RV64VC-NEXT:    addi a0, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vle64.v v16, (a6)
+; CHECK-RV64VC-NEXT:    addi a6, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a6) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v14, (zero), v24
-; CHECK-RV64VC-NEXT:    csrr a0, vlenb
-; CHECK-RV64VC-NEXT:    slli a0, a0, 3
-; CHECK-RV64VC-NEXT:    add a0, a0, sp
-; CHECK-RV64VC-NEXT:    addi a0, a0, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v13, (zero), v24
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
@@ -36045,43 +36045,43 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_S1(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v12, (zero), v24
-; CHECK-RV64VC-NEXT:    bltu s1, a6, .LBB912_8
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB912_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv s1, a6
+; CHECK-RV64VC-NEXT:    mv s1, a2
 ; CHECK-RV64VC-NEXT:  .LBB912_8:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v15, (zero), v16
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (s2)
-; CHECK-RV64VC-NEXT:    sub a0, s1, a7
-; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
-; CHECK-RV64VC-NEXT:    addi a1, a1, -1
-; CHECK-RV64VC-NEXT:    and a0, a0, a1
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a0, a1
+; CHECK-RV64VC-NEXT:    sub a0, s1, a1
+; CHECK-RV64VC-NEXT:    sltu a2, s1, a0
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
+; CHECK-RV64VC-NEXT:    and a0, a0, a2
+; CHECK-RV64VC-NEXT:    sub a2, a0, s0
+; CHECK-RV64VC-NEXT:    sltu a3, a0, a2
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB912_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB912_10:
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    mv a3, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a3, vlenb
+; CHECK-RV64VC-NEXT:    slli a3, a3, 3
+; CHECK-RV64VC-NEXT:    mv a4, a3
+; CHECK-RV64VC-NEXT:    slli a3, a3, 1
+; CHECK-RV64VC-NEXT:    add a3, a3, a4
+; CHECK-RV64VC-NEXT:    add a3, a3, sp
+; CHECK-RV64VC-NEXT:    addi a3, a3, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a3) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v11, (zero), v24
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vluxei64.v v10, (zero), v16
-; CHECK-RV64VC-NEXT:    bltu s1, a7, .LBB912_12
+; CHECK-RV64VC-NEXT:    bltu s1, a1, .LBB912_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv s1, a7
+; CHECK-RV64VC-NEXT:    mv s1, a1
 ; CHECK-RV64VC-NEXT:  .LBB912_12:
 ; CHECK-RV64VC-NEXT:    sub a0, s1, s0
 ; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
@@ -36141,19 +36141,19 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_S1(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v8, (a0)
 ; CHECK-RV32VC-NEXT:    csrr a5, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a5, 2
-; CHECK-RV32VC-NEXT:    sub a1, a2, a6
+; CHECK-RV32VC-NEXT:    slli a3, a5, 2
+; CHECK-RV32VC-NEXT:    sub a1, a2, a3
 ; CHECK-RV32VC-NEXT:    sltu a4, a2, a1
 ; CHECK-RV32VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV32VC-NEXT:    and a4, a4, a1
 ; CHECK-RV32VC-NEXT:    slli a1, a5, 1
-; CHECK-RV32VC-NEXT:    sub a3, a4, a1
-; CHECK-RV32VC-NEXT:    sltu a7, a4, a3
+; CHECK-RV32VC-NEXT:    sub a6, a4, a1
+; CHECK-RV32VC-NEXT:    sltu a7, a4, a6
 ; CHECK-RV32VC-NEXT:    slli a5, a5, 3
 ; CHECK-RV32VC-NEXT:    addi a7, a7, -1
 ; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    and a3, a7, a3
-; CHECK-RV32VC-NEXT:    vsetvli zero, a3, e32, m8, ta, ma
+; CHECK-RV32VC-NEXT:    and a5, a7, a6
+; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e32, m8, ta, ma
 ; CHECK-RV32VC-NEXT:    vle32.v v0, (a0)
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB912_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
@@ -36165,9 +36165,9 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_S1(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vsetvli zero, a4, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.s1
 ; CHECK-RV32VC-NEXT:    vluxei32.v v28, (zero), v8
-; CHECK-RV32VC-NEXT:    bltu a2, a6, .LBB912_4
+; CHECK-RV32VC-NEXT:    bltu a2, a3, .LBB912_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a2, a6
+; CHECK-RV32VC-NEXT:    mv a2, a3
 ; CHECK-RV32VC-NEXT:  .LBB912_4:
 ; CHECK-RV32VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV32VC-NEXT:    sltu a3, a2, a0
@@ -36546,50 +36546,50 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_ALL(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    li a1, 40
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    sub a1, s1, a6
-; CHECK-RV64VC-NEXT:    sltu a2, s1, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a3, a2, a1
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    sub a2, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a4, a3, a2
-; CHECK-RV64VC-NEXT:    addi a4, a4, -1
-; CHECK-RV64VC-NEXT:    and a4, a4, a2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    sub a1, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a3, s1, a1
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a1
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    sub a4, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a5, a3, a4
+; CHECK-RV64VC-NEXT:    addi a5, a5, -1
+; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB913_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, s0
 ; CHECK-RV64VC-NEXT:  .LBB913_2:
-; CHECK-RV64VC-NEXT:    addi t0, a2, -1
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB913_4
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB913_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a3, a7
+; CHECK-RV64VC-NEXT:    mv a3, a1
 ; CHECK-RV64VC-NEXT:  .LBB913_4:
-; CHECK-RV64VC-NEXT:    sub a1, a3, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a3, a1
-; CHECK-RV64VC-NEXT:    and a5, t0, a5
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    add a0, a0, s2
-; CHECK-RV64VC-NEXT:    and a1, a1, a2
+; CHECK-RV64VC-NEXT:    sub a7, a3, s0
+; CHECK-RV64VC-NEXT:    sltu t0, a3, a7
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    addi t0, t0, -1
+; CHECK-RV64VC-NEXT:    add a6, s2, a0
+; CHECK-RV64VC-NEXT:    and a0, t0, a7
 ; CHECK-RV64VC-NEXT:    bltu a3, s0, .LBB913_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB913_6:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
-; CHECK-RV64VC-NEXT:    vle64.v v16, (a0)
-; CHECK-RV64VC-NEXT:    addi a0, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vle64.v v16, (a6)
+; CHECK-RV64VC-NEXT:    addi a6, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a6) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v14, (zero), v24
-; CHECK-RV64VC-NEXT:    csrr a0, vlenb
-; CHECK-RV64VC-NEXT:    slli a0, a0, 3
-; CHECK-RV64VC-NEXT:    add a0, a0, sp
-; CHECK-RV64VC-NEXT:    addi a0, a0, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v13, (zero), v24
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
@@ -36600,43 +36600,43 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_ALL(<vscale x 64 x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v12, (zero), v24
-; CHECK-RV64VC-NEXT:    bltu s1, a6, .LBB913_8
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB913_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv s1, a6
+; CHECK-RV64VC-NEXT:    mv s1, a2
 ; CHECK-RV64VC-NEXT:  .LBB913_8:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v15, (zero), v16
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (s2)
-; CHECK-RV64VC-NEXT:    sub a0, s1, a7
-; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
-; CHECK-RV64VC-NEXT:    addi a1, a1, -1
-; CHECK-RV64VC-NEXT:    and a0, a0, a1
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a0, a1
+; CHECK-RV64VC-NEXT:    sub a0, s1, a1
+; CHECK-RV64VC-NEXT:    sltu a2, s1, a0
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
+; CHECK-RV64VC-NEXT:    and a0, a0, a2
+; CHECK-RV64VC-NEXT:    sub a2, a0, s0
+; CHECK-RV64VC-NEXT:    sltu a3, a0, a2
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB913_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB913_10:
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    mv a3, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a3, vlenb
+; CHECK-RV64VC-NEXT:    slli a3, a3, 3
+; CHECK-RV64VC-NEXT:    mv a4, a3
+; CHECK-RV64VC-NEXT:    slli a3, a3, 1
+; CHECK-RV64VC-NEXT:    add a3, a3, a4
+; CHECK-RV64VC-NEXT:    add a3, a3, sp
+; CHECK-RV64VC-NEXT:    addi a3, a3, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a3) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v11, (zero), v24
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v10, (zero), v16
-; CHECK-RV64VC-NEXT:    bltu s1, a7, .LBB913_12
+; CHECK-RV64VC-NEXT:    bltu s1, a1, .LBB913_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv s1, a7
+; CHECK-RV64VC-NEXT:    mv s1, a1
 ; CHECK-RV64VC-NEXT:  .LBB913_12:
 ; CHECK-RV64VC-NEXT:    sub a0, s1, s0
 ; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
@@ -36696,19 +36696,19 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_ALL(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v8, (a0)
 ; CHECK-RV32VC-NEXT:    csrr a5, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a5, 2
-; CHECK-RV32VC-NEXT:    sub a1, a2, a6
+; CHECK-RV32VC-NEXT:    slli a3, a5, 2
+; CHECK-RV32VC-NEXT:    sub a1, a2, a3
 ; CHECK-RV32VC-NEXT:    sltu a4, a2, a1
 ; CHECK-RV32VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV32VC-NEXT:    and a4, a4, a1
 ; CHECK-RV32VC-NEXT:    slli a1, a5, 1
-; CHECK-RV32VC-NEXT:    sub a3, a4, a1
-; CHECK-RV32VC-NEXT:    sltu a7, a4, a3
+; CHECK-RV32VC-NEXT:    sub a6, a4, a1
+; CHECK-RV32VC-NEXT:    sltu a7, a4, a6
 ; CHECK-RV32VC-NEXT:    slli a5, a5, 3
 ; CHECK-RV32VC-NEXT:    addi a7, a7, -1
 ; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    and a3, a7, a3
-; CHECK-RV32VC-NEXT:    vsetvli zero, a3, e32, m8, ta, ma
+; CHECK-RV32VC-NEXT:    and a5, a7, a6
+; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e32, m8, ta, ma
 ; CHECK-RV32VC-NEXT:    vle32.v v0, (a0)
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB913_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
@@ -36720,9 +36720,9 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_ALL(<vscale x 64 x
 ; CHECK-RV32VC-NEXT:    vsetvli zero, a4, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.all
 ; CHECK-RV32VC-NEXT:    vluxei32.v v28, (zero), v8
-; CHECK-RV32VC-NEXT:    bltu a2, a6, .LBB913_4
+; CHECK-RV32VC-NEXT:    bltu a2, a3, .LBB913_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a2, a6
+; CHECK-RV32VC-NEXT:    mv a2, a3
 ; CHECK-RV32VC-NEXT:  .LBB913_4:
 ; CHECK-RV32VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV32VC-NEXT:    sltu a3, a2, a0
@@ -37100,50 +37100,50 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_DEFAULT(<vscale x
 ; CHECK-RV64VC-NEXT:    li a1, 40
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    sub a1, s1, a6
-; CHECK-RV64VC-NEXT:    sltu a2, s1, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a3, a2, a1
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    sub a2, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a4, a3, a2
-; CHECK-RV64VC-NEXT:    addi a4, a4, -1
-; CHECK-RV64VC-NEXT:    and a4, a4, a2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    sub a1, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a3, s1, a1
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a1
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    sub a4, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a5, a3, a4
+; CHECK-RV64VC-NEXT:    addi a5, a5, -1
+; CHECK-RV64VC-NEXT:    and a4, a4, a5
 ; CHECK-RV64VC-NEXT:    sub a5, a4, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a5
+; CHECK-RV64VC-NEXT:    sltu a6, a4, a5
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB914_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
 ; CHECK-RV64VC-NEXT:    mv a4, s0
 ; CHECK-RV64VC-NEXT:  .LBB914_2:
-; CHECK-RV64VC-NEXT:    addi t0, a2, -1
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB914_4
+; CHECK-RV64VC-NEXT:    addi a6, a6, -1
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB914_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a3, a7
+; CHECK-RV64VC-NEXT:    mv a3, a1
 ; CHECK-RV64VC-NEXT:  .LBB914_4:
-; CHECK-RV64VC-NEXT:    sub a1, a3, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a3, a1
-; CHECK-RV64VC-NEXT:    and a5, t0, a5
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    add a0, a0, s2
-; CHECK-RV64VC-NEXT:    and a1, a1, a2
+; CHECK-RV64VC-NEXT:    sub a7, a3, s0
+; CHECK-RV64VC-NEXT:    sltu t0, a3, a7
+; CHECK-RV64VC-NEXT:    and a5, a6, a5
+; CHECK-RV64VC-NEXT:    addi t0, t0, -1
+; CHECK-RV64VC-NEXT:    add a6, s2, a0
+; CHECK-RV64VC-NEXT:    and a0, t0, a7
 ; CHECK-RV64VC-NEXT:    bltu a3, s0, .LBB914_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB914_6:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e64, m8, ta, ma
-; CHECK-RV64VC-NEXT:    vle64.v v16, (a0)
-; CHECK-RV64VC-NEXT:    addi a0, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vle64.v v16, (a6)
+; CHECK-RV64VC-NEXT:    addi a6, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a6) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v14, (zero), v24
-; CHECK-RV64VC-NEXT:    csrr a0, vlenb
-; CHECK-RV64VC-NEXT:    slli a0, a0, 3
-; CHECK-RV64VC-NEXT:    add a0, a0, sp
-; CHECK-RV64VC-NEXT:    addi a0, a0, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v13, (zero), v24
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
@@ -37154,43 +37154,43 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_DEFAULT(<vscale x
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v12, (zero), v24
-; CHECK-RV64VC-NEXT:    bltu s1, a6, .LBB914_8
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB914_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv s1, a6
+; CHECK-RV64VC-NEXT:    mv s1, a2
 ; CHECK-RV64VC-NEXT:  .LBB914_8:
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a5, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v15, (zero), v16
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (s2)
-; CHECK-RV64VC-NEXT:    sub a0, s1, a7
-; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
-; CHECK-RV64VC-NEXT:    addi a1, a1, -1
-; CHECK-RV64VC-NEXT:    and a0, a0, a1
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sltu a2, a0, a1
+; CHECK-RV64VC-NEXT:    sub a0, s1, a1
+; CHECK-RV64VC-NEXT:    sltu a2, s1, a0
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
+; CHECK-RV64VC-NEXT:    and a0, a0, a2
+; CHECK-RV64VC-NEXT:    sub a2, a0, s0
+; CHECK-RV64VC-NEXT:    sltu a3, a0, a2
+; CHECK-RV64VC-NEXT:    addi a3, a3, -1
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB914_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB914_10:
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    mv a3, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a3, vlenb
+; CHECK-RV64VC-NEXT:    slli a3, a3, 3
+; CHECK-RV64VC-NEXT:    mv a4, a3
+; CHECK-RV64VC-NEXT:    slli a3, a3, 1
+; CHECK-RV64VC-NEXT:    add a3, a3, a4
+; CHECK-RV64VC-NEXT:    add a3, a3, sp
+; CHECK-RV64VC-NEXT:    addi a3, a3, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a3) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v11, (zero), v24
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vluxei64.v v10, (zero), v16
-; CHECK-RV64VC-NEXT:    bltu s1, a7, .LBB914_12
+; CHECK-RV64VC-NEXT:    bltu s1, a1, .LBB914_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv s1, a7
+; CHECK-RV64VC-NEXT:    mv s1, a1
 ; CHECK-RV64VC-NEXT:  .LBB914_12:
 ; CHECK-RV64VC-NEXT:    sub a0, s1, s0
 ; CHECK-RV64VC-NEXT:    sltu a1, s1, a0
@@ -37250,19 +37250,19 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_DEFAULT(<vscale x
 ; CHECK-RV32VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v8, (a0)
 ; CHECK-RV32VC-NEXT:    csrr a5, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a5, 2
-; CHECK-RV32VC-NEXT:    sub a1, a2, a6
+; CHECK-RV32VC-NEXT:    slli a3, a5, 2
+; CHECK-RV32VC-NEXT:    sub a1, a2, a3
 ; CHECK-RV32VC-NEXT:    sltu a4, a2, a1
 ; CHECK-RV32VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV32VC-NEXT:    and a4, a4, a1
 ; CHECK-RV32VC-NEXT:    slli a1, a5, 1
-; CHECK-RV32VC-NEXT:    sub a3, a4, a1
-; CHECK-RV32VC-NEXT:    sltu a7, a4, a3
+; CHECK-RV32VC-NEXT:    sub a6, a4, a1
+; CHECK-RV32VC-NEXT:    sltu a7, a4, a6
 ; CHECK-RV32VC-NEXT:    slli a5, a5, 3
 ; CHECK-RV32VC-NEXT:    addi a7, a7, -1
 ; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    and a3, a7, a3
-; CHECK-RV32VC-NEXT:    vsetvli zero, a3, e32, m8, ta, ma
+; CHECK-RV32VC-NEXT:    and a5, a7, a6
+; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e32, m8, ta, ma
 ; CHECK-RV32VC-NEXT:    vle32.v v0, (a0)
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB914_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
@@ -37274,9 +37274,9 @@ define <vscale x 64 x i8> @test_nontemporal_vp_gather_nxv64i8_DEFAULT(<vscale x
 ; CHECK-RV32VC-NEXT:    vsetvli zero, a4, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.all
 ; CHECK-RV32VC-NEXT:    vluxei32.v v28, (zero), v8
-; CHECK-RV32VC-NEXT:    bltu a2, a6, .LBB914_4
+; CHECK-RV32VC-NEXT:    bltu a2, a3, .LBB914_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a2, a6
+; CHECK-RV32VC-NEXT:    mv a2, a3
 ; CHECK-RV32VC-NEXT:  .LBB914_4:
 ; CHECK-RV32VC-NEXT:    sub a0, a2, a1
 ; CHECK-RV32VC-NEXT:    sltu a3, a2, a0
@@ -37639,7 +37639,7 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    add a1, a1, a2
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a1
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x38, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 56 * vlenb
-; CHECK-RV64VC-NEXT:    mv s2, a7
+; CHECK-RV64VC-NEXT:    mv s1, a7
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
 ; CHECK-RV64VC-NEXT:    slli a1, a1, 4
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
@@ -37653,12 +37653,12 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    mv s1, a0
+; CHECK-RV64VC-NEXT:    mv s2, a0
 ; CHECK-RV64VC-NEXT:    csrr s0, vlenb
 ; CHECK-RV64VC-NEXT:    li a1, 48
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -37672,14 +37672,14 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
 ; CHECK-RV64VC-NEXT:    slli a1, s0, 5
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 5
 ; CHECK-RV64VC-NEXT:    add a0, a0, sp
 ; CHECK-RV64VC-NEXT:    addi a0, a0, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    add a1, a1, s1
+; CHECK-RV64VC-NEXT:    add a1, a1, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a1)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -37692,113 +37692,113 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    li a1, 24
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    mv a3, s2
-; CHECK-RV64VC-NEXT:    bltu s2, a6, .LBB915_2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    mv a3, s1
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB915_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
-; CHECK-RV64VC-NEXT:    mv a3, a6
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:  .LBB915_2:
 ; CHECK-RV64VC-NEXT:    slli a5, s0, 4
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    slli a2, s0, 3
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    slli a6, s0, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB915_4
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB915_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a4, a7
+; CHECK-RV64VC-NEXT:    mv a4, a1
 ; CHECK-RV64VC-NEXT:  .LBB915_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s1)
-; CHECK-RV64VC-NEXT:    add a1, s1, a0
-; CHECK-RV64VC-NEXT:    add a5, a5, s1
-; CHECK-RV64VC-NEXT:    add a2, a2, s1
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s2)
+; CHECK-RV64VC-NEXT:    add a7, s2, a0
+; CHECK-RV64VC-NEXT:    add a5, a5, s2
+; CHECK-RV64VC-NEXT:    add a6, a6, s2
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB915_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB915_6:
-; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a1)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a7)
+; CHECK-RV64VC-NEXT:    csrr a7, vlenb
+; CHECK-RV64VC-NEXT:    slli a7, a7, 3
+; CHECK-RV64VC-NEXT:    add a7, a7, sp
+; CHECK-RV64VC-NEXT:    addi a7, a7, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a7) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a5)
-; CHECK-RV64VC-NEXT:    addi a1, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a2)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    mv a2, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a2
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v16, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a6)
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    mv a6, a5
+; CHECK-RV64VC-NEXT:    slli a5, a5, 1
+; CHECK-RV64VC-NEXT:    add a5, a5, a6
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v24, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, s0
-; CHECK-RV64VC-NEXT:    sub a1, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a0
-; CHECK-RV64VC-NEXT:    sltu a3, a3, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
+; CHECK-RV64VC-NEXT:    sub a5, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a4, a4, a0
+; CHECK-RV64VC-NEXT:    sltu a3, a3, a5
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a1
-; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    and a4, a4, a0
+; CHECK-RV64VC-NEXT:    and a0, a3, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v25, (zero), v8
-; CHECK-RV64VC-NEXT:    mv a1, a0
+; CHECK-RV64VC-NEXT:    mv a3, a0
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB915_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB915_8:
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v26, (zero), v0
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sub a2, s2, a6
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
-; CHECK-RV64VC-NEXT:    sltu a3, s2, a2
+; CHECK-RV64VC-NEXT:    sub a3, a0, s0
+; CHECK-RV64VC-NEXT:    sub a2, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sltu a4, s1, a2
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a1, a1, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a2
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a0
+; CHECK-RV64VC-NEXT:    and a0, a4, a2
 ; CHECK-RV64VC-NEXT:    mv a2, a0
-; CHECK-RV64VC-NEXT:    addi a3, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    addi a4, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v27, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a0, a7, .LBB915_10
+; CHECK-RV64VC-NEXT:    bltu a0, a1, .LBB915_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
-; CHECK-RV64VC-NEXT:    mv a2, a7
+; CHECK-RV64VC-NEXT:    mv a2, a1
 ; CHECK-RV64VC-NEXT:  .LBB915_10:
-; CHECK-RV64VC-NEXT:    mv a1, a2
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:    bltu a2, s0, .LBB915_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB915_12:
-; CHECK-RV64VC-NEXT:    csrr a3, vlenb
-; CHECK-RV64VC-NEXT:    slli a3, a3, 3
-; CHECK-RV64VC-NEXT:    add a3, a3, sp
-; CHECK-RV64VC-NEXT:    addi a3, a3, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.p1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    sub a1, a2, s0
-; CHECK-RV64VC-NEXT:    sub a3, a0, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a2, a1
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sub a3, a2, s0
+; CHECK-RV64VC-NEXT:    sub a1, a0, a1
+; CHECK-RV64VC-NEXT:    sltu a2, a2, a3
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
-; CHECK-RV64VC-NEXT:    and a0, a0, a3
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
+; CHECK-RV64VC-NEXT:    and a0, a0, a1
 ; CHECK-RV64VC-NEXT:    mv a1, a0
 ; CHECK-RV64VC-NEXT:    csrr a3, vlenb
 ; CHECK-RV64VC-NEXT:    slli a3, a3, 3
@@ -37862,22 +37862,22 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV32VC-LABEL: test_nontemporal_vp_scatter_nxv64i8_P1:
 ; CHECK-RV32VC:       # %bb.0:
 ; CHECK-RV32VC-NEXT:    csrr a1, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a1, 4
+; CHECK-RV32VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV32VC-NEXT:    slli a2, a1, 2
-; CHECK-RV32VC-NEXT:    slli a5, a1, 3
+; CHECK-RV32VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV32VC-NEXT:    mv a4, a3
 ; CHECK-RV32VC-NEXT:    bltu a3, a2, .LBB915_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
 ; CHECK-RV32VC-NEXT:    mv a4, a2
 ; CHECK-RV32VC-NEXT:  .LBB915_2:
 ; CHECK-RV32VC-NEXT:    vl8re32.v v0, (a0)
-; CHECK-RV32VC-NEXT:    add a6, a6, a0
+; CHECK-RV32VC-NEXT:    add a5, a5, a0
 ; CHECK-RV32VC-NEXT:    slli a1, a1, 1
-; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    mv a5, a4
+; CHECK-RV32VC-NEXT:    add a0, a0, a6
+; CHECK-RV32VC-NEXT:    mv a6, a4
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB915_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a5, a1
+; CHECK-RV32VC-NEXT:    mv a6, a1
 ; CHECK-RV32VC-NEXT:  .LBB915_4:
 ; CHECK-RV32VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV32VC-NEXT:    .cfi_def_cfa_offset 16
@@ -37885,11 +37885,11 @@ define void @test_nontemporal_vp_scatter_nxv64i8_P1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV32VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV32VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV32VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a6)
-; CHECK-RV32VC-NEXT:    addi a6, sp, 16
-; CHECK-RV32VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a5)
+; CHECK-RV32VC-NEXT:    addi a5, sp, 16
+; CHECK-RV32VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a0)
-; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e8, m2, ta, ma
+; CHECK-RV32VC-NEXT:    vsetvli zero, a6, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.p1
 ; CHECK-RV32VC-NEXT:    vsoxei32.v v8, (zero), v16
 ; CHECK-RV32VC-NEXT:    sub a0, a4, a1
@@ -38264,7 +38264,7 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV64VC-NEXT:    add a1, a1, a2
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a1
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x38, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 56 * vlenb
-; CHECK-RV64VC-NEXT:    mv s2, a7
+; CHECK-RV64VC-NEXT:    mv s1, a7
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
 ; CHECK-RV64VC-NEXT:    slli a1, a1, 4
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
@@ -38278,12 +38278,12 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    mv s1, a0
+; CHECK-RV64VC-NEXT:    mv s2, a0
 ; CHECK-RV64VC-NEXT:    csrr s0, vlenb
 ; CHECK-RV64VC-NEXT:    li a1, 48
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -38297,14 +38297,14 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
 ; CHECK-RV64VC-NEXT:    slli a1, s0, 5
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 5
 ; CHECK-RV64VC-NEXT:    add a0, a0, sp
 ; CHECK-RV64VC-NEXT:    addi a0, a0, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    add a1, a1, s1
+; CHECK-RV64VC-NEXT:    add a1, a1, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a1)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -38317,113 +38317,113 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV64VC-NEXT:    li a1, 24
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    mv a3, s2
-; CHECK-RV64VC-NEXT:    bltu s2, a6, .LBB916_2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    mv a3, s1
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB916_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
-; CHECK-RV64VC-NEXT:    mv a3, a6
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:  .LBB916_2:
 ; CHECK-RV64VC-NEXT:    slli a5, s0, 4
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    slli a2, s0, 3
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    slli a6, s0, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB916_4
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB916_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a4, a7
+; CHECK-RV64VC-NEXT:    mv a4, a1
 ; CHECK-RV64VC-NEXT:  .LBB916_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s1)
-; CHECK-RV64VC-NEXT:    add a1, s1, a0
-; CHECK-RV64VC-NEXT:    add a5, a5, s1
-; CHECK-RV64VC-NEXT:    add a2, a2, s1
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s2)
+; CHECK-RV64VC-NEXT:    add a7, s2, a0
+; CHECK-RV64VC-NEXT:    add a5, a5, s2
+; CHECK-RV64VC-NEXT:    add a6, a6, s2
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB916_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB916_6:
-; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a1)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a7)
+; CHECK-RV64VC-NEXT:    csrr a7, vlenb
+; CHECK-RV64VC-NEXT:    slli a7, a7, 3
+; CHECK-RV64VC-NEXT:    add a7, a7, sp
+; CHECK-RV64VC-NEXT:    addi a7, a7, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a7) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a5)
-; CHECK-RV64VC-NEXT:    addi a1, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a2)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    mv a2, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a2
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v16, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a6)
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    mv a6, a5
+; CHECK-RV64VC-NEXT:    slli a5, a5, 1
+; CHECK-RV64VC-NEXT:    add a5, a5, a6
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v24, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, s0
-; CHECK-RV64VC-NEXT:    sub a1, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a0
-; CHECK-RV64VC-NEXT:    sltu a3, a3, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
+; CHECK-RV64VC-NEXT:    sub a5, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a4, a4, a0
+; CHECK-RV64VC-NEXT:    sltu a3, a3, a5
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a1
-; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    and a4, a4, a0
+; CHECK-RV64VC-NEXT:    and a0, a3, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v25, (zero), v8
-; CHECK-RV64VC-NEXT:    mv a1, a0
+; CHECK-RV64VC-NEXT:    mv a3, a0
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB916_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB916_8:
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v26, (zero), v0
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sub a2, s2, a6
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
-; CHECK-RV64VC-NEXT:    sltu a3, s2, a2
+; CHECK-RV64VC-NEXT:    sub a3, a0, s0
+; CHECK-RV64VC-NEXT:    sub a2, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sltu a4, s1, a2
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a1, a1, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a2
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a0
+; CHECK-RV64VC-NEXT:    and a0, a4, a2
 ; CHECK-RV64VC-NEXT:    mv a2, a0
-; CHECK-RV64VC-NEXT:    addi a3, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    addi a4, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v27, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a0, a7, .LBB916_10
+; CHECK-RV64VC-NEXT:    bltu a0, a1, .LBB916_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
-; CHECK-RV64VC-NEXT:    mv a2, a7
+; CHECK-RV64VC-NEXT:    mv a2, a1
 ; CHECK-RV64VC-NEXT:  .LBB916_10:
-; CHECK-RV64VC-NEXT:    mv a1, a2
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:    bltu a2, s0, .LBB916_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB916_12:
-; CHECK-RV64VC-NEXT:    csrr a3, vlenb
-; CHECK-RV64VC-NEXT:    slli a3, a3, 3
-; CHECK-RV64VC-NEXT:    add a3, a3, sp
-; CHECK-RV64VC-NEXT:    addi a3, a3, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.pall
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    sub a1, a2, s0
-; CHECK-RV64VC-NEXT:    sub a3, a0, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a2, a1
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sub a3, a2, s0
+; CHECK-RV64VC-NEXT:    sub a1, a0, a1
+; CHECK-RV64VC-NEXT:    sltu a2, a2, a3
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
-; CHECK-RV64VC-NEXT:    and a0, a0, a3
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
+; CHECK-RV64VC-NEXT:    and a0, a0, a1
 ; CHECK-RV64VC-NEXT:    mv a1, a0
 ; CHECK-RV64VC-NEXT:    csrr a3, vlenb
 ; CHECK-RV64VC-NEXT:    slli a3, a3, 3
@@ -38487,22 +38487,22 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV32VC-LABEL: test_nontemporal_vp_scatter_nxv64i8_PALL:
 ; CHECK-RV32VC:       # %bb.0:
 ; CHECK-RV32VC-NEXT:    csrr a1, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a1, 4
+; CHECK-RV32VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV32VC-NEXT:    slli a2, a1, 2
-; CHECK-RV32VC-NEXT:    slli a5, a1, 3
+; CHECK-RV32VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV32VC-NEXT:    mv a4, a3
 ; CHECK-RV32VC-NEXT:    bltu a3, a2, .LBB916_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
 ; CHECK-RV32VC-NEXT:    mv a4, a2
 ; CHECK-RV32VC-NEXT:  .LBB916_2:
 ; CHECK-RV32VC-NEXT:    vl8re32.v v0, (a0)
-; CHECK-RV32VC-NEXT:    add a6, a6, a0
+; CHECK-RV32VC-NEXT:    add a5, a5, a0
 ; CHECK-RV32VC-NEXT:    slli a1, a1, 1
-; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    mv a5, a4
+; CHECK-RV32VC-NEXT:    add a0, a0, a6
+; CHECK-RV32VC-NEXT:    mv a6, a4
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB916_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a5, a1
+; CHECK-RV32VC-NEXT:    mv a6, a1
 ; CHECK-RV32VC-NEXT:  .LBB916_4:
 ; CHECK-RV32VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV32VC-NEXT:    .cfi_def_cfa_offset 16
@@ -38510,11 +38510,11 @@ define void @test_nontemporal_vp_scatter_nxv64i8_PALL(<vscale x 64 x i8> %val, <
 ; CHECK-RV32VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV32VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV32VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a6)
-; CHECK-RV32VC-NEXT:    addi a6, sp, 16
-; CHECK-RV32VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a5)
+; CHECK-RV32VC-NEXT:    addi a5, sp, 16
+; CHECK-RV32VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a0)
-; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e8, m2, ta, ma
+; CHECK-RV32VC-NEXT:    vsetvli zero, a6, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.pall
 ; CHECK-RV32VC-NEXT:    vsoxei32.v v8, (zero), v16
 ; CHECK-RV32VC-NEXT:    sub a0, a4, a1
@@ -38889,7 +38889,7 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    add a1, a1, a2
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a1
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x38, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 56 * vlenb
-; CHECK-RV64VC-NEXT:    mv s2, a7
+; CHECK-RV64VC-NEXT:    mv s1, a7
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
 ; CHECK-RV64VC-NEXT:    slli a1, a1, 4
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
@@ -38903,12 +38903,12 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    mv s1, a0
+; CHECK-RV64VC-NEXT:    mv s2, a0
 ; CHECK-RV64VC-NEXT:    csrr s0, vlenb
 ; CHECK-RV64VC-NEXT:    li a1, 48
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -38922,14 +38922,14 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
 ; CHECK-RV64VC-NEXT:    slli a1, s0, 5
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 5
 ; CHECK-RV64VC-NEXT:    add a0, a0, sp
 ; CHECK-RV64VC-NEXT:    addi a0, a0, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    add a1, a1, s1
+; CHECK-RV64VC-NEXT:    add a1, a1, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a1)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -38942,113 +38942,113 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV64VC-NEXT:    li a1, 24
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    mv a3, s2
-; CHECK-RV64VC-NEXT:    bltu s2, a6, .LBB917_2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    mv a3, s1
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB917_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
-; CHECK-RV64VC-NEXT:    mv a3, a6
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:  .LBB917_2:
 ; CHECK-RV64VC-NEXT:    slli a5, s0, 4
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    slli a2, s0, 3
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    slli a6, s0, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB917_4
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB917_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a4, a7
+; CHECK-RV64VC-NEXT:    mv a4, a1
 ; CHECK-RV64VC-NEXT:  .LBB917_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s1)
-; CHECK-RV64VC-NEXT:    add a1, s1, a0
-; CHECK-RV64VC-NEXT:    add a5, a5, s1
-; CHECK-RV64VC-NEXT:    add a2, a2, s1
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s2)
+; CHECK-RV64VC-NEXT:    add a7, s2, a0
+; CHECK-RV64VC-NEXT:    add a5, a5, s2
+; CHECK-RV64VC-NEXT:    add a6, a6, s2
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB917_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB917_6:
-; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a1)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a7)
+; CHECK-RV64VC-NEXT:    csrr a7, vlenb
+; CHECK-RV64VC-NEXT:    slli a7, a7, 3
+; CHECK-RV64VC-NEXT:    add a7, a7, sp
+; CHECK-RV64VC-NEXT:    addi a7, a7, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a7) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a5)
-; CHECK-RV64VC-NEXT:    addi a1, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a2)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    mv a2, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a2
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v16, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a6)
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    mv a6, a5
+; CHECK-RV64VC-NEXT:    slli a5, a5, 1
+; CHECK-RV64VC-NEXT:    add a5, a5, a6
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v24, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, s0
-; CHECK-RV64VC-NEXT:    sub a1, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a0
-; CHECK-RV64VC-NEXT:    sltu a3, a3, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
+; CHECK-RV64VC-NEXT:    sub a5, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a4, a4, a0
+; CHECK-RV64VC-NEXT:    sltu a3, a3, a5
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a1
-; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    and a4, a4, a0
+; CHECK-RV64VC-NEXT:    and a0, a3, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v25, (zero), v8
-; CHECK-RV64VC-NEXT:    mv a1, a0
+; CHECK-RV64VC-NEXT:    mv a3, a0
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB917_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB917_8:
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v26, (zero), v0
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sub a2, s2, a6
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
-; CHECK-RV64VC-NEXT:    sltu a3, s2, a2
+; CHECK-RV64VC-NEXT:    sub a3, a0, s0
+; CHECK-RV64VC-NEXT:    sub a2, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sltu a4, s1, a2
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a1, a1, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a2
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a0
+; CHECK-RV64VC-NEXT:    and a0, a4, a2
 ; CHECK-RV64VC-NEXT:    mv a2, a0
-; CHECK-RV64VC-NEXT:    addi a3, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    addi a4, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v27, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a0, a7, .LBB917_10
+; CHECK-RV64VC-NEXT:    bltu a0, a1, .LBB917_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
-; CHECK-RV64VC-NEXT:    mv a2, a7
+; CHECK-RV64VC-NEXT:    mv a2, a1
 ; CHECK-RV64VC-NEXT:  .LBB917_10:
-; CHECK-RV64VC-NEXT:    mv a1, a2
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:    bltu a2, s0, .LBB917_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB917_12:
-; CHECK-RV64VC-NEXT:    csrr a3, vlenb
-; CHECK-RV64VC-NEXT:    slli a3, a3, 3
-; CHECK-RV64VC-NEXT:    add a3, a3, sp
-; CHECK-RV64VC-NEXT:    addi a3, a3, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.s1
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    sub a1, a2, s0
-; CHECK-RV64VC-NEXT:    sub a3, a0, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a2, a1
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sub a3, a2, s0
+; CHECK-RV64VC-NEXT:    sub a1, a0, a1
+; CHECK-RV64VC-NEXT:    sltu a2, a2, a3
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
-; CHECK-RV64VC-NEXT:    and a0, a0, a3
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
+; CHECK-RV64VC-NEXT:    and a0, a0, a1
 ; CHECK-RV64VC-NEXT:    mv a1, a0
 ; CHECK-RV64VC-NEXT:    csrr a3, vlenb
 ; CHECK-RV64VC-NEXT:    slli a3, a3, 3
@@ -39112,22 +39112,22 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV32VC-LABEL: test_nontemporal_vp_scatter_nxv64i8_S1:
 ; CHECK-RV32VC:       # %bb.0:
 ; CHECK-RV32VC-NEXT:    csrr a1, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a1, 4
+; CHECK-RV32VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV32VC-NEXT:    slli a2, a1, 2
-; CHECK-RV32VC-NEXT:    slli a5, a1, 3
+; CHECK-RV32VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV32VC-NEXT:    mv a4, a3
 ; CHECK-RV32VC-NEXT:    bltu a3, a2, .LBB917_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
 ; CHECK-RV32VC-NEXT:    mv a4, a2
 ; CHECK-RV32VC-NEXT:  .LBB917_2:
 ; CHECK-RV32VC-NEXT:    vl8re32.v v0, (a0)
-; CHECK-RV32VC-NEXT:    add a6, a6, a0
+; CHECK-RV32VC-NEXT:    add a5, a5, a0
 ; CHECK-RV32VC-NEXT:    slli a1, a1, 1
-; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    mv a5, a4
+; CHECK-RV32VC-NEXT:    add a0, a0, a6
+; CHECK-RV32VC-NEXT:    mv a6, a4
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB917_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a5, a1
+; CHECK-RV32VC-NEXT:    mv a6, a1
 ; CHECK-RV32VC-NEXT:  .LBB917_4:
 ; CHECK-RV32VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV32VC-NEXT:    .cfi_def_cfa_offset 16
@@ -39135,11 +39135,11 @@ define void @test_nontemporal_vp_scatter_nxv64i8_S1(<vscale x 64 x i8> %val, <vs
 ; CHECK-RV32VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV32VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV32VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a6)
-; CHECK-RV32VC-NEXT:    addi a6, sp, 16
-; CHECK-RV32VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a5)
+; CHECK-RV32VC-NEXT:    addi a5, sp, 16
+; CHECK-RV32VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a0)
-; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e8, m2, ta, ma
+; CHECK-RV32VC-NEXT:    vsetvli zero, a6, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.s1
 ; CHECK-RV32VC-NEXT:    vsoxei32.v v8, (zero), v16
 ; CHECK-RV32VC-NEXT:    sub a0, a4, a1
@@ -39514,7 +39514,7 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV64VC-NEXT:    add a1, a1, a2
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a1
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x38, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 56 * vlenb
-; CHECK-RV64VC-NEXT:    mv s2, a7
+; CHECK-RV64VC-NEXT:    mv s1, a7
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
 ; CHECK-RV64VC-NEXT:    slli a1, a1, 4
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
@@ -39528,12 +39528,12 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    mv s1, a0
+; CHECK-RV64VC-NEXT:    mv s2, a0
 ; CHECK-RV64VC-NEXT:    csrr s0, vlenb
 ; CHECK-RV64VC-NEXT:    li a1, 48
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -39547,14 +39547,14 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
 ; CHECK-RV64VC-NEXT:    slli a1, s0, 5
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 5
 ; CHECK-RV64VC-NEXT:    add a0, a0, sp
 ; CHECK-RV64VC-NEXT:    addi a0, a0, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    add a1, a1, s1
+; CHECK-RV64VC-NEXT:    add a1, a1, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a1)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -39567,113 +39567,113 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV64VC-NEXT:    li a1, 24
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    mv a3, s2
-; CHECK-RV64VC-NEXT:    bltu s2, a6, .LBB918_2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    mv a3, s1
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB918_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
-; CHECK-RV64VC-NEXT:    mv a3, a6
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:  .LBB918_2:
 ; CHECK-RV64VC-NEXT:    slli a5, s0, 4
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    slli a2, s0, 3
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    slli a6, s0, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB918_4
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB918_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a4, a7
+; CHECK-RV64VC-NEXT:    mv a4, a1
 ; CHECK-RV64VC-NEXT:  .LBB918_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s1)
-; CHECK-RV64VC-NEXT:    add a1, s1, a0
-; CHECK-RV64VC-NEXT:    add a5, a5, s1
-; CHECK-RV64VC-NEXT:    add a2, a2, s1
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s2)
+; CHECK-RV64VC-NEXT:    add a7, s2, a0
+; CHECK-RV64VC-NEXT:    add a5, a5, s2
+; CHECK-RV64VC-NEXT:    add a6, a6, s2
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB918_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB918_6:
-; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a1)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a7)
+; CHECK-RV64VC-NEXT:    csrr a7, vlenb
+; CHECK-RV64VC-NEXT:    slli a7, a7, 3
+; CHECK-RV64VC-NEXT:    add a7, a7, sp
+; CHECK-RV64VC-NEXT:    addi a7, a7, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a7) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a5)
-; CHECK-RV64VC-NEXT:    addi a1, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a2)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    mv a2, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a2
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v16, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a6)
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    mv a6, a5
+; CHECK-RV64VC-NEXT:    slli a5, a5, 1
+; CHECK-RV64VC-NEXT:    add a5, a5, a6
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v24, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, s0
-; CHECK-RV64VC-NEXT:    sub a1, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a0
-; CHECK-RV64VC-NEXT:    sltu a3, a3, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
+; CHECK-RV64VC-NEXT:    sub a5, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a4, a4, a0
+; CHECK-RV64VC-NEXT:    sltu a3, a3, a5
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a1
-; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    and a4, a4, a0
+; CHECK-RV64VC-NEXT:    and a0, a3, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v25, (zero), v8
-; CHECK-RV64VC-NEXT:    mv a1, a0
+; CHECK-RV64VC-NEXT:    mv a3, a0
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB918_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB918_8:
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v26, (zero), v0
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sub a2, s2, a6
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
-; CHECK-RV64VC-NEXT:    sltu a3, s2, a2
+; CHECK-RV64VC-NEXT:    sub a3, a0, s0
+; CHECK-RV64VC-NEXT:    sub a2, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sltu a4, s1, a2
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a1, a1, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a2
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a0
+; CHECK-RV64VC-NEXT:    and a0, a4, a2
 ; CHECK-RV64VC-NEXT:    mv a2, a0
-; CHECK-RV64VC-NEXT:    addi a3, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    addi a4, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v27, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a0, a7, .LBB918_10
+; CHECK-RV64VC-NEXT:    bltu a0, a1, .LBB918_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
-; CHECK-RV64VC-NEXT:    mv a2, a7
+; CHECK-RV64VC-NEXT:    mv a2, a1
 ; CHECK-RV64VC-NEXT:  .LBB918_10:
-; CHECK-RV64VC-NEXT:    mv a1, a2
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:    bltu a2, s0, .LBB918_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB918_12:
-; CHECK-RV64VC-NEXT:    csrr a3, vlenb
-; CHECK-RV64VC-NEXT:    slli a3, a3, 3
-; CHECK-RV64VC-NEXT:    add a3, a3, sp
-; CHECK-RV64VC-NEXT:    addi a3, a3, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    sub a1, a2, s0
-; CHECK-RV64VC-NEXT:    sub a3, a0, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a2, a1
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sub a3, a2, s0
+; CHECK-RV64VC-NEXT:    sub a1, a0, a1
+; CHECK-RV64VC-NEXT:    sltu a2, a2, a3
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
-; CHECK-RV64VC-NEXT:    and a0, a0, a3
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
+; CHECK-RV64VC-NEXT:    and a0, a0, a1
 ; CHECK-RV64VC-NEXT:    mv a1, a0
 ; CHECK-RV64VC-NEXT:    csrr a3, vlenb
 ; CHECK-RV64VC-NEXT:    slli a3, a3, 3
@@ -39737,22 +39737,22 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV32VC-LABEL: test_nontemporal_vp_scatter_nxv64i8_ALL:
 ; CHECK-RV32VC:       # %bb.0:
 ; CHECK-RV32VC-NEXT:    csrr a1, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a1, 4
+; CHECK-RV32VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV32VC-NEXT:    slli a2, a1, 2
-; CHECK-RV32VC-NEXT:    slli a5, a1, 3
+; CHECK-RV32VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV32VC-NEXT:    mv a4, a3
 ; CHECK-RV32VC-NEXT:    bltu a3, a2, .LBB918_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
 ; CHECK-RV32VC-NEXT:    mv a4, a2
 ; CHECK-RV32VC-NEXT:  .LBB918_2:
 ; CHECK-RV32VC-NEXT:    vl8re32.v v0, (a0)
-; CHECK-RV32VC-NEXT:    add a6, a6, a0
+; CHECK-RV32VC-NEXT:    add a5, a5, a0
 ; CHECK-RV32VC-NEXT:    slli a1, a1, 1
-; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    mv a5, a4
+; CHECK-RV32VC-NEXT:    add a0, a0, a6
+; CHECK-RV32VC-NEXT:    mv a6, a4
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB918_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a5, a1
+; CHECK-RV32VC-NEXT:    mv a6, a1
 ; CHECK-RV32VC-NEXT:  .LBB918_4:
 ; CHECK-RV32VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV32VC-NEXT:    .cfi_def_cfa_offset 16
@@ -39760,11 +39760,11 @@ define void @test_nontemporal_vp_scatter_nxv64i8_ALL(<vscale x 64 x i8> %val, <v
 ; CHECK-RV32VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV32VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV32VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a6)
-; CHECK-RV32VC-NEXT:    addi a6, sp, 16
-; CHECK-RV32VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a5)
+; CHECK-RV32VC-NEXT:    addi a5, sp, 16
+; CHECK-RV32VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a0)
-; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e8, m2, ta, ma
+; CHECK-RV32VC-NEXT:    vsetvli zero, a6, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.all
 ; CHECK-RV32VC-NEXT:    vsoxei32.v v8, (zero), v16
 ; CHECK-RV32VC-NEXT:    sub a0, a4, a1
@@ -40138,7 +40138,7 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV64VC-NEXT:    add a1, a1, a2
 ; CHECK-RV64VC-NEXT:    sub sp, sp, a1
 ; CHECK-RV64VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x38, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 56 * vlenb
-; CHECK-RV64VC-NEXT:    mv s2, a7
+; CHECK-RV64VC-NEXT:    mv s1, a7
 ; CHECK-RV64VC-NEXT:    csrr a1, vlenb
 ; CHECK-RV64VC-NEXT:    slli a1, a1, 4
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
@@ -40152,12 +40152,12 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV64VC-NEXT:    add a1, a1, sp
 ; CHECK-RV64VC-NEXT:    addi a1, a1, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    mv s1, a0
+; CHECK-RV64VC-NEXT:    mv s2, a0
 ; CHECK-RV64VC-NEXT:    csrr s0, vlenb
 ; CHECK-RV64VC-NEXT:    li a1, 48
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -40171,14 +40171,14 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
 ; CHECK-RV64VC-NEXT:    slli a1, s0, 5
-; CHECK-RV64VC-NEXT:    add a0, a0, s1
+; CHECK-RV64VC-NEXT:    add a0, a0, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a0)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 5
 ; CHECK-RV64VC-NEXT:    add a0, a0, sp
 ; CHECK-RV64VC-NEXT:    addi a0, a0, 16
 ; CHECK-RV64VC-NEXT:    vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    add a1, a1, s1
+; CHECK-RV64VC-NEXT:    add a1, a1, s2
 ; CHECK-RV64VC-NEXT:    vl8re64.v v8, (a1)
 ; CHECK-RV64VC-NEXT:    csrr a0, vlenb
 ; CHECK-RV64VC-NEXT:    slli a0, a0, 3
@@ -40191,113 +40191,113 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV64VC-NEXT:    li a1, 24
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:    call __muldi3
-; CHECK-RV64VC-NEXT:    slli a6, s0, 2
-; CHECK-RV64VC-NEXT:    mv a3, s2
-; CHECK-RV64VC-NEXT:    bltu s2, a6, .LBB919_2
+; CHECK-RV64VC-NEXT:    slli a2, s0, 2
+; CHECK-RV64VC-NEXT:    mv a3, s1
+; CHECK-RV64VC-NEXT:    bltu s1, a2, .LBB919_2
 ; CHECK-RV64VC-NEXT:  # %bb.1:
-; CHECK-RV64VC-NEXT:    mv a3, a6
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:  .LBB919_2:
 ; CHECK-RV64VC-NEXT:    slli a5, s0, 4
-; CHECK-RV64VC-NEXT:    slli a7, s0, 1
-; CHECK-RV64VC-NEXT:    slli a2, s0, 3
+; CHECK-RV64VC-NEXT:    slli a1, s0, 1
+; CHECK-RV64VC-NEXT:    slli a6, s0, 3
 ; CHECK-RV64VC-NEXT:    mv a4, a3
-; CHECK-RV64VC-NEXT:    bltu a3, a7, .LBB919_4
+; CHECK-RV64VC-NEXT:    bltu a3, a1, .LBB919_4
 ; CHECK-RV64VC-NEXT:  # %bb.3:
-; CHECK-RV64VC-NEXT:    mv a4, a7
+; CHECK-RV64VC-NEXT:    mv a4, a1
 ; CHECK-RV64VC-NEXT:  .LBB919_4:
-; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s1)
-; CHECK-RV64VC-NEXT:    add a1, s1, a0
-; CHECK-RV64VC-NEXT:    add a5, a5, s1
-; CHECK-RV64VC-NEXT:    add a2, a2, s1
+; CHECK-RV64VC-NEXT:    vl8re64.v v8, (s2)
+; CHECK-RV64VC-NEXT:    add a7, s2, a0
+; CHECK-RV64VC-NEXT:    add a5, a5, s2
+; CHECK-RV64VC-NEXT:    add a6, a6, s2
 ; CHECK-RV64VC-NEXT:    mv a0, a4
 ; CHECK-RV64VC-NEXT:    bltu a4, s0, .LBB919_6
 ; CHECK-RV64VC-NEXT:  # %bb.5:
 ; CHECK-RV64VC-NEXT:    mv a0, s0
 ; CHECK-RV64VC-NEXT:  .LBB919_6:
-; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a1)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 3
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a7)
+; CHECK-RV64VC-NEXT:    csrr a7, vlenb
+; CHECK-RV64VC-NEXT:    slli a7, a7, 3
+; CHECK-RV64VC-NEXT:    add a7, a7, sp
+; CHECK-RV64VC-NEXT:    addi a7, a7, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a7) # vscale x 64-byte Folded Spill
 ; CHECK-RV64VC-NEXT:    vl8re64.v v16, (a5)
-; CHECK-RV64VC-NEXT:    addi a1, sp, 16
-; CHECK-RV64VC-NEXT:    vs8r.v v16, (a1) # vscale x 64-byte Folded Spill
-; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a2)
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    mv a2, a1
-; CHECK-RV64VC-NEXT:    slli a1, a1, 1
-; CHECK-RV64VC-NEXT:    add a1, a1, a2
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    csrr a1, vlenb
-; CHECK-RV64VC-NEXT:    slli a1, a1, 4
-; CHECK-RV64VC-NEXT:    add a1, a1, sp
-; CHECK-RV64VC-NEXT:    addi a1, a1, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v16, (a1) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    addi a5, sp, 16
+; CHECK-RV64VC-NEXT:    vs8r.v v16, (a5) # vscale x 64-byte Folded Spill
+; CHECK-RV64VC-NEXT:    vl8re64.v v0, (a6)
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    mv a6, a5
+; CHECK-RV64VC-NEXT:    slli a5, a5, 1
+; CHECK-RV64VC-NEXT:    add a5, a5, a6
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v24, (a5) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    csrr a5, vlenb
+; CHECK-RV64VC-NEXT:    slli a5, a5, 4
+; CHECK-RV64VC-NEXT:    add a5, a5, sp
+; CHECK-RV64VC-NEXT:    addi a5, a5, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v16, (a5) # vscale x 64-byte Folded Reload
 ; CHECK-RV64VC-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v24, (zero), v16
 ; CHECK-RV64VC-NEXT:    sub a0, a4, s0
-; CHECK-RV64VC-NEXT:    sub a1, a3, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a4, a0
-; CHECK-RV64VC-NEXT:    sltu a3, a3, a1
-; CHECK-RV64VC-NEXT:    addi a2, a2, -1
+; CHECK-RV64VC-NEXT:    sub a5, a3, a1
+; CHECK-RV64VC-NEXT:    sltu a4, a4, a0
+; CHECK-RV64VC-NEXT:    sltu a3, a3, a5
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
 ; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a1
-; CHECK-RV64VC-NEXT:    vsetvli zero, a2, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    and a4, a4, a0
+; CHECK-RV64VC-NEXT:    and a0, a3, a5
+; CHECK-RV64VC-NEXT:    vsetvli zero, a4, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v25, (zero), v8
-; CHECK-RV64VC-NEXT:    mv a1, a0
+; CHECK-RV64VC-NEXT:    mv a3, a0
 ; CHECK-RV64VC-NEXT:    bltu a0, s0, .LBB919_8
 ; CHECK-RV64VC-NEXT:  # %bb.7:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB919_8:
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v26, (zero), v0
-; CHECK-RV64VC-NEXT:    sub a1, a0, s0
-; CHECK-RV64VC-NEXT:    sub a2, s2, a6
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
-; CHECK-RV64VC-NEXT:    sltu a3, s2, a2
+; CHECK-RV64VC-NEXT:    sub a3, a0, s0
+; CHECK-RV64VC-NEXT:    sub a2, s1, a2
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sltu a4, s1, a2
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    addi a3, a3, -1
-; CHECK-RV64VC-NEXT:    and a1, a1, a0
-; CHECK-RV64VC-NEXT:    and a0, a3, a2
+; CHECK-RV64VC-NEXT:    addi a4, a4, -1
+; CHECK-RV64VC-NEXT:    and a3, a3, a0
+; CHECK-RV64VC-NEXT:    and a0, a4, a2
 ; CHECK-RV64VC-NEXT:    mv a2, a0
-; CHECK-RV64VC-NEXT:    addi a3, sp, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    addi a4, sp, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v27, (zero), v8
-; CHECK-RV64VC-NEXT:    bltu a0, a7, .LBB919_10
+; CHECK-RV64VC-NEXT:    bltu a0, a1, .LBB919_10
 ; CHECK-RV64VC-NEXT:  # %bb.9:
-; CHECK-RV64VC-NEXT:    mv a2, a7
+; CHECK-RV64VC-NEXT:    mv a2, a1
 ; CHECK-RV64VC-NEXT:  .LBB919_10:
-; CHECK-RV64VC-NEXT:    mv a1, a2
+; CHECK-RV64VC-NEXT:    mv a3, a2
 ; CHECK-RV64VC-NEXT:    bltu a2, s0, .LBB919_12
 ; CHECK-RV64VC-NEXT:  # %bb.11:
-; CHECK-RV64VC-NEXT:    mv a1, s0
+; CHECK-RV64VC-NEXT:    mv a3, s0
 ; CHECK-RV64VC-NEXT:  .LBB919_12:
-; CHECK-RV64VC-NEXT:    csrr a3, vlenb
-; CHECK-RV64VC-NEXT:    slli a3, a3, 3
-; CHECK-RV64VC-NEXT:    add a3, a3, sp
-; CHECK-RV64VC-NEXT:    addi a3, a3, 16
-; CHECK-RV64VC-NEXT:    vl8r.v v8, (a3) # vscale x 64-byte Folded Reload
-; CHECK-RV64VC-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
+; CHECK-RV64VC-NEXT:    csrr a4, vlenb
+; CHECK-RV64VC-NEXT:    slli a4, a4, 3
+; CHECK-RV64VC-NEXT:    add a4, a4, sp
+; CHECK-RV64VC-NEXT:    addi a4, a4, 16
+; CHECK-RV64VC-NEXT:    vl8r.v v8, (a4) # vscale x 64-byte Folded Reload
+; CHECK-RV64VC-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-RV64VC-NEXT:    c.ntl.all
 ; CHECK-RV64VC-NEXT:    vsoxei64.v v28, (zero), v8
-; CHECK-RV64VC-NEXT:    sub a1, a2, s0
-; CHECK-RV64VC-NEXT:    sub a3, a0, a7
-; CHECK-RV64VC-NEXT:    sltu a2, a2, a1
-; CHECK-RV64VC-NEXT:    sltu a0, a0, a3
+; CHECK-RV64VC-NEXT:    sub a3, a2, s0
+; CHECK-RV64VC-NEXT:    sub a1, a0, a1
+; CHECK-RV64VC-NEXT:    sltu a2, a2, a3
+; CHECK-RV64VC-NEXT:    sltu a0, a0, a1
 ; CHECK-RV64VC-NEXT:    addi a2, a2, -1
 ; CHECK-RV64VC-NEXT:    addi a0, a0, -1
-; CHECK-RV64VC-NEXT:    and a2, a2, a1
-; CHECK-RV64VC-NEXT:    and a0, a0, a3
+; CHECK-RV64VC-NEXT:    and a2, a2, a3
+; CHECK-RV64VC-NEXT:    and a0, a0, a1
 ; CHECK-RV64VC-NEXT:    mv a1, a0
 ; CHECK-RV64VC-NEXT:    csrr a3, vlenb
 ; CHECK-RV64VC-NEXT:    slli a3, a3, 3
@@ -40361,22 +40361,22 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV32VC-LABEL: test_nontemporal_vp_scatter_nxv64i8_DEFAULT:
 ; CHECK-RV32VC:       # %bb.0:
 ; CHECK-RV32VC-NEXT:    csrr a1, vlenb
-; CHECK-RV32VC-NEXT:    slli a6, a1, 4
+; CHECK-RV32VC-NEXT:    slli a5, a1, 4
 ; CHECK-RV32VC-NEXT:    slli a2, a1, 2
-; CHECK-RV32VC-NEXT:    slli a5, a1, 3
+; CHECK-RV32VC-NEXT:    slli a6, a1, 3
 ; CHECK-RV32VC-NEXT:    mv a4, a3
 ; CHECK-RV32VC-NEXT:    bltu a3, a2, .LBB919_2
 ; CHECK-RV32VC-NEXT:  # %bb.1:
 ; CHECK-RV32VC-NEXT:    mv a4, a2
 ; CHECK-RV32VC-NEXT:  .LBB919_2:
 ; CHECK-RV32VC-NEXT:    vl8re32.v v0, (a0)
-; CHECK-RV32VC-NEXT:    add a6, a6, a0
+; CHECK-RV32VC-NEXT:    add a5, a5, a0
 ; CHECK-RV32VC-NEXT:    slli a1, a1, 1
-; CHECK-RV32VC-NEXT:    add a0, a0, a5
-; CHECK-RV32VC-NEXT:    mv a5, a4
+; CHECK-RV32VC-NEXT:    add a0, a0, a6
+; CHECK-RV32VC-NEXT:    mv a6, a4
 ; CHECK-RV32VC-NEXT:    bltu a4, a1, .LBB919_4
 ; CHECK-RV32VC-NEXT:  # %bb.3:
-; CHECK-RV32VC-NEXT:    mv a5, a1
+; CHECK-RV32VC-NEXT:    mv a6, a1
 ; CHECK-RV32VC-NEXT:  .LBB919_4:
 ; CHECK-RV32VC-NEXT:    addi sp, sp, -16
 ; CHECK-RV32VC-NEXT:    .cfi_def_cfa_offset 16
@@ -40384,11 +40384,11 @@ define void @test_nontemporal_vp_scatter_nxv64i8_DEFAULT(<vscale x 64 x i8> %val
 ; CHECK-RV32VC-NEXT:    slli a7, a7, 3
 ; CHECK-RV32VC-NEXT:    sub sp, sp, a7
 ; CHECK-RV32VC-NEXT:    .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
-; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a6)
-; CHECK-RV32VC-NEXT:    addi a6, sp, 16
-; CHECK-RV32VC-NEXT:    vs8r.v v24, (a6) # vscale x 64-byte Folded Spill
+; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a5)
+; CHECK-RV32VC-NEXT:    addi a5, sp, 16
+; CHECK-RV32VC-NEXT:    vs8r.v v24, (a5) # vscale x 64-byte Folded Spill
 ; CHECK-RV32VC-NEXT:    vl8re32.v v24, (a0)
-; CHECK-RV32VC-NEXT:    vsetvli zero, a5, e8, m2, ta, ma
+; CHECK-RV32VC-NEXT:    vsetvli zero, a6, e8, m2, ta, ma
 ; CHECK-RV32VC-NEXT:    c.ntl.all
 ; CHECK-RV32VC-NEXT:    vsoxei32.v v8, (zero), v16
 ; CHECK-RV32VC-NEXT:    sub a0, a4, a1
diff --git a/llvm/test/CodeGen/RISCV/rvv/pr95865.ll b/llvm/test/CodeGen/RISCV/rvv/pr95865.ll
index d10a71ba3ad89..c0c17ee7c4ef4 100644
--- a/llvm/test/CodeGen/RISCV/rvv/pr95865.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/pr95865.ll
@@ -35,114 +35,114 @@ define i32 @main(i1 %arg.1, i64 %arg.2, i1 %arg.3, i64 %arg.4, i1 %arg.5, <vscal
 ; CHECK-NEXT:    .cfi_offset s9, -88
 ; CHECK-NEXT:    .cfi_offset s10, -96
 ; CHECK-NEXT:    .cfi_offset s11, -104
-; CHECK-NEXT:    li a6, 0
-; CHECK-NEXT:    ld s2, 112(sp)
+; CHECK-NEXT:    li a1, 0
+; CHECK-NEXT:    ld s0, 112(sp)
 ; CHECK-NEXT:    vsetivli zero, 8, e32, m2, ta, ma
 ; CHECK-NEXT:    vmv.v.i v8, 0
-; CHECK-NEXT:    li a7, 8
-; CHECK-NEXT:    li t0, 12
-; CHECK-NEXT:    li s0, 4
-; CHECK-NEXT:    li t1, 20
-; CHECK-NEXT:    andi t3, a4, 1
-; CHECK-NEXT:    li t2, 4
+; CHECK-NEXT:    li a3, 8
+; CHECK-NEXT:    li a5, 12
+; CHECK-NEXT:    li a6, 4
+; CHECK-NEXT:    li a7, 20
+; CHECK-NEXT:    andi a4, a4, 1
+; CHECK-NEXT:    li t0, 4
 ; CHECK-NEXT:  .LBB0_1: # %for.cond1.preheader.i
 ; CHECK-NEXT:    # =>This Loop Header: Depth=1
 ; CHECK-NEXT:    # Child Loop BB0_2 Depth 2
 ; CHECK-NEXT:    # Child Loop BB0_3 Depth 3
 ; CHECK-NEXT:    # Child Loop BB0_4 Depth 4
 ; CHECK-NEXT:    # Child Loop BB0_5 Depth 5
-; CHECK-NEXT:    mv t4, t1
-; CHECK-NEXT:    mv t5, t2
-; CHECK-NEXT:    mv t6, t0
-; CHECK-NEXT:    mv s3, a7
-; CHECK-NEXT:    mv s4, a6
+; CHECK-NEXT:    mv t1, a7
+; CHECK-NEXT:    mv t2, t0
+; CHECK-NEXT:    mv t3, a5
+; CHECK-NEXT:    mv t4, a3
+; CHECK-NEXT:    mv t5, a1
 ; CHECK-NEXT:  .LBB0_2: # %for.cond5.preheader.i
 ; CHECK-NEXT:    # Parent Loop BB0_1 Depth=1
 ; CHECK-NEXT:    # => This Loop Header: Depth=2
 ; CHECK-NEXT:    # Child Loop BB0_3 Depth 3
 ; CHECK-NEXT:    # Child Loop BB0_4 Depth 4
 ; CHECK-NEXT:    # Child Loop BB0_5 Depth 5
-; CHECK-NEXT:    mv s5, t4
-; CHECK-NEXT:    mv s6, t5
-; CHECK-NEXT:    mv s7, t6
-; CHECK-NEXT:    mv s8, s3
-; CHECK-NEXT:    mv s9, s4
+; CHECK-NEXT:    mv t6, t1
+; CHECK-NEXT:    mv s1, t2
+; CHECK-NEXT:    mv s2, t3
+; CHECK-NEXT:    mv s3, t4
+; CHECK-NEXT:    mv s4, t5
 ; CHECK-NEXT:  .LBB0_3: # %for.cond9.preheader.i
 ; CHECK-NEXT:    # Parent Loop BB0_1 Depth=1
 ; CHECK-NEXT:    # Parent Loop BB0_2 Depth=2
 ; CHECK-NEXT:    # => This Loop Header: Depth=3
 ; CHECK-NEXT:    # Child Loop BB0_4 Depth 4
 ; CHECK-NEXT:    # Child Loop BB0_5 Depth 5
-; CHECK-NEXT:    mv s11, s5
-; CHECK-NEXT:    mv a3, s6
-; CHECK-NEXT:    mv ra, s7
-; CHECK-NEXT:    mv a4, s8
-; CHECK-NEXT:    mv s1, s9
+; CHECK-NEXT:    mv s6, t6
+; CHECK-NEXT:    mv s7, s1
+; CHECK-NEXT:    mv s8, s2
+; CHECK-NEXT:    mv s9, s3
+; CHECK-NEXT:    mv s10, s4
 ; CHECK-NEXT:  .LBB0_4: # %vector.ph.i
 ; CHECK-NEXT:    # Parent Loop BB0_1 Depth=1
 ; CHECK-NEXT:    # Parent Loop BB0_2 Depth=2
 ; CHECK-NEXT:    # Parent Loop BB0_3 Depth=3
 ; CHECK-NEXT:    # => This Loop Header: Depth=4
 ; CHECK-NEXT:    # Child Loop BB0_5 Depth 5
-; CHECK-NEXT:    li a5, 0
+; CHECK-NEXT:    li s5, 0
 ; CHECK-NEXT:  .LBB0_5: # %vector.body.i
 ; CHECK-NEXT:    # Parent Loop BB0_1 Depth=1
 ; CHECK-NEXT:    # Parent Loop BB0_2 Depth=2
 ; CHECK-NEXT:    # Parent Loop BB0_3 Depth=3
 ; CHECK-NEXT:    # Parent Loop BB0_4 Depth=4
 ; CHECK-NEXT:    # => This Inner Loop Header: Depth=5
-; CHECK-NEXT:    add a1, a4, a5
-; CHECK-NEXT:    vse32.v v8, (a1), v0.t
-; CHECK-NEXT:    addi a1, a5, 4
-; CHECK-NEXT:    add a5, a5, a3
-; CHECK-NEXT:    vse32.v v8, (a5), v0.t
-; CHECK-NEXT:    mv a5, a1
-; CHECK-NEXT:    bne a1, s0, .LBB0_5
+; CHECK-NEXT:    add s11, s9, s5
+; CHECK-NEXT:    vse32.v v8, (s11), v0.t
+; CHECK-NEXT:    addi s11, s5, 4
+; CHECK-NEXT:    add s5, s5, s7
+; CHECK-NEXT:    vse32.v v8, (s5), v0.t
+; CHECK-NEXT:    mv s5, s11
+; CHECK-NEXT:    bne s11, a6, .LBB0_5
 ; CHECK-NEXT:  # %bb.6: # %for.cond.cleanup15.i
 ; CHECK-NEXT:    # in Loop: Header=BB0_4 Depth=4
-; CHECK-NEXT:    addi s1, s1, 4
-; CHECK-NEXT:    addi a4, a4, 4
-; CHECK-NEXT:    addi ra, ra, 4
-; CHECK-NEXT:    andi s10, a0, 1
-; CHECK-NEXT:    addi a3, a3, 4
-; CHECK-NEXT:    addi s11, s11, 4
-; CHECK-NEXT:    beqz s10, .LBB0_4
-; CHECK-NEXT:  # %bb.7: # %for.cond.cleanup11.i
-; CHECK-NEXT:    # in Loop: Header=BB0_3 Depth=3
+; CHECK-NEXT:    addi s10, s10, 4
 ; CHECK-NEXT:    addi s9, s9, 4
 ; CHECK-NEXT:    addi s8, s8, 4
+; CHECK-NEXT:    andi s5, a0, 1
 ; CHECK-NEXT:    addi s7, s7, 4
-; CHECK-NEXT:    andi a1, a2, 1
 ; CHECK-NEXT:    addi s6, s6, 4
-; CHECK-NEXT:    addi s5, s5, 4
-; CHECK-NEXT:    beqz a1, .LBB0_3
-; CHECK-NEXT:  # %bb.8: # %for.cond.cleanup7.i
-; CHECK-NEXT:    # in Loop: Header=BB0_2 Depth=2
+; CHECK-NEXT:    beqz s5, .LBB0_4
+; CHECK-NEXT:  # %bb.7: # %for.cond.cleanup11.i
+; CHECK-NEXT:    # in Loop: Header=BB0_3 Depth=3
 ; CHECK-NEXT:    addi s4, s4, 4
 ; CHECK-NEXT:    addi s3, s3, 4
+; CHECK-NEXT:    addi s2, s2, 4
+; CHECK-NEXT:    andi s6, a2, 1
+; CHECK-NEXT:    addi s1, s1, 4
 ; CHECK-NEXT:    addi t6, t6, 4
+; CHECK-NEXT:    beqz s6, .LBB0_3
+; CHECK-NEXT:  # %bb.8: # %for.cond.cleanup7.i
+; CHECK-NEXT:    # in Loop: Header=BB0_2 Depth=2
 ; CHECK-NEXT:    addi t5, t5, 4
 ; CHECK-NEXT:    addi t4, t4, 4
-; CHECK-NEXT:    beqz t3, .LBB0_2
+; CHECK-NEXT:    addi t3, t3, 4
+; CHECK-NEXT:    addi t2, t2, 4
+; CHECK-NEXT:    addi t1, t1, 4
+; CHECK-NEXT:    beqz a4, .LBB0_2
 ; CHECK-NEXT:  # %bb.9: # %for.cond.cleanup3.i
 ; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=1
-; CHECK-NEXT:    addi a6, a6, 4
-; CHECK-NEXT:    addi a7, a7, 4
+; CHECK-NEXT:    addi a1, a1, 4
+; CHECK-NEXT:    addi a3, a3, 4
+; CHECK-NEXT:    addi a5, a5, 4
 ; CHECK-NEXT:    addi t0, t0, 4
-; CHECK-NEXT:    addi t2, t2, 4
-; CHECK-NEXT:    addi t1, t1, 4
-; CHECK-NEXT:    beqz a1, .LBB0_1
+; CHECK-NEXT:    addi a7, a7, 4
+; CHECK-NEXT:    beqz s6, .LBB0_1
 ; CHECK-NEXT:  # %bb.10: # %l.exit
 ; CHECK-NEXT:    li a0, 0
 ; CHECK-NEXT:    jalr a0
-; CHECK-NEXT:    beqz s10, .LBB0_12
+; CHECK-NEXT:    beqz s5, .LBB0_12
 ; CHECK-NEXT:  .LBB0_11: # %for.body7.us.14
 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    j .LBB0_11
 ; CHECK-NEXT:  .LBB0_12: # %for.body7.us.19
 ; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma
 ; CHECK-NEXT:    vmv.v.i v8, 0
-; CHECK-NEXT:    vmv.s.x v16, s2
+; CHECK-NEXT:    vmv.s.x v16, s0
 ; CHECK-NEXT:    vsetivli zero, 2, e32, m1, tu, ma
 ; CHECK-NEXT:    vslideup.vi v8, v16, 1
 ; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma
diff --git a/llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll b/llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll
index 4e63e1b3e71db..88e894cca3799 100644
--- a/llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll
@@ -609,18 +609,18 @@ define void @vlmax(i64 %N, ptr %c, ptr %a, ptr %b) {
 ; CHECK-NEXT:    blez a0, .LBB12_3
 ; CHECK-NEXT:  # %bb.1: # %for.body.preheader
 ; CHECK-NEXT:    li a4, 0
-; CHECK-NEXT:    vsetvli a6, zero, e64, m1, ta, ma
-; CHECK-NEXT:    slli a5, a6, 3
+; CHECK-NEXT:    vsetvli a5, zero, e64, m1, ta, ma
+; CHECK-NEXT:    slli a6, a5, 3
 ; CHECK-NEXT:  .LBB12_2: # %for.body
 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    vle64.v v8, (a2)
 ; CHECK-NEXT:    vle64.v v9, (a3)
 ; CHECK-NEXT:    vfadd.vv v8, v8, v9
-; CHECK-NEXT:    add a4, a4, a6
+; CHECK-NEXT:    add a4, a4, a5
 ; CHECK-NEXT:    vse64.v v8, (a1)
-; CHECK-NEXT:    add a1, a1, a5
-; CHECK-NEXT:    add a3, a3, a5
-; CHECK-NEXT:    add a2, a2, a5
+; CHECK-NEXT:    add a1, a1, a6
+; CHECK-NEXT:    add a3, a3, a6
+; CHECK-NEXT:    add a2, a2, a6
 ; CHECK-NEXT:    blt a4, a0, .LBB12_2
 ; CHECK-NEXT:  .LBB12_3: # %for.end
 ; CHECK-NEXT:    ret
diff --git a/llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll b/llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
index 1c043703ded13..d164861aa3e0d 100644
--- a/llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
@@ -167,40 +167,40 @@ define void @test1(ptr nocapture noundef writeonly %dst, i32 noundef signext %i_
 ; RV64P670-NEXT:    .cfi_offset s2, -24
 ; RV64P670-NEXT:    .cfi_offset s3, -32
 ; RV64P670-NEXT:    .cfi_offset s4, -40
-; RV64P670-NEXT:    addi s1, a7, -1
-; RV64P670-NEXT:    add s0, a0, a6
+; RV64P670-NEXT:    addi t2, a7, -1
+; RV64P670-NEXT:    add t4, a0, a6
+; RV64P670-NEXT:    add t5, a2, a6
 ; RV64P670-NEXT:    li t0, 0
+; RV64P670-NEXT:    zext.w t2, t2
 ; RV64P670-NEXT:    li t1, 0
-; RV64P670-NEXT:    zext.w s1, s1
-; RV64P670-NEXT:    mul t2, a1, s1
-; RV64P670-NEXT:    add t4, s0, t2
-; RV64P670-NEXT:    mul t2, a3, s1
-; RV64P670-NEXT:    add s0, a2, a6
-; RV64P670-NEXT:    mul s1, a5, s1
-; RV64P670-NEXT:    add t3, s0, t2
-; RV64P670-NEXT:    add s0, a4, a6
+; RV64P670-NEXT:    mul t3, a1, t2
+; RV64P670-NEXT:    add t4, t4, t3
+; RV64P670-NEXT:    mul t3, a3, t2
+; RV64P670-NEXT:    mul t2, a5, t2
+; RV64P670-NEXT:    sltu t6, a2, t4
+; RV64P670-NEXT:    sltu t4, a4, t4
+; RV64P670-NEXT:    add t3, t3, t5
+; RV64P670-NEXT:    add t5, a4, a6
+; RV64P670-NEXT:    add t5, t5, t2
+; RV64P670-NEXT:    sltu t3, a0, t3
 ; RV64P670-NEXT:    csrr t2, vlenb
-; RV64P670-NEXT:    add t5, s0, s1
-; RV64P670-NEXT:    sltu s1, a0, t3
-; RV64P670-NEXT:    sltu s0, a2, t4
+; RV64P670-NEXT:    sltu t5, a0, t5
+; RV64P670-NEXT:    and t3, t3, t6
+; RV64P670-NEXT:    or t6, a1, a3
+; RV64P670-NEXT:    and t4, t5, t4
+; RV64P670-NEXT:    or t5, a1, a5
+; RV64P670-NEXT:    srli t6, t6, 63
+; RV64P670-NEXT:    srli t5, t5, 63
+; RV64P670-NEXT:    or t6, t3, t6
 ; RV64P670-NEXT:    slli t3, t2, 1
-; RV64P670-NEXT:    and s0, s0, s1
-; RV64P670-NEXT:    or s1, a1, a3
-; RV64P670-NEXT:    srli s1, s1, 63
-; RV64P670-NEXT:    or t6, s0, s1
-; RV64P670-NEXT:    sltu s1, a0, t5
-; RV64P670-NEXT:    sltu s0, a4, t4
+; RV64P670-NEXT:    or t4, t4, t5
+; RV64P670-NEXT:    li t5, 32
+; RV64P670-NEXT:    maxu t5, t3, t5
+; RV64P670-NEXT:    or t6, t6, t4
 ; RV64P670-NEXT:    add t4, a0, a6
-; RV64P670-NEXT:    and s0, s0, s1
-; RV64P670-NEXT:    or s1, a1, a5
-; RV64P670-NEXT:    srli s1, s1, 63
-; RV64P670-NEXT:    or s0, s0, s1
-; RV64P670-NEXT:    li s1, 32
-; RV64P670-NEXT:    maxu s1, t3, s1
-; RV64P670-NEXT:    or s0, t6, s0
-; RV64P670-NEXT:    sltu s1, a6, s1
-; RV64P670-NEXT:    or s0, s0, s1
-; RV64P670-NEXT:    andi t5, s0, 1
+; RV64P670-NEXT:    sltu t5, a6, t5
+; RV64P670-NEXT:    or t5, t5, t6
+; RV64P670-NEXT:    andi t5, t5, 1
 ; RV64P670-NEXT:    j .LBB0_4
 ; RV64P670-NEXT:  .LBB0_3: # %for.cond1.for.cond.cleanup3_crit_edge.us
 ; RV64P670-NEXT:    # in Loop: Header=BB0_4 Depth=1
@@ -220,49 +220,49 @@ define void @test1(ptr nocapture noundef writeonly %dst, i32 noundef signext %i_
 ; RV64P670-NEXT:    j .LBB0_9
 ; RV64P670-NEXT:  .LBB0_6: # %vector.ph
 ; RV64P670-NEXT:    # in Loop: Header=BB0_4 Depth=1
-; RV64P670-NEXT:    slli s1, t2, 28
-; RV64P670-NEXT:    mv s2, a2
-; RV64P670-NEXT:    mv s3, a4
-; RV64P670-NEXT:    mv s4, a0
-; RV64P670-NEXT:    sub s1, s1, t3
-; RV64P670-NEXT:    vsetvli s0, zero, e8, m2, ta, ma
-; RV64P670-NEXT:    and t6, s1, a6
-; RV64P670-NEXT:    mv s1, t6
+; RV64P670-NEXT:    slli t6, t2, 28
+; RV64P670-NEXT:    mv s0, a2
+; RV64P670-NEXT:    mv s1, a4
+; RV64P670-NEXT:    mv s2, a0
+; RV64P670-NEXT:    sub t6, t6, t3
+; RV64P670-NEXT:    vsetvli s4, zero, e8, m2, ta, ma
+; RV64P670-NEXT:    and t6, t6, a6
+; RV64P670-NEXT:    mv s3, t6
 ; RV64P670-NEXT:  .LBB0_7: # %vector.body
 ; RV64P670-NEXT:    # Parent Loop BB0_4 Depth=1
 ; RV64P670-NEXT:    # => This Inner Loop Header: Depth=2
-; RV64P670-NEXT:    vl2r.v v8, (s2)
-; RV64P670-NEXT:    sub s1, s1, t3
-; RV64P670-NEXT:    add s2, s2, t3
-; RV64P670-NEXT:    vl2r.v v10, (s3)
-; RV64P670-NEXT:    add s3, s3, t3
+; RV64P670-NEXT:    vl2r.v v8, (s0)
+; RV64P670-NEXT:    sub s3, s3, t3
+; RV64P670-NEXT:    add s0, s0, t3
+; RV64P670-NEXT:    vl2r.v v10, (s1)
+; RV64P670-NEXT:    add s1, s1, t3
 ; RV64P670-NEXT:    vaaddu.vv v8, v8, v10
-; RV64P670-NEXT:    vs2r.v v8, (s4)
-; RV64P670-NEXT:    add s4, s4, t3
-; RV64P670-NEXT:    bnez s1, .LBB0_7
+; RV64P670-NEXT:    vs2r.v v8, (s2)
+; RV64P670-NEXT:    add s2, s2, t3
+; RV64P670-NEXT:    bnez s3, .LBB0_7
 ; RV64P670-NEXT:  # %bb.8: # %middle.block
 ; RV64P670-NEXT:    # in Loop: Header=BB0_4 Depth=1
 ; RV64P670-NEXT:    beq t6, a6, .LBB0_3
 ; RV64P670-NEXT:  .LBB0_9: # %for.body4.us.preheader
 ; RV64P670-NEXT:    # in Loop: Header=BB0_4 Depth=1
-; RV64P670-NEXT:    mul s2, a1, t0
+; RV64P670-NEXT:    mul s0, a1, t0
 ; RV64P670-NEXT:    add s1, a0, t6
-; RV64P670-NEXT:    add s4, a4, t6
+; RV64P670-NEXT:    add s2, a4, t6
 ; RV64P670-NEXT:    add t6, t6, a2
-; RV64P670-NEXT:    add s2, s2, t4
+; RV64P670-NEXT:    add s0, s0, t4
 ; RV64P670-NEXT:  .LBB0_10: # %for.body4.us
 ; RV64P670-NEXT:    # Parent Loop BB0_4 Depth=1
 ; RV64P670-NEXT:    # => This Inner Loop Header: Depth=2
 ; RV64P670-NEXT:    lbu s3, 0(t6)
-; RV64P670-NEXT:    lbu s0, 0(s4)
-; RV64P670-NEXT:    addi s4, s4, 1
+; RV64P670-NEXT:    lbu s4, 0(s2)
+; RV64P670-NEXT:    addi s2, s2, 1
 ; RV64P670-NEXT:    addi t6, t6, 1
-; RV64P670-NEXT:    add s0, s0, s3
-; RV64P670-NEXT:    addi s0, s0, 1
-; RV64P670-NEXT:    srli s0, s0, 1
-; RV64P670-NEXT:    sb s0, 0(s1)
+; RV64P670-NEXT:    add s3, s3, s4
+; RV64P670-NEXT:    addi s3, s3, 1
+; RV64P670-NEXT:    srli s3, s3, 1
+; RV64P670-NEXT:    sb s3, 0(s1)
 ; RV64P670-NEXT:    addi s1, s1, 1
-; RV64P670-NEXT:    bne s1, s2, .LBB0_10
+; RV64P670-NEXT:    bne s1, s0, .LBB0_10
 ; RV64P670-NEXT:    j .LBB0_3
 ; RV64P670-NEXT:  .LBB0_11:
 ; RV64P670-NEXT:    ld s0, 40(sp) # 8-byte Folded Reload
@@ -301,38 +301,38 @@ define void @test1(ptr nocapture noundef writeonly %dst, i32 noundef signext %i_
 ; RV64X60-NEXT:    .cfi_offset s0, -8
 ; RV64X60-NEXT:    li t0, 0
 ; RV64X60-NEXT:    li t1, 0
-; RV64X60-NEXT:    addi s1, a7, -1
-; RV64X60-NEXT:    zext.w s1, s1
-; RV64X60-NEXT:    mul t3, a1, s1
-; RV64X60-NEXT:    mul t5, a3, s1
-; RV64X60-NEXT:    mul t4, a5, s1
-; RV64X60-NEXT:    add s1, a0, a6
+; RV64X60-NEXT:    addi t2, a7, -1
+; RV64X60-NEXT:    zext.w t2, t2
+; RV64X60-NEXT:    mul t3, a1, t2
+; RV64X60-NEXT:    mul t4, a3, t2
+; RV64X60-NEXT:    mul t5, a5, t2
+; RV64X60-NEXT:    add t6, a0, a6
 ; RV64X60-NEXT:    csrr t2, vlenb
 ; RV64X60-NEXT:    add s0, a2, a6
-; RV64X60-NEXT:    add s2, s1, t3
+; RV64X60-NEXT:    add t6, t6, t3
 ; RV64X60-NEXT:    add t3, a4, a6
-; RV64X60-NEXT:    add t5, t5, s0
-; RV64X60-NEXT:    or t6, a1, a3
-; RV64X60-NEXT:    add t4, t4, t3
-; RV64X60-NEXT:    sltu s0, a0, t5
-; RV64X60-NEXT:    sltu s1, a2, s2
-; RV64X60-NEXT:    and t5, s0, s1
+; RV64X60-NEXT:    add t4, t4, s0
+; RV64X60-NEXT:    or s0, a1, a3
+; RV64X60-NEXT:    add t5, t5, t3
+; RV64X60-NEXT:    sltu t3, a0, t4
+; RV64X60-NEXT:    sltu t4, a2, t6
+; RV64X60-NEXT:    and t4, t3, t4
 ; RV64X60-NEXT:    slli t3, t2, 1
-; RV64X60-NEXT:    sltu t4, a0, t4
-; RV64X60-NEXT:    sltu s0, a4, s2
-; RV64X60-NEXT:    srli s1, t6, 63
-; RV64X60-NEXT:    and s0, t4, s0
-; RV64X60-NEXT:    or t4, t5, s1
-; RV64X60-NEXT:    or s1, a1, a5
-; RV64X60-NEXT:    li t5, 32
-; RV64X60-NEXT:    srli s1, s1, 63
-; RV64X60-NEXT:    or s0, s0, s1
-; RV64X60-NEXT:    maxu s1, t3, t5
-; RV64X60-NEXT:    or s0, t4, s0
-; RV64X60-NEXT:    sltu s1, a6, s1
-; RV64X60-NEXT:    or s0, s0, s1
+; RV64X60-NEXT:    sltu t5, a0, t5
+; RV64X60-NEXT:    sltu t6, a4, t6
+; RV64X60-NEXT:    srli s0, s0, 63
+; RV64X60-NEXT:    and t5, t5, t6
+; RV64X60-NEXT:    or t4, t4, s0
+; RV64X60-NEXT:    or t6, a1, a5
+; RV64X60-NEXT:    li s0, 32
+; RV64X60-NEXT:    srli t6, t6, 63
+; RV64X60-NEXT:    or t5, t5, t6
+; RV64X60-NEXT:    maxu t6, t3, s0
+; RV64X60-NEXT:    or t4, t4, t5
+; RV64X60-NEXT:    sltu t5, a6, t6
+; RV64X60-NEXT:    or t5, t5, t4
 ; RV64X60-NEXT:    add t4, a0, a6
-; RV64X60-NEXT:    andi t5, s0, 1
+; RV64X60-NEXT:    andi t5, t5, 1
 ; RV64X60-NEXT:    j .LBB0_4
 ; RV64X60-NEXT:  .LBB0_3: # %for.cond1.for.cond.cleanup3_crit_edge.us
 ; RV64X60-NEXT:    # in Loop: Header=BB0_4 Depth=1
@@ -352,49 +352,49 @@ define void @test1(ptr nocapture noundef writeonly %dst, i32 noundef signext %i_
 ; RV64X60-NEXT:    j .LBB0_9
 ; RV64X60-NEXT:  .LBB0_6: # %vector.ph
 ; RV64X60-NEXT:    # in Loop: Header=BB0_4 Depth=1
-; RV64X60-NEXT:    slli s1, t2, 28
-; RV64X60-NEXT:    sub s1, s1, t3
-; RV64X60-NEXT:    and t6, s1, a6
-; RV64X60-NEXT:    mv s2, a2
-; RV64X60-NEXT:    mv s3, a4
-; RV64X60-NEXT:    mv s4, a0
-; RV64X60-NEXT:    mv s1, t6
-; RV64X60-NEXT:    vsetvli s0, zero, e8, m2, ta, ma
+; RV64X60-NEXT:    slli t6, t2, 28
+; RV64X60-NEXT:    sub t6, t6, t3
+; RV64X60-NEXT:    and t6, t6, a6
+; RV64X60-NEXT:    mv s0, a2
+; RV64X60-NEXT:    mv s1, a4
+; RV64X60-NEXT:    mv s2, a0
+; RV64X60-NEXT:    mv s3, t6
+; RV64X60-NEXT:    vsetvli s4, zero, e8, m2, ta, ma
 ; RV64X60-NEXT:  .LBB0_7: # %vector.body
 ; RV64X60-NEXT:    # Parent Loop BB0_4 Depth=1
 ; RV64X60-NEXT:    # => This Inner Loop Header: Depth=2
-; RV64X60-NEXT:    vl2r.v v8, (s2)
-; RV64X60-NEXT:    vl2r.v v10, (s3)
+; RV64X60-NEXT:    vl2r.v v8, (s0)
+; RV64X60-NEXT:    vl2r.v v10, (s1)
 ; RV64X60-NEXT:    vaaddu.vv v8, v8, v10
-; RV64X60-NEXT:    sub s1, s1, t3
-; RV64X60-NEXT:    vs2r.v v8, (s4)
-; RV64X60-NEXT:    add s4, s4, t3
-; RV64X60-NEXT:    add s3, s3, t3
+; RV64X60-NEXT:    sub s3, s3, t3
+; RV64X60-NEXT:    vs2r.v v8, (s2)
 ; RV64X60-NEXT:    add s2, s2, t3
-; RV64X60-NEXT:    bnez s1, .LBB0_7
+; RV64X60-NEXT:    add s1, s1, t3
+; RV64X60-NEXT:    add s0, s0, t3
+; RV64X60-NEXT:    bnez s3, .LBB0_7
 ; RV64X60-NEXT:  # %bb.8: # %middle.block
 ; RV64X60-NEXT:    # in Loop: Header=BB0_4 Depth=1
 ; RV64X60-NEXT:    beq t6, a6, .LBB0_3
 ; RV64X60-NEXT:  .LBB0_9: # %for.body4.us.preheader
 ; RV64X60-NEXT:    # in Loop: Header=BB0_4 Depth=1
-; RV64X60-NEXT:    mul s2, a1, t0
+; RV64X60-NEXT:    mul s1, a1, t0
 ; RV64X60-NEXT:    add s0, a0, t6
-; RV64X60-NEXT:    add s2, s2, t4
-; RV64X60-NEXT:    add s4, a4, t6
+; RV64X60-NEXT:    add s1, s1, t4
+; RV64X60-NEXT:    add s2, a4, t6
 ; RV64X60-NEXT:    add t6, t6, a2
 ; RV64X60-NEXT:  .LBB0_10: # %for.body4.us
 ; RV64X60-NEXT:    # Parent Loop BB0_4 Depth=1
 ; RV64X60-NEXT:    # => This Inner Loop Header: Depth=2
 ; RV64X60-NEXT:    lbu s3, 0(t6)
-; RV64X60-NEXT:    lbu s1, 0(s4)
-; RV64X60-NEXT:    add s1, s1, s3
-; RV64X60-NEXT:    addi s1, s1, 1
-; RV64X60-NEXT:    srli s1, s1, 1
-; RV64X60-NEXT:    sb s1, 0(s0)
+; RV64X60-NEXT:    lbu s4, 0(s2)
+; RV64X60-NEXT:    add s3, s3, s4
+; RV64X60-NEXT:    addi s3, s3, 1
+; RV64X60-NEXT:    srli s3, s3, 1
+; RV64X60-NEXT:    sb s3, 0(s0)
 ; RV64X60-NEXT:    addi s0, s0, 1
-; RV64X60-NEXT:    addi s4, s4, 1
+; RV64X60-NEXT:    addi s2, s2, 1
 ; RV64X60-NEXT:    addi t6, t6, 1
-; RV64X60-NEXT:    bne s0, s2, .LBB0_10
+; RV64X60-NEXT:    bne s0, s1, .LBB0_10
 ; RV64X60-NEXT:    j .LBB0_3
 ; RV64X60-NEXT:  .LBB0_11:
 ; RV64X60-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/select-cc.ll b/llvm/test/CodeGen/RISCV/select-cc.ll
index a373e08e75c55..220329fd94083 100644
--- a/llvm/test/CodeGen/RISCV/select-cc.ll
+++ b/llvm/test/CodeGen/RISCV/select-cc.ll
@@ -469,11 +469,11 @@ define i64 @select_sge_int32min(i64 %x, i64 %y, i64 %z) {
 ; RV32IXQCI-LABEL: select_sge_int32min:
 ; RV32IXQCI:       # %bb.0:
 ; RV32IXQCI-NEXT:    srli a6, a1, 31
-; RV32IXQCI-NEXT:    srli a7, a0, 31
-; RV32IXQCI-NEXT:    xori a0, a6, 1
-; RV32IXQCI-NEXT:    qc.mveqi a0, a1, -1, a7
-; RV32IXQCI-NEXT:    qc.mveqi a2, a0, 0, a4
-; RV32IXQCI-NEXT:    qc.mveqi a3, a0, 0, a5
+; RV32IXQCI-NEXT:    srli a0, a0, 31
+; RV32IXQCI-NEXT:    xori a6, a6, 1
+; RV32IXQCI-NEXT:    qc.mveqi a6, a1, -1, a0
+; RV32IXQCI-NEXT:    qc.mveqi a2, a6, 0, a4
+; RV32IXQCI-NEXT:    qc.mveqi a3, a6, 0, a5
 ; RV32IXQCI-NEXT:    mv a0, a2
 ; RV32IXQCI-NEXT:    mv a1, a3
 ; RV32IXQCI-NEXT:    ret
diff --git a/llvm/test/CodeGen/RISCV/xqccmp-callee-saved-gprs.ll b/llvm/test/CodeGen/RISCV/xqccmp-callee-saved-gprs.ll
index b2c20cb946f6f..dba75f9192a30 100644
--- a/llvm/test/CodeGen/RISCV/xqccmp-callee-saved-gprs.ll
+++ b/llvm/test/CodeGen/RISCV/xqccmp-callee-saved-gprs.ll
@@ -43,60 +43,60 @@ define void @callee() {
 ; RV32IXQCCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV32IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV32IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV32IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV32IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV32IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV32IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV32IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV32IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV32IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV32IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV32IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV32IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV32IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV32IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -141,58 +141,58 @@ define void @callee() {
 ; RV32IXQCCMP-WITH-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-WITH-FP-NEXT:    lw a1, 20(a0)
 ; RV32IXQCCMP-WITH-FP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw s1, 112(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t0, 116(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a4, 120(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a2, 124(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t3, 96(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t1, 100(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a6, 104(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s1, 56(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s2, 60(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s3, 64(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s4, 68(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s5, 72(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s6, 76(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s7, 112(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s8, 116(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s9, 120(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s10, 124(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw s11, 96(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw ra, 100(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a4, 104(a0)
 ; RV32IXQCCMP-WITH-FP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a5, 88(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    lw a3, 92(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a2, 124(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a4, 120(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t0, 116(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s1, 112(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a6, 80(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a5, 84(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a3, 88(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    lw a2, 92(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s10, 124(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s9, 120(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s8, 116(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s7, 112(a0)
 ; RV32IXQCCMP-WITH-FP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a6, 104(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t1, 100(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t3, 96(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a3, 92(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a5, 88(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-WITH-FP-NEXT:    sw t4, 24(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a4, 104(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw ra, 100(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s11, 96(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a2, 92(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a5, 84(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a6, 80(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s6, 76(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s5, 72(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s4, 68(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s3, 64(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s2, 60(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw s1, 56(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-WITH-FP-NEXT:    sw a7, 24(a0)
 ; RV32IXQCCMP-WITH-FP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-WITH-FP-NEXT:    sw a1, 20(a0)
 ; RV32IXQCCMP-WITH-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
@@ -237,60 +237,60 @@ define void @callee() {
 ; RV64IXQCCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV64IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV64IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV64IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV64IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV64IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV64IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV64IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV64IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV64IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV64IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV64IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV64IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV64IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV64IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV64IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV64IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -335,58 +335,58 @@ define void @callee() {
 ; RV64IXQCCMP-WITH-FP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-WITH-FP-NEXT:    lw a1, 20(a0)
 ; RV64IXQCCMP-WITH-FP-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw s1, 112(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t0, 116(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a4, 120(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a2, 124(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t3, 96(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t1, 100(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a6, 104(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s1, 56(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s2, 60(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s3, 64(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s4, 68(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s5, 72(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s6, 76(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s7, 112(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s8, 116(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s9, 120(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s10, 124(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw s11, 96(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw ra, 100(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a4, 104(a0)
 ; RV64IXQCCMP-WITH-FP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a5, 88(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    lw a3, 92(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a2, 124(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a4, 120(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t0, 116(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s1, 112(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a6, 80(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a5, 84(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a3, 88(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    lw a2, 92(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s10, 124(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s9, 120(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s8, 116(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s7, 112(a0)
 ; RV64IXQCCMP-WITH-FP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a6, 104(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t1, 100(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t3, 96(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a3, 92(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a5, 88(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-WITH-FP-NEXT:    sw t4, 24(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a4, 104(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw ra, 100(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s11, 96(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a2, 92(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a5, 84(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a6, 80(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s6, 76(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s5, 72(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s4, 68(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s3, 64(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s2, 60(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw s1, 56(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-WITH-FP-NEXT:    sw a7, 24(a0)
 ; RV64IXQCCMP-WITH-FP-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-WITH-FP-NEXT:    sw a1, 20(a0)
 ; RV64IXQCCMP-WITH-FP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -473,29 +473,29 @@ define void @caller() {
 ; RV32IXQCCMP-NEXT:    sw a0, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-NEXT:    lw a0, 80(s0)
 ; RV32IXQCCMP-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-NEXT:    lw s1, 84(s0)
-; RV32IXQCCMP-NEXT:    lw s2, 88(s0)
-; RV32IXQCCMP-NEXT:    lw s3, 92(s0)
-; RV32IXQCCMP-NEXT:    lw s4, 96(s0)
-; RV32IXQCCMP-NEXT:    lw s5, 100(s0)
-; RV32IXQCCMP-NEXT:    lw s6, 104(s0)
-; RV32IXQCCMP-NEXT:    lw s7, 108(s0)
-; RV32IXQCCMP-NEXT:    lw s8, 112(s0)
-; RV32IXQCCMP-NEXT:    lw s9, 116(s0)
-; RV32IXQCCMP-NEXT:    lw s10, 120(s0)
-; RV32IXQCCMP-NEXT:    lw s11, 124(s0)
+; RV32IXQCCMP-NEXT:    lw s11, 84(s0)
+; RV32IXQCCMP-NEXT:    lw s1, 88(s0)
+; RV32IXQCCMP-NEXT:    lw s2, 92(s0)
+; RV32IXQCCMP-NEXT:    lw s3, 96(s0)
+; RV32IXQCCMP-NEXT:    lw s4, 100(s0)
+; RV32IXQCCMP-NEXT:    lw s5, 104(s0)
+; RV32IXQCCMP-NEXT:    lw s6, 108(s0)
+; RV32IXQCCMP-NEXT:    lw s7, 112(s0)
+; RV32IXQCCMP-NEXT:    lw s8, 116(s0)
+; RV32IXQCCMP-NEXT:    lw s9, 120(s0)
+; RV32IXQCCMP-NEXT:    lw s10, 124(s0)
 ; RV32IXQCCMP-NEXT:    call callee
-; RV32IXQCCMP-NEXT:    sw s11, 124(s0)
-; RV32IXQCCMP-NEXT:    sw s10, 120(s0)
-; RV32IXQCCMP-NEXT:    sw s9, 116(s0)
-; RV32IXQCCMP-NEXT:    sw s8, 112(s0)
-; RV32IXQCCMP-NEXT:    sw s7, 108(s0)
-; RV32IXQCCMP-NEXT:    sw s6, 104(s0)
-; RV32IXQCCMP-NEXT:    sw s5, 100(s0)
-; RV32IXQCCMP-NEXT:    sw s4, 96(s0)
-; RV32IXQCCMP-NEXT:    sw s3, 92(s0)
-; RV32IXQCCMP-NEXT:    sw s2, 88(s0)
-; RV32IXQCCMP-NEXT:    sw s1, 84(s0)
+; RV32IXQCCMP-NEXT:    sw s10, 124(s0)
+; RV32IXQCCMP-NEXT:    sw s9, 120(s0)
+; RV32IXQCCMP-NEXT:    sw s8, 116(s0)
+; RV32IXQCCMP-NEXT:    sw s7, 112(s0)
+; RV32IXQCCMP-NEXT:    sw s6, 108(s0)
+; RV32IXQCCMP-NEXT:    sw s5, 104(s0)
+; RV32IXQCCMP-NEXT:    sw s4, 100(s0)
+; RV32IXQCCMP-NEXT:    sw s3, 96(s0)
+; RV32IXQCCMP-NEXT:    sw s2, 92(s0)
+; RV32IXQCCMP-NEXT:    sw s1, 88(s0)
+; RV32IXQCCMP-NEXT:    sw s11, 84(s0)
 ; RV32IXQCCMP-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-NEXT:    sw a0, 80(s0)
 ; RV32IXQCCMP-NEXT:    lw a0, 16(sp) # 4-byte Folded Reload
@@ -741,29 +741,29 @@ define void @caller() {
 ; RV64IXQCCMP-NEXT:    sd a0, 16(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-NEXT:    lw a0, 80(s0)
 ; RV64IXQCCMP-NEXT:    sd a0, 8(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-NEXT:    lw s1, 84(s0)
-; RV64IXQCCMP-NEXT:    lw s2, 88(s0)
-; RV64IXQCCMP-NEXT:    lw s3, 92(s0)
-; RV64IXQCCMP-NEXT:    lw s4, 96(s0)
-; RV64IXQCCMP-NEXT:    lw s5, 100(s0)
-; RV64IXQCCMP-NEXT:    lw s6, 104(s0)
-; RV64IXQCCMP-NEXT:    lw s7, 108(s0)
-; RV64IXQCCMP-NEXT:    lw s8, 112(s0)
-; RV64IXQCCMP-NEXT:    lw s9, 116(s0)
-; RV64IXQCCMP-NEXT:    lw s10, 120(s0)
-; RV64IXQCCMP-NEXT:    lw s11, 124(s0)
+; RV64IXQCCMP-NEXT:    lw s11, 84(s0)
+; RV64IXQCCMP-NEXT:    lw s1, 88(s0)
+; RV64IXQCCMP-NEXT:    lw s2, 92(s0)
+; RV64IXQCCMP-NEXT:    lw s3, 96(s0)
+; RV64IXQCCMP-NEXT:    lw s4, 100(s0)
+; RV64IXQCCMP-NEXT:    lw s5, 104(s0)
+; RV64IXQCCMP-NEXT:    lw s6, 108(s0)
+; RV64IXQCCMP-NEXT:    lw s7, 112(s0)
+; RV64IXQCCMP-NEXT:    lw s8, 116(s0)
+; RV64IXQCCMP-NEXT:    lw s9, 120(s0)
+; RV64IXQCCMP-NEXT:    lw s10, 124(s0)
 ; RV64IXQCCMP-NEXT:    call callee
-; RV64IXQCCMP-NEXT:    sw s11, 124(s0)
-; RV64IXQCCMP-NEXT:    sw s10, 120(s0)
-; RV64IXQCCMP-NEXT:    sw s9, 116(s0)
-; RV64IXQCCMP-NEXT:    sw s8, 112(s0)
-; RV64IXQCCMP-NEXT:    sw s7, 108(s0)
-; RV64IXQCCMP-NEXT:    sw s6, 104(s0)
-; RV64IXQCCMP-NEXT:    sw s5, 100(s0)
-; RV64IXQCCMP-NEXT:    sw s4, 96(s0)
-; RV64IXQCCMP-NEXT:    sw s3, 92(s0)
-; RV64IXQCCMP-NEXT:    sw s2, 88(s0)
-; RV64IXQCCMP-NEXT:    sw s1, 84(s0)
+; RV64IXQCCMP-NEXT:    sw s10, 124(s0)
+; RV64IXQCCMP-NEXT:    sw s9, 120(s0)
+; RV64IXQCCMP-NEXT:    sw s8, 116(s0)
+; RV64IXQCCMP-NEXT:    sw s7, 112(s0)
+; RV64IXQCCMP-NEXT:    sw s6, 108(s0)
+; RV64IXQCCMP-NEXT:    sw s5, 104(s0)
+; RV64IXQCCMP-NEXT:    sw s4, 100(s0)
+; RV64IXQCCMP-NEXT:    sw s3, 96(s0)
+; RV64IXQCCMP-NEXT:    sw s2, 92(s0)
+; RV64IXQCCMP-NEXT:    sw s1, 88(s0)
+; RV64IXQCCMP-NEXT:    sw s11, 84(s0)
 ; RV64IXQCCMP-NEXT:    ld a0, 8(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-NEXT:    sw a0, 80(s0)
 ; RV64IXQCCMP-NEXT:    ld a0, 16(sp) # 8-byte Folded Reload
diff --git a/llvm/test/CodeGen/RISCV/xqccmp-push-pop-popret.ll b/llvm/test/CodeGen/RISCV/xqccmp-push-pop-popret.ll
index 6d31ea43898b8..a4b846d684e58 100644
--- a/llvm/test/CodeGen/RISCV/xqccmp-push-pop-popret.ll
+++ b/llvm/test/CodeGen/RISCV/xqccmp-push-pop-popret.ll
@@ -700,23 +700,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IXQCCMP-NEXT:    addi a0, a0, 15
 ; RV32IXQCCMP-NEXT:    andi a0, a0, -16
-; RV32IXQCCMP-NEXT:    sub s2, sp, a0
-; RV32IXQCCMP-NEXT:    mv sp, s2
-; RV32IXQCCMP-NEXT:    lui s1, %hi(var)
-; RV32IXQCCMP-NEXT:    addi s1, s1, %lo(var)
-; RV32IXQCCMP-NEXT:    lw s3, 0(s1)
-; RV32IXQCCMP-NEXT:    lw s4, 4(s1)
-; RV32IXQCCMP-NEXT:    lw s5, 8(s1)
-; RV32IXQCCMP-NEXT:    lw s6, 12(s1)
-; RV32IXQCCMP-NEXT:    lw s7, 16(s1)
-; RV32IXQCCMP-NEXT:    mv a0, s2
+; RV32IXQCCMP-NEXT:    sub s1, sp, a0
+; RV32IXQCCMP-NEXT:    mv sp, s1
+; RV32IXQCCMP-NEXT:    lui s2, %hi(var)
+; RV32IXQCCMP-NEXT:    addi s2, s2, %lo(var)
+; RV32IXQCCMP-NEXT:    lw s3, 0(s2)
+; RV32IXQCCMP-NEXT:    lw s4, 4(s2)
+; RV32IXQCCMP-NEXT:    lw s5, 8(s2)
+; RV32IXQCCMP-NEXT:    lw s6, 12(s2)
+; RV32IXQCCMP-NEXT:    lw s7, 16(s2)
+; RV32IXQCCMP-NEXT:    mv a0, s1
 ; RV32IXQCCMP-NEXT:    call callee_void
-; RV32IXQCCMP-NEXT:    sw s7, 16(s1)
-; RV32IXQCCMP-NEXT:    sw s6, 12(s1)
-; RV32IXQCCMP-NEXT:    sw s5, 8(s1)
-; RV32IXQCCMP-NEXT:    mv a0, s2
-; RV32IXQCCMP-NEXT:    sw s4, 4(s1)
-; RV32IXQCCMP-NEXT:    sw s3, 0(s1)
+; RV32IXQCCMP-NEXT:    sw s7, 16(s2)
+; RV32IXQCCMP-NEXT:    sw s6, 12(s2)
+; RV32IXQCCMP-NEXT:    sw s5, 8(s2)
+; RV32IXQCCMP-NEXT:    mv a0, s1
+; RV32IXQCCMP-NEXT:    sw s4, 4(s2)
+; RV32IXQCCMP-NEXT:    sw s3, 0(s2)
 ; RV32IXQCCMP-NEXT:    addi sp, s0, -48
 ; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 48
 ; RV32IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s7}, 48
@@ -750,23 +750,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV64IXQCCMP-NEXT:    srli a0, a0, 32
 ; RV64IXQCCMP-NEXT:    addi a0, a0, 15
 ; RV64IXQCCMP-NEXT:    andi a0, a0, -16
-; RV64IXQCCMP-NEXT:    sub s2, sp, a0
-; RV64IXQCCMP-NEXT:    mv sp, s2
-; RV64IXQCCMP-NEXT:    lui s1, %hi(var)
-; RV64IXQCCMP-NEXT:    addi s1, s1, %lo(var)
-; RV64IXQCCMP-NEXT:    lw s3, 0(s1)
-; RV64IXQCCMP-NEXT:    lw s4, 4(s1)
-; RV64IXQCCMP-NEXT:    lw s5, 8(s1)
-; RV64IXQCCMP-NEXT:    lw s6, 12(s1)
-; RV64IXQCCMP-NEXT:    lw s7, 16(s1)
-; RV64IXQCCMP-NEXT:    mv a0, s2
+; RV64IXQCCMP-NEXT:    sub s1, sp, a0
+; RV64IXQCCMP-NEXT:    mv sp, s1
+; RV64IXQCCMP-NEXT:    lui s2, %hi(var)
+; RV64IXQCCMP-NEXT:    addi s2, s2, %lo(var)
+; RV64IXQCCMP-NEXT:    lw s3, 0(s2)
+; RV64IXQCCMP-NEXT:    lw s4, 4(s2)
+; RV64IXQCCMP-NEXT:    lw s5, 8(s2)
+; RV64IXQCCMP-NEXT:    lw s6, 12(s2)
+; RV64IXQCCMP-NEXT:    lw s7, 16(s2)
+; RV64IXQCCMP-NEXT:    mv a0, s1
 ; RV64IXQCCMP-NEXT:    call callee_void
-; RV64IXQCCMP-NEXT:    sw s7, 16(s1)
-; RV64IXQCCMP-NEXT:    sw s6, 12(s1)
-; RV64IXQCCMP-NEXT:    sw s5, 8(s1)
-; RV64IXQCCMP-NEXT:    mv a0, s2
-; RV64IXQCCMP-NEXT:    sw s4, 4(s1)
-; RV64IXQCCMP-NEXT:    sw s3, 0(s1)
+; RV64IXQCCMP-NEXT:    sw s7, 16(s2)
+; RV64IXQCCMP-NEXT:    sw s6, 12(s2)
+; RV64IXQCCMP-NEXT:    sw s5, 8(s2)
+; RV64IXQCCMP-NEXT:    mv a0, s1
+; RV64IXQCCMP-NEXT:    sw s4, 4(s2)
+; RV64IXQCCMP-NEXT:    sw s3, 0(s2)
 ; RV64IXQCCMP-NEXT:    addi sp, s0, -80
 ; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 80
 ; RV64IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s7}, 80
@@ -798,23 +798,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15
 ; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16
-; RV32IXQCCMP-FP-NEXT:    sub s2, sp, a0
-; RV32IXQCCMP-FP-NEXT:    mv sp, s2
-; RV32IXQCCMP-FP-NEXT:    lui s1, %hi(var)
-; RV32IXQCCMP-FP-NEXT:    addi s1, s1, %lo(var)
-; RV32IXQCCMP-FP-NEXT:    lw s3, 0(s1)
-; RV32IXQCCMP-FP-NEXT:    lw s4, 4(s1)
-; RV32IXQCCMP-FP-NEXT:    lw s5, 8(s1)
-; RV32IXQCCMP-FP-NEXT:    lw s6, 12(s1)
-; RV32IXQCCMP-FP-NEXT:    lw s7, 16(s1)
-; RV32IXQCCMP-FP-NEXT:    mv a0, s2
+; RV32IXQCCMP-FP-NEXT:    sub s1, sp, a0
+; RV32IXQCCMP-FP-NEXT:    mv sp, s1
+; RV32IXQCCMP-FP-NEXT:    lui s2, %hi(var)
+; RV32IXQCCMP-FP-NEXT:    addi s2, s2, %lo(var)
+; RV32IXQCCMP-FP-NEXT:    lw s3, 0(s2)
+; RV32IXQCCMP-FP-NEXT:    lw s4, 4(s2)
+; RV32IXQCCMP-FP-NEXT:    lw s5, 8(s2)
+; RV32IXQCCMP-FP-NEXT:    lw s6, 12(s2)
+; RV32IXQCCMP-FP-NEXT:    lw s7, 16(s2)
+; RV32IXQCCMP-FP-NEXT:    mv a0, s1
 ; RV32IXQCCMP-FP-NEXT:    call callee_void
-; RV32IXQCCMP-FP-NEXT:    sw s7, 16(s1)
-; RV32IXQCCMP-FP-NEXT:    sw s6, 12(s1)
-; RV32IXQCCMP-FP-NEXT:    sw s5, 8(s1)
-; RV32IXQCCMP-FP-NEXT:    mv a0, s2
-; RV32IXQCCMP-FP-NEXT:    sw s4, 4(s1)
-; RV32IXQCCMP-FP-NEXT:    sw s3, 0(s1)
+; RV32IXQCCMP-FP-NEXT:    sw s7, 16(s2)
+; RV32IXQCCMP-FP-NEXT:    sw s6, 12(s2)
+; RV32IXQCCMP-FP-NEXT:    sw s5, 8(s2)
+; RV32IXQCCMP-FP-NEXT:    mv a0, s1
+; RV32IXQCCMP-FP-NEXT:    sw s4, 4(s2)
+; RV32IXQCCMP-FP-NEXT:    sw s3, 0(s2)
 ; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -48
 ; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 48
 ; RV32IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s7}, 48
@@ -848,23 +848,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32
 ; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15
 ; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16
-; RV64IXQCCMP-FP-NEXT:    sub s2, sp, a0
-; RV64IXQCCMP-FP-NEXT:    mv sp, s2
-; RV64IXQCCMP-FP-NEXT:    lui s1, %hi(var)
-; RV64IXQCCMP-FP-NEXT:    addi s1, s1, %lo(var)
-; RV64IXQCCMP-FP-NEXT:    lw s3, 0(s1)
-; RV64IXQCCMP-FP-NEXT:    lw s4, 4(s1)
-; RV64IXQCCMP-FP-NEXT:    lw s5, 8(s1)
-; RV64IXQCCMP-FP-NEXT:    lw s6, 12(s1)
-; RV64IXQCCMP-FP-NEXT:    lw s7, 16(s1)
-; RV64IXQCCMP-FP-NEXT:    mv a0, s2
+; RV64IXQCCMP-FP-NEXT:    sub s1, sp, a0
+; RV64IXQCCMP-FP-NEXT:    mv sp, s1
+; RV64IXQCCMP-FP-NEXT:    lui s2, %hi(var)
+; RV64IXQCCMP-FP-NEXT:    addi s2, s2, %lo(var)
+; RV64IXQCCMP-FP-NEXT:    lw s3, 0(s2)
+; RV64IXQCCMP-FP-NEXT:    lw s4, 4(s2)
+; RV64IXQCCMP-FP-NEXT:    lw s5, 8(s2)
+; RV64IXQCCMP-FP-NEXT:    lw s6, 12(s2)
+; RV64IXQCCMP-FP-NEXT:    lw s7, 16(s2)
+; RV64IXQCCMP-FP-NEXT:    mv a0, s1
 ; RV64IXQCCMP-FP-NEXT:    call callee_void
-; RV64IXQCCMP-FP-NEXT:    sw s7, 16(s1)
-; RV64IXQCCMP-FP-NEXT:    sw s6, 12(s1)
-; RV64IXQCCMP-FP-NEXT:    sw s5, 8(s1)
-; RV64IXQCCMP-FP-NEXT:    mv a0, s2
-; RV64IXQCCMP-FP-NEXT:    sw s4, 4(s1)
-; RV64IXQCCMP-FP-NEXT:    sw s3, 0(s1)
+; RV64IXQCCMP-FP-NEXT:    sw s7, 16(s2)
+; RV64IXQCCMP-FP-NEXT:    sw s6, 12(s2)
+; RV64IXQCCMP-FP-NEXT:    sw s5, 8(s2)
+; RV64IXQCCMP-FP-NEXT:    mv a0, s1
+; RV64IXQCCMP-FP-NEXT:    sw s4, 4(s2)
+; RV64IXQCCMP-FP-NEXT:    sw s3, 0(s2)
 ; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -80
 ; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 80
 ; RV64IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s7}, 80
@@ -896,23 +896,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15
 ; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16
-; RV32IXQCCMP-SR-NEXT:    sub s2, sp, a0
-; RV32IXQCCMP-SR-NEXT:    mv sp, s2
-; RV32IXQCCMP-SR-NEXT:    lui s1, %hi(var)
-; RV32IXQCCMP-SR-NEXT:    addi s1, s1, %lo(var)
-; RV32IXQCCMP-SR-NEXT:    lw s3, 0(s1)
-; RV32IXQCCMP-SR-NEXT:    lw s4, 4(s1)
-; RV32IXQCCMP-SR-NEXT:    lw s5, 8(s1)
-; RV32IXQCCMP-SR-NEXT:    lw s6, 12(s1)
-; RV32IXQCCMP-SR-NEXT:    lw s7, 16(s1)
-; RV32IXQCCMP-SR-NEXT:    mv a0, s2
+; RV32IXQCCMP-SR-NEXT:    sub s1, sp, a0
+; RV32IXQCCMP-SR-NEXT:    mv sp, s1
+; RV32IXQCCMP-SR-NEXT:    lui s2, %hi(var)
+; RV32IXQCCMP-SR-NEXT:    addi s2, s2, %lo(var)
+; RV32IXQCCMP-SR-NEXT:    lw s3, 0(s2)
+; RV32IXQCCMP-SR-NEXT:    lw s4, 4(s2)
+; RV32IXQCCMP-SR-NEXT:    lw s5, 8(s2)
+; RV32IXQCCMP-SR-NEXT:    lw s6, 12(s2)
+; RV32IXQCCMP-SR-NEXT:    lw s7, 16(s2)
+; RV32IXQCCMP-SR-NEXT:    mv a0, s1
 ; RV32IXQCCMP-SR-NEXT:    call callee_void
-; RV32IXQCCMP-SR-NEXT:    sw s7, 16(s1)
-; RV32IXQCCMP-SR-NEXT:    sw s6, 12(s1)
-; RV32IXQCCMP-SR-NEXT:    sw s5, 8(s1)
-; RV32IXQCCMP-SR-NEXT:    mv a0, s2
-; RV32IXQCCMP-SR-NEXT:    sw s4, 4(s1)
-; RV32IXQCCMP-SR-NEXT:    sw s3, 0(s1)
+; RV32IXQCCMP-SR-NEXT:    sw s7, 16(s2)
+; RV32IXQCCMP-SR-NEXT:    sw s6, 12(s2)
+; RV32IXQCCMP-SR-NEXT:    sw s5, 8(s2)
+; RV32IXQCCMP-SR-NEXT:    mv a0, s1
+; RV32IXQCCMP-SR-NEXT:    sw s4, 4(s2)
+; RV32IXQCCMP-SR-NEXT:    sw s3, 0(s2)
 ; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -48
 ; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 48
 ; RV32IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s7}, 48
@@ -946,23 +946,23 @@ define i32 @nocompress(i32 signext %size) {
 ; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32
 ; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15
 ; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16
-; RV64IXQCCMP-SR-NEXT:    sub s2, sp, a0
-; RV64IXQCCMP-SR-NEXT:    mv sp, s2
-; RV64IXQCCMP-SR-NEXT:    lui s1, %hi(var)
-; RV64IXQCCMP-SR-NEXT:    addi s1, s1, %lo(var)
-; RV64IXQCCMP-SR-NEXT:    lw s3, 0(s1)
-; RV64IXQCCMP-SR-NEXT:    lw s4, 4(s1)
-; RV64IXQCCMP-SR-NEXT:    lw s5, 8(s1)
-; RV64IXQCCMP-SR-NEXT:    lw s6, 12(s1)
-; RV64IXQCCMP-SR-NEXT:    lw s7, 16(s1)
-; RV64IXQCCMP-SR-NEXT:    mv a0, s2
+; RV64IXQCCMP-SR-NEXT:    sub s1, sp, a0
+; RV64IXQCCMP-SR-NEXT:    mv sp, s1
+; RV64IXQCCMP-SR-NEXT:    lui s2, %hi(var)
+; RV64IXQCCMP-SR-NEXT:    addi s2, s2, %lo(var)
+; RV64IXQCCMP-SR-NEXT:    lw s3, 0(s2)
+; RV64IXQCCMP-SR-NEXT:    lw s4, 4(s2)
+; RV64IXQCCMP-SR-NEXT:    lw s5, 8(s2)
+; RV64IXQCCMP-SR-NEXT:    lw s6, 12(s2)
+; RV64IXQCCMP-SR-NEXT:    lw s7, 16(s2)
+; RV64IXQCCMP-SR-NEXT:    mv a0, s1
 ; RV64IXQCCMP-SR-NEXT:    call callee_void
-; RV64IXQCCMP-SR-NEXT:    sw s7, 16(s1)
-; RV64IXQCCMP-SR-NEXT:    sw s6, 12(s1)
-; RV64IXQCCMP-SR-NEXT:    sw s5, 8(s1)
-; RV64IXQCCMP-SR-NEXT:    mv a0, s2
-; RV64IXQCCMP-SR-NEXT:    sw s4, 4(s1)
-; RV64IXQCCMP-SR-NEXT:    sw s3, 0(s1)
+; RV64IXQCCMP-SR-NEXT:    sw s7, 16(s2)
+; RV64IXQCCMP-SR-NEXT:    sw s6, 12(s2)
+; RV64IXQCCMP-SR-NEXT:    sw s5, 8(s2)
+; RV64IXQCCMP-SR-NEXT:    mv a0, s1
+; RV64IXQCCMP-SR-NEXT:    sw s4, 4(s2)
+; RV64IXQCCMP-SR-NEXT:    sw s3, 0(s2)
 ; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -80
 ; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 80
 ; RV64IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s7}, 80
@@ -1141,42 +1141,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV32IXQCCMP-NEXT:    .cfi_offset s3, -20
 ; RV32IXQCCMP-NEXT:    lui a0, %hi(var0)
 ; RV32IXQCCMP-NEXT:    addi a0, a0, %lo(var0)
-; RV32IXQCCMP-NEXT:    lw a6, 0(a0)
-; RV32IXQCCMP-NEXT:    lw a7, 4(a0)
-; RV32IXQCCMP-NEXT:    lw t0, 8(a0)
-; RV32IXQCCMP-NEXT:    lw t1, 12(a0)
-; RV32IXQCCMP-NEXT:    lw t2, 16(a0)
-; RV32IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    lw a4, 64(a0)
-; RV32IXQCCMP-NEXT:    lw a5, 68(a0)
-; RV32IXQCCMP-NEXT:    lw t6, 48(a0)
-; RV32IXQCCMP-NEXT:    lw s3, 52(a0)
-; RV32IXQCCMP-NEXT:    lw a3, 56(a0)
-; RV32IXQCCMP-NEXT:    lw a1, 60(a0)
-; RV32IXQCCMP-NEXT:    lw s2, 32(a0)
+; RV32IXQCCMP-NEXT:    lw a1, 0(a0)
+; RV32IXQCCMP-NEXT:    lw a2, 4(a0)
+; RV32IXQCCMP-NEXT:    lw a3, 8(a0)
+; RV32IXQCCMP-NEXT:    lw a4, 12(a0)
+; RV32IXQCCMP-NEXT:    lw a5, 16(a0)
+; RV32IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    lw t1, 64(a0)
+; RV32IXQCCMP-NEXT:    lw t2, 68(a0)
+; RV32IXQCCMP-NEXT:    lw t3, 48(a0)
+; RV32IXQCCMP-NEXT:    lw t4, 52(a0)
+; RV32IXQCCMP-NEXT:    lw t5, 56(a0)
+; RV32IXQCCMP-NEXT:    lw t6, 60(a0)
+; RV32IXQCCMP-NEXT:    lw s0, 32(a0)
 ; RV32IXQCCMP-NEXT:    lw s1, 36(a0)
-; RV32IXQCCMP-NEXT:    lw s0, 40(a0)
-; RV32IXQCCMP-NEXT:    lw a2, 44(a0)
-; RV32IXQCCMP-NEXT:    sw a5, 68(a0)
-; RV32IXQCCMP-NEXT:    sw a4, 64(a0)
-; RV32IXQCCMP-NEXT:    sw a1, 60(a0)
-; RV32IXQCCMP-NEXT:    sw a3, 56(a0)
-; RV32IXQCCMP-NEXT:    sw s3, 52(a0)
-; RV32IXQCCMP-NEXT:    sw t6, 48(a0)
-; RV32IXQCCMP-NEXT:    sw a2, 44(a0)
-; RV32IXQCCMP-NEXT:    sw s0, 40(a0)
+; RV32IXQCCMP-NEXT:    lw s2, 40(a0)
+; RV32IXQCCMP-NEXT:    lw s3, 44(a0)
+; RV32IXQCCMP-NEXT:    sw t2, 68(a0)
+; RV32IXQCCMP-NEXT:    sw t1, 64(a0)
+; RV32IXQCCMP-NEXT:    sw t6, 60(a0)
+; RV32IXQCCMP-NEXT:    sw t5, 56(a0)
+; RV32IXQCCMP-NEXT:    sw t4, 52(a0)
+; RV32IXQCCMP-NEXT:    sw t3, 48(a0)
+; RV32IXQCCMP-NEXT:    sw s3, 44(a0)
+; RV32IXQCCMP-NEXT:    sw s2, 40(a0)
 ; RV32IXQCCMP-NEXT:    sw s1, 36(a0)
-; RV32IXQCCMP-NEXT:    sw s2, 32(a0)
-; RV32IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    sw t3, 20(a0)
-; RV32IXQCCMP-NEXT:    sw t2, 16(a0)
-; RV32IXQCCMP-NEXT:    sw t1, 12(a0)
-; RV32IXQCCMP-NEXT:    sw t0, 8(a0)
-; RV32IXQCCMP-NEXT:    sw a7, 4(a0)
-; RV32IXQCCMP-NEXT:    sw a6, 0(a0)
+; RV32IXQCCMP-NEXT:    sw s0, 32(a0)
+; RV32IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    sw a6, 20(a0)
+; RV32IXQCCMP-NEXT:    sw a5, 16(a0)
+; RV32IXQCCMP-NEXT:    sw a4, 12(a0)
+; RV32IXQCCMP-NEXT:    sw a3, 8(a0)
+; RV32IXQCCMP-NEXT:    sw a2, 4(a0)
+; RV32IXQCCMP-NEXT:    sw a1, 0(a0)
 ; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s3}, 32
 ;
 ; RV64IXQCCMP-LABEL: many_args:
@@ -1189,42 +1189,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV64IXQCCMP-NEXT:    .cfi_offset s3, -40
 ; RV64IXQCCMP-NEXT:    lui a0, %hi(var0)
 ; RV64IXQCCMP-NEXT:    addi a0, a0, %lo(var0)
-; RV64IXQCCMP-NEXT:    lw a6, 0(a0)
-; RV64IXQCCMP-NEXT:    lw a7, 4(a0)
-; RV64IXQCCMP-NEXT:    lw t0, 8(a0)
-; RV64IXQCCMP-NEXT:    lw t1, 12(a0)
-; RV64IXQCCMP-NEXT:    lw t2, 16(a0)
-; RV64IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    lw a4, 64(a0)
-; RV64IXQCCMP-NEXT:    lw a5, 68(a0)
-; RV64IXQCCMP-NEXT:    lw t6, 48(a0)
-; RV64IXQCCMP-NEXT:    lw s3, 52(a0)
-; RV64IXQCCMP-NEXT:    lw a3, 56(a0)
-; RV64IXQCCMP-NEXT:    lw a1, 60(a0)
-; RV64IXQCCMP-NEXT:    lw s2, 32(a0)
+; RV64IXQCCMP-NEXT:    lw a1, 0(a0)
+; RV64IXQCCMP-NEXT:    lw a2, 4(a0)
+; RV64IXQCCMP-NEXT:    lw a3, 8(a0)
+; RV64IXQCCMP-NEXT:    lw a4, 12(a0)
+; RV64IXQCCMP-NEXT:    lw a5, 16(a0)
+; RV64IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    lw t1, 64(a0)
+; RV64IXQCCMP-NEXT:    lw t2, 68(a0)
+; RV64IXQCCMP-NEXT:    lw t3, 48(a0)
+; RV64IXQCCMP-NEXT:    lw t4, 52(a0)
+; RV64IXQCCMP-NEXT:    lw t5, 56(a0)
+; RV64IXQCCMP-NEXT:    lw t6, 60(a0)
+; RV64IXQCCMP-NEXT:    lw s0, 32(a0)
 ; RV64IXQCCMP-NEXT:    lw s1, 36(a0)
-; RV64IXQCCMP-NEXT:    lw s0, 40(a0)
-; RV64IXQCCMP-NEXT:    lw a2, 44(a0)
-; RV64IXQCCMP-NEXT:    sw a5, 68(a0)
-; RV64IXQCCMP-NEXT:    sw a4, 64(a0)
-; RV64IXQCCMP-NEXT:    sw a1, 60(a0)
-; RV64IXQCCMP-NEXT:    sw a3, 56(a0)
-; RV64IXQCCMP-NEXT:    sw s3, 52(a0)
-; RV64IXQCCMP-NEXT:    sw t6, 48(a0)
-; RV64IXQCCMP-NEXT:    sw a2, 44(a0)
-; RV64IXQCCMP-NEXT:    sw s0, 40(a0)
+; RV64IXQCCMP-NEXT:    lw s2, 40(a0)
+; RV64IXQCCMP-NEXT:    lw s3, 44(a0)
+; RV64IXQCCMP-NEXT:    sw t2, 68(a0)
+; RV64IXQCCMP-NEXT:    sw t1, 64(a0)
+; RV64IXQCCMP-NEXT:    sw t6, 60(a0)
+; RV64IXQCCMP-NEXT:    sw t5, 56(a0)
+; RV64IXQCCMP-NEXT:    sw t4, 52(a0)
+; RV64IXQCCMP-NEXT:    sw t3, 48(a0)
+; RV64IXQCCMP-NEXT:    sw s3, 44(a0)
+; RV64IXQCCMP-NEXT:    sw s2, 40(a0)
 ; RV64IXQCCMP-NEXT:    sw s1, 36(a0)
-; RV64IXQCCMP-NEXT:    sw s2, 32(a0)
-; RV64IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    sw t3, 20(a0)
-; RV64IXQCCMP-NEXT:    sw t2, 16(a0)
-; RV64IXQCCMP-NEXT:    sw t1, 12(a0)
-; RV64IXQCCMP-NEXT:    sw t0, 8(a0)
-; RV64IXQCCMP-NEXT:    sw a7, 4(a0)
-; RV64IXQCCMP-NEXT:    sw a6, 0(a0)
+; RV64IXQCCMP-NEXT:    sw s0, 32(a0)
+; RV64IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    sw a6, 20(a0)
+; RV64IXQCCMP-NEXT:    sw a5, 16(a0)
+; RV64IXQCCMP-NEXT:    sw a4, 12(a0)
+; RV64IXQCCMP-NEXT:    sw a3, 8(a0)
+; RV64IXQCCMP-NEXT:    sw a2, 4(a0)
+; RV64IXQCCMP-NEXT:    sw a1, 0(a0)
 ; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s3}, 48
 ;
 ; RV32IXQCCMP-FP-LABEL: many_args:
@@ -1240,42 +1240,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0
 ; RV32IXQCCMP-FP-NEXT:    lui a0, %hi(var0)
 ; RV32IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var0)
-; RV32IXQCCMP-FP-NEXT:    lw a6, 0(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a7, 4(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t0, 8(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t1, 12(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t2, 16(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s4, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a5, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t6, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s3, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a3, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a1, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s2, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s1, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a2, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a5, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s4, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a1, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a3, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s3, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t6, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a2, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s1, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s2, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t3, 20(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t2, 16(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t1, 12(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t0, 8(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a7, 4(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a6, 0(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a1, 0(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a2, 4(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a3, 8(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a4, 12(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a5, 16(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t1, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t2, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t3, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t4, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t5, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t6, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t2, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t1, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t6, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t5, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t4, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t3, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a6, 20(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a5, 16(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a4, 12(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a3, 8(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a2, 4(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a1, 0(a0)
 ; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 32
 ; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s4}, 32
 ;
@@ -1292,42 +1292,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0
 ; RV64IXQCCMP-FP-NEXT:    lui a0, %hi(var0)
 ; RV64IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var0)
-; RV64IXQCCMP-FP-NEXT:    lw a6, 0(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a7, 4(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t0, 8(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t1, 12(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t2, 16(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s4, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a5, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t6, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s3, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a3, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a1, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s2, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s1, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a2, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a5, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s4, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a1, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a3, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s3, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t6, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a2, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s1, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s2, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t3, 20(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t2, 16(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t1, 12(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t0, 8(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a7, 4(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a6, 0(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a1, 0(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a2, 4(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a3, 8(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a4, 12(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a5, 16(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t1, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t2, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t3, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t4, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t5, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t6, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t2, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t1, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t6, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t5, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t4, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t3, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a6, 20(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a5, 16(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a4, 12(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a3, 8(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a2, 4(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a1, 0(a0)
 ; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 48
 ; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s4}, 48
 ;
@@ -1341,42 +1341,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV32IXQCCMP-SR-NEXT:    .cfi_offset s3, -20
 ; RV32IXQCCMP-SR-NEXT:    lui a0, %hi(var0)
 ; RV32IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var0)
-; RV32IXQCCMP-SR-NEXT:    lw a6, 0(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a7, 4(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t0, 8(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t1, 12(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t2, 16(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a4, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a5, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t6, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s3, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a3, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a1, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s2, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a1, 0(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a2, 4(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a3, 8(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a4, 12(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a5, 16(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t1, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t2, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t3, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t4, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t5, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t6, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s0, 32(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw s1, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s0, 40(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a2, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a5, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a4, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a1, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a3, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s3, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t6, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a2, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s0, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s2, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s3, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t2, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t1, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t6, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t5, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t4, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t3, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s3, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s2, 40(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw s1, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s2, 32(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t2, 16(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t1, 12(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t0, 8(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a7, 4(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a6, 0(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s0, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a6, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a5, 16(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a4, 12(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a3, 8(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a2, 4(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a1, 0(a0)
 ; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s3}, 32
 ;
 ; RV64IXQCCMP-SR-LABEL: many_args:
@@ -1389,42 +1389,42 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {
 ; RV64IXQCCMP-SR-NEXT:    .cfi_offset s3, -40
 ; RV64IXQCCMP-SR-NEXT:    lui a0, %hi(var0)
 ; RV64IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var0)
-; RV64IXQCCMP-SR-NEXT:    lw a6, 0(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a7, 4(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t0, 8(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t1, 12(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t2, 16(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a4, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a5, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t6, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s3, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a3, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a1, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s2, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a1, 0(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a2, 4(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a3, 8(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a4, 12(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a5, 16(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t1, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t2, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t3, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t4, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t5, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t6, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s0, 32(a0)
 ; RV64IXQCCMP-SR-NEXT:    lw s1, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s0, 40(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a2, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a5, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a4, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a1, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a3, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s3, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t6, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a2, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s0, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s2, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s3, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t2, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t1, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t6, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t5, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t4, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t3, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s3, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s2, 40(a0)
 ; RV64IXQCCMP-SR-NEXT:    sw s1, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s2, 32(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t2, 16(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t1, 12(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t0, 8(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a7, 4(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a6, 0(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s0, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a6, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a5, 16(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a4, 12(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a3, 8(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a2, 4(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a1, 0(a0)
 ; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s3}, 48
 entry:
   %val = load [18 x i32], ptr @var0
@@ -2148,60 +2148,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV32IXQCCMP-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV32IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV32IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV32IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV32IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV32IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV32IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV32IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV32IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV32IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV32IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV32IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV32IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV32IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV32IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -2322,60 +2322,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV64IXQCCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV64IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV64IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV64IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV64IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV64IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV64IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV64IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV64IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV64IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV64IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV64IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV64IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV64IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV64IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV64IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV64IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -2499,58 +2499,58 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 20(a0)
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-FP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s1, 112(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t0, 116(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a4, 120(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a2, 124(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t3, 96(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t1, 100(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a6, 104(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s1, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s2, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s3, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s4, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s5, 72(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s6, 76(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s7, 112(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s8, 116(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s9, 120(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s10, 124(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s11, 96(a0)
+; RV32IXQCCMP-FP-NEXT:    lw ra, 100(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a4, 104(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a5, 88(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a3, 92(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a2, 124(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a4, 120(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t0, 116(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s1, 112(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a6, 80(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a5, 84(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a3, 88(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a2, 92(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s10, 124(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s9, 120(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s8, 116(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s7, 112(a0)
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a6, 104(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t1, 100(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t3, 96(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a3, 92(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a5, 88(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-FP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a4, 104(a0)
+; RV32IXQCCMP-FP-NEXT:    sw ra, 100(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s11, 96(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a2, 92(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a5, 84(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a6, 80(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s6, 76(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s5, 72(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s4, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s3, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s2, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s1, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a7, 24(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 20(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -2677,58 +2677,58 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV64IXQCCMP-FP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-FP-NEXT:    lw a1, 20(a0)
 ; RV64IXQCCMP-FP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-FP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s1, 112(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t0, 116(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a4, 120(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a2, 124(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t3, 96(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t1, 100(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a6, 104(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s1, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s2, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s3, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s4, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s5, 72(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s6, 76(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s7, 112(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s8, 116(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s9, 120(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s10, 124(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s11, 96(a0)
+; RV64IXQCCMP-FP-NEXT:    lw ra, 100(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a4, 104(a0)
 ; RV64IXQCCMP-FP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a5, 88(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a3, 92(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a2, 124(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a4, 120(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t0, 116(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s1, 112(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a6, 80(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a5, 84(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a3, 88(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a2, 92(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s10, 124(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s9, 120(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s8, 116(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s7, 112(a0)
 ; RV64IXQCCMP-FP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a6, 104(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t1, 100(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t3, 96(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a3, 92(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a5, 88(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-FP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a4, 104(a0)
+; RV64IXQCCMP-FP-NEXT:    sw ra, 100(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s11, 96(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a2, 92(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a5, 84(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a6, 80(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s6, 76(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s5, 72(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s4, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s3, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s2, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s1, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a7, 24(a0)
 ; RV64IXQCCMP-FP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-FP-NEXT:    sw a1, 20(a0)
 ; RV64IXQCCMP-FP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -2852,60 +2852,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-SR-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t0, 112(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s0, 116(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s1, 120(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a5, 124(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t1, 96(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a6, 100(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a3, 104(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s0, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s1, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s2, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s3, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s4, 72(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s5, 76(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s6, 112(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s7, 116(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s8, 120(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s9, 124(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s10, 96(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s11, 100(a0)
+; RV32IXQCCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a4, 88(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a5, 80(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a4, 84(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a2, 92(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a5, 124(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s1, 120(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s0, 116(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t0, 112(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s9, 124(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s8, 120(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s7, 116(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a3, 104(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a6, 100(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t1, 96(a0)
+; RV32IXQCCMP-SR-NEXT:    sw ra, 104(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s11, 100(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a2, 92(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a4, 88(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-SR-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a4, 84(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a5, 80(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s5, 76(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s4, 72(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s3, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s2, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s1, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s0, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload
@@ -3026,60 +3026,60 @@ define void @callee_with_irq() "interrupt"="machine" {
 ; RV64IXQCCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV64IXQCCMP-SR-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-SR-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t0, 112(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s0, 116(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s1, 120(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a5, 124(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t1, 96(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a6, 100(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a3, 104(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s0, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s1, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s2, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s3, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s4, 72(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s5, 76(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s6, 112(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s7, 116(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s8, 120(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s9, 124(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s10, 96(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s11, 100(a0)
+; RV64IXQCCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV64IXQCCMP-SR-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a4, 88(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a5, 80(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a4, 84(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV64IXQCCMP-SR-NEXT:    lw a2, 92(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a5, 124(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s1, 120(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s0, 116(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t0, 112(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s9, 124(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s8, 120(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s7, 116(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV64IXQCCMP-SR-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a3, 104(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a6, 100(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t1, 96(a0)
+; RV64IXQCCMP-SR-NEXT:    sw ra, 104(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s11, 100(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV64IXQCCMP-SR-NEXT:    sw a2, 92(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a4, 88(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-SR-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a4, 84(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a5, 80(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s5, 76(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s4, 72(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s3, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s2, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s1, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s0, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV64IXQCCMP-SR-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV64IXQCCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -3173,60 +3173,60 @@ define void @callee_no_irq() {
 ; RV32IXQCCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV32IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV32IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV32IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV32IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV32IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV32IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV32IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV32IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV32IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV32IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV32IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV32IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV32IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV32IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV32IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV32IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV32IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV32IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV32IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV32IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV32IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV32IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV32IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV32IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV32IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV32IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV32IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV32IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV32IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV32IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV32IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV32IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV32IXQCCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -3268,60 +3268,60 @@ define void @callee_no_irq() {
 ; RV64IXQCCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-NEXT:    lw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    lw t0, 112(a0)
-; RV64IXQCCMP-NEXT:    lw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    lw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    lw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    lw t1, 96(a0)
-; RV64IXQCCMP-NEXT:    lw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    lw a3, 104(a0)
+; RV64IXQCCMP-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    lw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    lw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    lw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    lw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    lw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    lw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    lw s6, 112(a0)
+; RV64IXQCCMP-NEXT:    lw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    lw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    lw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    lw s10, 96(a0)
+; RV64IXQCCMP-NEXT:    lw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    lw ra, 104(a0)
 ; RV64IXQCCMP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    lw a4, 88(a0)
+; RV64IXQCCMP-NEXT:    lw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    lw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    lw a3, 88(a0)
 ; RV64IXQCCMP-NEXT:    lw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a5, 124(a0)
-; RV64IXQCCMP-NEXT:    sw s1, 120(a0)
-; RV64IXQCCMP-NEXT:    sw s0, 116(a0)
-; RV64IXQCCMP-NEXT:    sw t0, 112(a0)
+; RV64IXQCCMP-NEXT:    sw s9, 124(a0)
+; RV64IXQCCMP-NEXT:    sw s8, 120(a0)
+; RV64IXQCCMP-NEXT:    sw s7, 116(a0)
+; RV64IXQCCMP-NEXT:    sw s6, 112(a0)
 ; RV64IXQCCMP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-NEXT:    sw a3, 104(a0)
-; RV64IXQCCMP-NEXT:    sw a6, 100(a0)
-; RV64IXQCCMP-NEXT:    sw t1, 96(a0)
+; RV64IXQCCMP-NEXT:    sw ra, 104(a0)
+; RV64IXQCCMP-NEXT:    sw s11, 100(a0)
+; RV64IXQCCMP-NEXT:    sw s10, 96(a0)
 ; RV64IXQCCMP-NEXT:    sw a2, 92(a0)
-; RV64IXQCCMP-NEXT:    sw a4, 88(a0)
-; RV64IXQCCMP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-NEXT:    sw t3, 20(a0)
+; RV64IXQCCMP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-NEXT:    sw a4, 84(a0)
+; RV64IXQCCMP-NEXT:    sw a5, 80(a0)
+; RV64IXQCCMP-NEXT:    sw s5, 76(a0)
+; RV64IXQCCMP-NEXT:    sw s4, 72(a0)
+; RV64IXQCCMP-NEXT:    sw s3, 68(a0)
+; RV64IXQCCMP-NEXT:    sw s2, 64(a0)
+; RV64IXQCCMP-NEXT:    sw s1, 60(a0)
+; RV64IXQCCMP-NEXT:    sw s0, 56(a0)
+; RV64IXQCCMP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-NEXT:    sw a6, 20(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-NEXT:    sw a1, 16(a0)
 ; RV64IXQCCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload
@@ -3366,58 +3366,58 @@ define void @callee_no_irq() {
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 20(a0)
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-FP-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-FP-NEXT:    lw s1, 112(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t0, 116(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a4, 120(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a2, 124(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t3, 96(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t1, 100(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a6, 104(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s1, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s2, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s3, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s4, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s5, 72(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s6, 76(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s7, 112(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s8, 116(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s9, 120(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s10, 124(a0)
+; RV32IXQCCMP-FP-NEXT:    lw s11, 96(a0)
+; RV32IXQCCMP-FP-NEXT:    lw ra, 100(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a4, 104(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-FP-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a5, 88(a0)
-; RV32IXQCCMP-FP-NEXT:    lw a3, 92(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a2, 124(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a4, 120(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t0, 116(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s1, 112(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a6, 80(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a5, 84(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a3, 88(a0)
+; RV32IXQCCMP-FP-NEXT:    lw a2, 92(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s10, 124(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s9, 120(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s8, 116(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s7, 112(a0)
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a6, 104(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t1, 100(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t3, 96(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a3, 92(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a5, 88(a0)
-; RV32IXQCCMP-FP-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-FP-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-FP-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a4, 104(a0)
+; RV32IXQCCMP-FP-NEXT:    sw ra, 100(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s11, 96(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a2, 92(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a5, 84(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a6, 80(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s6, 76(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s5, 72(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s4, 68(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s3, 64(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s2, 60(a0)
+; RV32IXQCCMP-FP-NEXT:    sw s1, 56(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-FP-NEXT:    sw a7, 24(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-FP-NEXT:    sw a1, 20(a0)
 ; RV32IXQCCMP-FP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
@@ -3465,58 +3465,58 @@ define void @callee_no_irq() {
 ; RV64IXQCCMP-FP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-FP-NEXT:    lw a1, 20(a0)
 ; RV64IXQCCMP-FP-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-FP-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-FP-NEXT:    lw s1, 112(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t0, 116(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a4, 120(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a2, 124(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t3, 96(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t1, 100(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a6, 104(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s1, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s2, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s3, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s4, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s5, 72(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s6, 76(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s7, 112(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s8, 116(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s9, 120(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s10, 124(a0)
+; RV64IXQCCMP-FP-NEXT:    lw s11, 96(a0)
+; RV64IXQCCMP-FP-NEXT:    lw ra, 100(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a4, 104(a0)
 ; RV64IXQCCMP-FP-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-FP-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a5, 88(a0)
-; RV64IXQCCMP-FP-NEXT:    lw a3, 92(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a2, 124(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a4, 120(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t0, 116(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s1, 112(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a6, 80(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a5, 84(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a3, 88(a0)
+; RV64IXQCCMP-FP-NEXT:    lw a2, 92(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s10, 124(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s9, 120(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s8, 116(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s7, 112(a0)
 ; RV64IXQCCMP-FP-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a6, 104(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t1, 100(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t3, 96(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a3, 92(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a5, 88(a0)
-; RV64IXQCCMP-FP-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-FP-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-FP-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a4, 104(a0)
+; RV64IXQCCMP-FP-NEXT:    sw ra, 100(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s11, 96(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a2, 92(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a5, 84(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a6, 80(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s6, 76(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s5, 72(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s4, 68(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s3, 64(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s2, 60(a0)
+; RV64IXQCCMP-FP-NEXT:    sw s1, 56(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-FP-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-FP-NEXT:    sw a7, 24(a0)
 ; RV64IXQCCMP-FP-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-FP-NEXT:    sw a1, 20(a0)
 ; RV64IXQCCMP-FP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
@@ -3561,60 +3561,60 @@ define void @callee_no_irq() {
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill
-; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t6, 32(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s2, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s3, 40(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s4, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s5, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s6, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s7, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s8, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s9, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s10, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s11, 72(a0)
-; RV32IXQCCMP-SR-NEXT:    lw ra, 76(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t0, 112(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s0, 116(a0)
-; RV32IXQCCMP-SR-NEXT:    lw s1, 120(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a5, 124(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t1, 96(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a6, 100(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a3, 104(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t1, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t2, 36(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t3, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t4, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t5, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    lw t6, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s0, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s1, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s2, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s3, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s4, 72(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s5, 76(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s6, 112(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s7, 116(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s8, 120(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s9, 124(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s10, 96(a0)
+; RV32IXQCCMP-SR-NEXT:    lw s11, 100(a0)
+; RV32IXQCCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 108(a0)
-; RV32IXQCCMP-SR-NEXT:    lw t2, 80(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a7, 84(a0)
-; RV32IXQCCMP-SR-NEXT:    lw a4, 88(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a5, 80(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a4, 84(a0)
+; RV32IXQCCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a2, 92(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a5, 124(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s1, 120(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s0, 116(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t0, 112(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s9, 124(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s8, 120(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s7, 116(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 108(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a3, 104(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a6, 100(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t1, 96(a0)
+; RV32IXQCCMP-SR-NEXT:    sw ra, 104(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s11, 100(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV32IXQCCMP-SR-NEXT:    sw a2, 92(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a4, 88(a0)
-; RV32IXQCCMP-SR-NEXT:    sw a7, 84(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t2, 80(a0)
-; RV32IXQCCMP-SR-NEXT:    sw ra, 76(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s11, 72(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s10, 68(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s9, 64(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s8, 60(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s7, 56(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s6, 52(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s5, 48(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s4, 44(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s3, 40(a0)
-; RV32IXQCCMP-SR-NEXT:    sw s2, 36(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t6, 32(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a3, 88(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a4, 84(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a5, 80(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s5, 76(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s4, 72(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s3, 68(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s2, 64(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s1, 60(a0)
+; RV32IXQCCMP-SR-NEXT:    sw s0, 56(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t6, 52(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t5, 48(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t4, 44(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t3, 40(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t2, 36(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t1, 32(a0)
+; RV32IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV32IXQCCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload
 ; RV32IXQCCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV32IXQCCMP-SR-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload
@@ -3656,60 +3656,60 @@ define void @callee_no_irq() {
 ; RV64IXQCCMP-SR-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill
 ; RV64IXQCCMP-SR-NEXT:    lw a1, 16(a0)
 ; RV64IXQCCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill
-; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t6, 32(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s2, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s3, 40(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s4, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s5, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s6, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s7, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s8, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s9, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s10, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s11, 72(a0)
-; RV64IXQCCMP-SR-NEXT:    lw ra, 76(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t0, 112(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s0, 116(a0)
-; RV64IXQCCMP-SR-NEXT:    lw s1, 120(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a5, 124(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t1, 96(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a6, 100(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a3, 104(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a6, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t1, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t2, 36(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t3, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t4, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t5, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    lw t6, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s0, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s1, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s2, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s3, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s4, 72(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s5, 76(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s6, 112(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s7, 116(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s8, 120(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s9, 124(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s10, 96(a0)
+; RV64IXQCCMP-SR-NEXT:    lw s11, 100(a0)
+; RV64IXQCCMP-SR-NEXT:    lw ra, 104(a0)
 ; RV64IXQCCMP-SR-NEXT:    lw a1, 108(a0)
-; RV64IXQCCMP-SR-NEXT:    lw t2, 80(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a7, 84(a0)
-; RV64IXQCCMP-SR-NEXT:    lw a4, 88(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a5, 80(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a4, 84(a0)
+; RV64IXQCCMP-SR-NEXT:    lw a3, 88(a0)
 ; RV64IXQCCMP-SR-NEXT:    lw a2, 92(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a5, 124(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s1, 120(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s0, 116(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t0, 112(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s9, 124(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s8, 120(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s7, 116(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s6, 112(a0)
 ; RV64IXQCCMP-SR-NEXT:    sw a1, 108(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a3, 104(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a6, 100(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t1, 96(a0)
+; RV64IXQCCMP-SR-NEXT:    sw ra, 104(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s11, 100(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s10, 96(a0)
 ; RV64IXQCCMP-SR-NEXT:    sw a2, 92(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a4, 88(a0)
-; RV64IXQCCMP-SR-NEXT:    sw a7, 84(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t2, 80(a0)
-; RV64IXQCCMP-SR-NEXT:    sw ra, 76(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s11, 72(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s10, 68(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s9, 64(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s8, 60(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s7, 56(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s6, 52(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s5, 48(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s4, 44(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s3, 40(a0)
-; RV64IXQCCMP-SR-NEXT:    sw s2, 36(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t6, 32(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)
-; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a3, 88(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a4, 84(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a5, 80(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s5, 76(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s4, 72(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s3, 68(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s2, 64(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s1, 60(a0)
+; RV64IXQCCMP-SR-NEXT:    sw s0, 56(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t6, 52(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t5, 48(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t4, 44(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t3, 40(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t2, 36(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t1, 32(a0)
+; RV64IXQCCMP-SR-NEXT:    sw t0, 28(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a7, 24(a0)
+; RV64IXQCCMP-SR-NEXT:    sw a6, 20(a0)
 ; RV64IXQCCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload
 ; RV64IXQCCMP-SR-NEXT:    sw a1, 16(a0)
 ; RV64IXQCCMP-SR-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload



More information about the llvm-commits mailing list