diff --git a/llvm/test/CodeGen/RISCV/branch-relaxation.ll b/llvm/test/CodeGen/RISCV/branch-relaxation.ll index 3d48dc9637eaed..ec77d54da116d3 100644 --- a/llvm/test/CodeGen/RISCV/branch-relaxation.ll +++ b/llvm/test/CodeGen/RISCV/branch-relaxation.ll @@ -824,10 +824,7 @@ define void @relax_jal_spill_32_adjust_spill_slot() { ; CHECK-RV32-NEXT: #APP ; CHECK-RV32-NEXT: # reg use t6 ; CHECK-RV32-NEXT: #NO_APP -; CHECK-RV32-NEXT: lui a0, 2 -; CHECK-RV32-NEXT: sub sp, s0, a0 -; CHECK-RV32-NEXT: addi a0, a0, -2032 -; CHECK-RV32-NEXT: add sp, sp, a0 +; CHECK-RV32-NEXT: addi sp, s0, -2032 ; CHECK-RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; CHECK-RV32-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; CHECK-RV32-NEXT: lw s1, 2020(sp) # 4-byte Folded Reload @@ -1073,10 +1070,7 @@ define void @relax_jal_spill_32_adjust_spill_slot() { ; CHECK-RV64-NEXT: #APP ; CHECK-RV64-NEXT: # reg use t6 ; CHECK-RV64-NEXT: #NO_APP -; CHECK-RV64-NEXT: lui a0, 2 -; CHECK-RV64-NEXT: sub sp, s0, a0 -; CHECK-RV64-NEXT: addiw a0, a0, -2032 -; CHECK-RV64-NEXT: add sp, sp, a0 +; CHECK-RV64-NEXT: addi sp, s0, -2032 ; CHECK-RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; CHECK-RV64-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; CHECK-RV64-NEXT: ld s1, 2008(sp) # 8-byte Folded Reload @@ -2323,10 +2317,7 @@ define void @relax_jal_spill_64_adjust_spill_slot() { ; CHECK-RV32-NEXT: #APP ; CHECK-RV32-NEXT: # reg use t6 ; CHECK-RV32-NEXT: #NO_APP -; CHECK-RV32-NEXT: lui a0, 2 -; CHECK-RV32-NEXT: sub sp, s0, a0 -; CHECK-RV32-NEXT: addi a0, a0, -2032 -; CHECK-RV32-NEXT: add sp, sp, a0 +; CHECK-RV32-NEXT: addi sp, s0, -2032 ; CHECK-RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; CHECK-RV32-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; CHECK-RV32-NEXT: lw s1, 2020(sp) # 4-byte Folded Reload @@ -2560,10 +2551,7 @@ define void @relax_jal_spill_64_adjust_spill_slot() { ; CHECK-RV64-NEXT: #APP ; CHECK-RV64-NEXT: # reg use t6 ; CHECK-RV64-NEXT: #NO_APP -; CHECK-RV64-NEXT: lui a0, 2 -; CHECK-RV64-NEXT: sub sp, s0, a0 -; CHECK-RV64-NEXT: addiw a0, a0, -2032 -; CHECK-RV64-NEXT: add sp, sp, a0 +; CHECK-RV64-NEXT: addi sp, s0, -2032 ; CHECK-RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; CHECK-RV64-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; CHECK-RV64-NEXT: ld s1, 2008(sp) # 8-byte Folded Reload diff --git a/llvm/test/CodeGen/RISCV/out-of-reach-emergency-slot.mir b/llvm/test/CodeGen/RISCV/out-of-reach-emergency-slot.mir index 08716be713b0f7..a3a1818993f0b4 100644 --- a/llvm/test/CodeGen/RISCV/out-of-reach-emergency-slot.mir +++ b/llvm/test/CodeGen/RISCV/out-of-reach-emergency-slot.mir @@ -41,10 +41,7 @@ ; CHECK-NEXT: sd a0, -8(a1) ; CHECK-NEXT: ld a1, 0(sp) ; CHECK-NEXT: call foo - ; CHECK-NEXT: lui a0, 2 - ; CHECK-NEXT: sub sp, s0, a0 - ; CHECK-NEXT: addiw a0, a0, -2032 - ; CHECK-NEXT: add sp, sp, a0 + ; CHECK-NEXT: addi sp, s0, -2032 ; CHECK-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; CHECK-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 2032 diff --git a/llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir b/llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir index 5f0e1a9b9aa24c..43fb0c10ca46f6 100644 --- a/llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir +++ b/llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir @@ -46,9 +46,7 @@ body: | ; CHECK-NEXT: $x10 = ADDI killed $x10, -2048 ; CHECK-NEXT: $x10 = ADDI killed $x10, -224 ; CHECK-NEXT: VS1R_V killed renamable $v8, killed renamable $x10 - ; CHECK-NEXT: $x2 = frame-destroy ADDI $x8, -2048 - ; CHECK-NEXT: $x2 = frame-destroy ADDI killed $x2, -224 - ; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 240 + ; CHECK-NEXT: $x2 = frame-destroy ADDI $x8, -2032 ; CHECK-NEXT: $x1 = LD $x2, 2024 :: (load (s64) from %stack.3) ; CHECK-NEXT: $x8 = LD $x2, 2016 :: (load (s64) from %stack.4) ; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 2032 diff --git a/llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll b/llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll index c1ce2e988fc511..c0b10be847d1ff 100644 --- a/llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll +++ b/llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll @@ -109,9 +109,7 @@ define riscv_vector_cc void @local_stack_allocation_frame_pointer() "frame-point ; SPILL-O2-NEXT: addi sp, sp, -480 ; SPILL-O2-NEXT: lbu a0, -1912(s0) ; SPILL-O2-NEXT: sb a0, -1912(s0) -; SPILL-O2-NEXT: addi sp, s0, -2048 -; SPILL-O2-NEXT: addi sp, sp, -464 -; SPILL-O2-NEXT: addi sp, sp, 480 +; SPILL-O2-NEXT: addi sp, s0, -2032 ; SPILL-O2-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; SPILL-O2-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; SPILL-O2-NEXT: addi sp, sp, 2032 diff --git a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir index c4bc794b8aeb38..1b9ce12af01f96 100644 --- a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir +++ b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir @@ -150,9 +150,7 @@ body: | ; CHECK-NEXT: PseudoBR %bb.2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: bb.2: - ; CHECK-NEXT: $x2 = frame-destroy ADDI $x8, -2048 - ; CHECK-NEXT: $x2 = frame-destroy ADDI killed $x2, -256 - ; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 272 + ; CHECK-NEXT: $x2 = frame-destroy ADDI $x8, -2032 ; CHECK-NEXT: $x1 = LD $x2, 2024 :: (load (s64) from %stack.3) ; CHECK-NEXT: $x8 = LD $x2, 2016 :: (load (s64) from %stack.4) ; CHECK-NEXT: $x18 = LD $x2, 2008 :: (load (s64) from %stack.5) diff --git a/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir b/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir index b4d8805b65bd8f..22a7425bf98b8e 100644 --- a/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir +++ b/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir @@ -33,9 +33,7 @@ ; CHECK-NEXT: vs1r.v v25, (a0) # Unknown-size Folded Spill ; CHECK-NEXT: ld a0, 8(sp) ; CHECK-NEXT: call spillslot - ; CHECK-NEXT: addi sp, s0, -2048 - ; CHECK-NEXT: addi sp, sp, -256 - ; CHECK-NEXT: addi sp, sp, 272 + ; CHECK-NEXT: addi sp, s0, -2032 ; CHECK-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; CHECK-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; CHECK-NEXT: addi sp, sp, 2032 diff --git a/llvm/test/CodeGen/RISCV/stack-realignment.ll b/llvm/test/CodeGen/RISCV/stack-realignment.ll index 034ebadc76af26..58876e4888a913 100644 --- a/llvm/test/CodeGen/RISCV/stack-realignment.ll +++ b/llvm/test/CodeGen/RISCV/stack-realignment.ll @@ -815,8 +815,7 @@ define void @caller1024() { ; RV32I-NEXT: andi sp, sp, -1024 ; RV32I-NEXT: addi a0, sp, 1024 ; RV32I-NEXT: call callee -; RV32I-NEXT: addi sp, s0, -2048 -; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: addi sp, s0, -2032 ; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 2032 @@ -836,8 +835,7 @@ define void @caller1024() { ; RV32I-ILP32E-NEXT: andi sp, sp, -1024 ; RV32I-ILP32E-NEXT: addi a0, sp, 1024 ; RV32I-ILP32E-NEXT: call callee -; RV32I-ILP32E-NEXT: addi sp, s0, -2048 -; RV32I-ILP32E-NEXT: addi sp, sp, 4 +; RV32I-ILP32E-NEXT: addi sp, s0, -2044 ; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: addi sp, sp, 2044 @@ -857,8 +855,7 @@ define void @caller1024() { ; RV64I-NEXT: andi sp, sp, -1024 ; RV64I-NEXT: addi a0, sp, 1024 ; RV64I-NEXT: call callee -; RV64I-NEXT: addi sp, s0, -2048 -; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: addi sp, s0, -2032 ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 2032 @@ -878,8 +875,7 @@ define void @caller1024() { ; RV64I-LP64E-NEXT: andi sp, sp, -1024 ; RV64I-LP64E-NEXT: addi a0, sp, 1024 ; RV64I-LP64E-NEXT: call callee -; RV64I-LP64E-NEXT: addi sp, s0, -2048 -; RV64I-LP64E-NEXT: addi sp, sp, 8 +; RV64I-LP64E-NEXT: addi sp, s0, -2040 ; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: addi sp, sp, 2040 @@ -959,10 +955,7 @@ define void @caller2048() { ; RV32I-NEXT: addi a0, sp, 2047 ; RV32I-NEXT: addi a0, a0, 1 ; RV32I-NEXT: call callee -; RV32I-NEXT: lui a0, 1 -; RV32I-NEXT: sub sp, s0, a0 -; RV32I-NEXT: addi sp, sp, 2032 -; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: addi sp, s0, -2032 ; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 2032 @@ -984,10 +977,7 @@ define void @caller2048() { ; RV32I-ILP32E-NEXT: addi a0, sp, 2047 ; RV32I-ILP32E-NEXT: addi a0, a0, 1 ; RV32I-ILP32E-NEXT: call callee -; RV32I-ILP32E-NEXT: lui a0, 1 -; RV32I-ILP32E-NEXT: sub sp, s0, a0 -; RV32I-ILP32E-NEXT: addi sp, sp, 2044 -; RV32I-ILP32E-NEXT: addi sp, sp, 8 +; RV32I-ILP32E-NEXT: addi sp, s0, -2044 ; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: addi sp, sp, 2044 @@ -1009,10 +999,7 @@ define void @caller2048() { ; RV64I-NEXT: addi a0, sp, 2047 ; RV64I-NEXT: addi a0, a0, 1 ; RV64I-NEXT: call callee -; RV64I-NEXT: lui a0, 1 -; RV64I-NEXT: sub sp, s0, a0 -; RV64I-NEXT: addi sp, sp, 2032 -; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: addi sp, s0, -2032 ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 2032 @@ -1034,10 +1021,7 @@ define void @caller2048() { ; RV64I-LP64E-NEXT: addi a0, sp, 2047 ; RV64I-LP64E-NEXT: addi a0, a0, 1 ; RV64I-LP64E-NEXT: call callee -; RV64I-LP64E-NEXT: lui a0, 1 -; RV64I-LP64E-NEXT: sub sp, s0, a0 -; RV64I-LP64E-NEXT: addi sp, sp, 2040 -; RV64I-LP64E-NEXT: addi sp, sp, 16 +; RV64I-LP64E-NEXT: addi sp, s0, -2040 ; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: addi sp, sp, 2040 @@ -1119,10 +1103,7 @@ define void @caller4096() { ; RV32I-NEXT: lui a0, 1 ; RV32I-NEXT: add a0, sp, a0 ; RV32I-NEXT: call callee -; RV32I-NEXT: lui a0, 2 -; RV32I-NEXT: sub sp, s0, a0 -; RV32I-NEXT: addi a0, a0, -2032 -; RV32I-NEXT: add sp, sp, a0 +; RV32I-NEXT: addi sp, s0, -2032 ; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload ; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload ; RV32I-NEXT: addi sp, sp, 2032 @@ -1146,10 +1127,7 @@ define void @caller4096() { ; RV32I-ILP32E-NEXT: lui a0, 1 ; RV32I-ILP32E-NEXT: add a0, sp, a0 ; RV32I-ILP32E-NEXT: call callee -; RV32I-ILP32E-NEXT: lui a0, 2 -; RV32I-ILP32E-NEXT: sub sp, s0, a0 -; RV32I-ILP32E-NEXT: addi a0, a0, -2044 -; RV32I-ILP32E-NEXT: add sp, sp, a0 +; RV32I-ILP32E-NEXT: addi sp, s0, -2044 ; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload ; RV32I-ILP32E-NEXT: addi sp, sp, 2044 @@ -1173,10 +1151,7 @@ define void @caller4096() { ; RV64I-NEXT: lui a0, 1 ; RV64I-NEXT: add a0, sp, a0 ; RV64I-NEXT: call callee -; RV64I-NEXT: lui a0, 2 -; RV64I-NEXT: sub sp, s0, a0 -; RV64I-NEXT: addiw a0, a0, -2032 -; RV64I-NEXT: add sp, sp, a0 +; RV64I-NEXT: addi sp, s0, -2032 ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload ; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload ; RV64I-NEXT: addi sp, sp, 2032 @@ -1200,10 +1175,7 @@ define void @caller4096() { ; RV64I-LP64E-NEXT: lui a0, 1 ; RV64I-LP64E-NEXT: add a0, sp, a0 ; RV64I-LP64E-NEXT: call callee -; RV64I-LP64E-NEXT: lui a0, 2 -; RV64I-LP64E-NEXT: sub sp, s0, a0 -; RV64I-LP64E-NEXT: addiw a0, a0, -2040 -; RV64I-LP64E-NEXT: add sp, sp, a0 +; RV64I-LP64E-NEXT: addi sp, s0, -2040 ; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload ; RV64I-LP64E-NEXT: addi sp, sp, 2040