@@ -815,8 +815,7 @@ define void @caller1024() {
815815; RV32I-NEXT: andi sp, sp, -1024
816816; RV32I-NEXT: addi a0, sp, 1024
817817; RV32I-NEXT: call callee
818- ; RV32I-NEXT: addi sp, s0, -2048
819- ; RV32I-NEXT: addi sp, sp, 16
818+ ; RV32I-NEXT: addi sp, s0, -2032
820819; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
821820; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload
822821; RV32I-NEXT: addi sp, sp, 2032
@@ -836,8 +835,7 @@ define void @caller1024() {
836835; RV32I-ILP32E-NEXT: andi sp, sp, -1024
837836; RV32I-ILP32E-NEXT: addi a0, sp, 1024
838837; RV32I-ILP32E-NEXT: call callee
839- ; RV32I-ILP32E-NEXT: addi sp, s0, -2048
840- ; RV32I-ILP32E-NEXT: addi sp, sp, 4
838+ ; RV32I-ILP32E-NEXT: addi sp, s0, -2044
841839; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload
842840; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload
843841; RV32I-ILP32E-NEXT: addi sp, sp, 2044
@@ -857,8 +855,7 @@ define void @caller1024() {
857855; RV64I-NEXT: andi sp, sp, -1024
858856; RV64I-NEXT: addi a0, sp, 1024
859857; RV64I-NEXT: call callee
860- ; RV64I-NEXT: addi sp, s0, -2048
861- ; RV64I-NEXT: addi sp, sp, 16
858+ ; RV64I-NEXT: addi sp, s0, -2032
862859; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
863860; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload
864861; RV64I-NEXT: addi sp, sp, 2032
@@ -878,8 +875,7 @@ define void @caller1024() {
878875; RV64I-LP64E-NEXT: andi sp, sp, -1024
879876; RV64I-LP64E-NEXT: addi a0, sp, 1024
880877; RV64I-LP64E-NEXT: call callee
881- ; RV64I-LP64E-NEXT: addi sp, s0, -2048
882- ; RV64I-LP64E-NEXT: addi sp, sp, 8
878+ ; RV64I-LP64E-NEXT: addi sp, s0, -2040
883879; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload
884880; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload
885881; RV64I-LP64E-NEXT: addi sp, sp, 2040
@@ -959,10 +955,7 @@ define void @caller2048() {
959955; RV32I-NEXT: addi a0, sp, 2047
960956; RV32I-NEXT: addi a0, a0, 1
961957; RV32I-NEXT: call callee
962- ; RV32I-NEXT: lui a0, 1
963- ; RV32I-NEXT: sub sp, s0, a0
964- ; RV32I-NEXT: addi sp, sp, 2032
965- ; RV32I-NEXT: addi sp, sp, 32
958+ ; RV32I-NEXT: addi sp, s0, -2032
966959; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
967960; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload
968961; RV32I-NEXT: addi sp, sp, 2032
@@ -984,10 +977,7 @@ define void @caller2048() {
984977; RV32I-ILP32E-NEXT: addi a0, sp, 2047
985978; RV32I-ILP32E-NEXT: addi a0, a0, 1
986979; RV32I-ILP32E-NEXT: call callee
987- ; RV32I-ILP32E-NEXT: lui a0, 1
988- ; RV32I-ILP32E-NEXT: sub sp, s0, a0
989- ; RV32I-ILP32E-NEXT: addi sp, sp, 2044
990- ; RV32I-ILP32E-NEXT: addi sp, sp, 8
980+ ; RV32I-ILP32E-NEXT: addi sp, s0, -2044
991981; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload
992982; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload
993983; RV32I-ILP32E-NEXT: addi sp, sp, 2044
@@ -1009,10 +999,7 @@ define void @caller2048() {
1009999; RV64I-NEXT: addi a0, sp, 2047
10101000; RV64I-NEXT: addi a0, a0, 1
10111001; RV64I-NEXT: call callee
1012- ; RV64I-NEXT: lui a0, 1
1013- ; RV64I-NEXT: sub sp, s0, a0
1014- ; RV64I-NEXT: addi sp, sp, 2032
1015- ; RV64I-NEXT: addi sp, sp, 32
1002+ ; RV64I-NEXT: addi sp, s0, -2032
10161003; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
10171004; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload
10181005; RV64I-NEXT: addi sp, sp, 2032
@@ -1034,10 +1021,7 @@ define void @caller2048() {
10341021; RV64I-LP64E-NEXT: addi a0, sp, 2047
10351022; RV64I-LP64E-NEXT: addi a0, a0, 1
10361023; RV64I-LP64E-NEXT: call callee
1037- ; RV64I-LP64E-NEXT: lui a0, 1
1038- ; RV64I-LP64E-NEXT: sub sp, s0, a0
1039- ; RV64I-LP64E-NEXT: addi sp, sp, 2040
1040- ; RV64I-LP64E-NEXT: addi sp, sp, 16
1024+ ; RV64I-LP64E-NEXT: addi sp, s0, -2040
10411025; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload
10421026; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload
10431027; RV64I-LP64E-NEXT: addi sp, sp, 2040
@@ -1119,10 +1103,7 @@ define void @caller4096() {
11191103; RV32I-NEXT: lui a0, 1
11201104; RV32I-NEXT: add a0, sp, a0
11211105; RV32I-NEXT: call callee
1122- ; RV32I-NEXT: lui a0, 2
1123- ; RV32I-NEXT: sub sp, s0, a0
1124- ; RV32I-NEXT: addi a0, a0, -2032
1125- ; RV32I-NEXT: add sp, sp, a0
1106+ ; RV32I-NEXT: addi sp, s0, -2032
11261107; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
11271108; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload
11281109; RV32I-NEXT: addi sp, sp, 2032
@@ -1146,10 +1127,7 @@ define void @caller4096() {
11461127; RV32I-ILP32E-NEXT: lui a0, 1
11471128; RV32I-ILP32E-NEXT: add a0, sp, a0
11481129; RV32I-ILP32E-NEXT: call callee
1149- ; RV32I-ILP32E-NEXT: lui a0, 2
1150- ; RV32I-ILP32E-NEXT: sub sp, s0, a0
1151- ; RV32I-ILP32E-NEXT: addi a0, a0, -2044
1152- ; RV32I-ILP32E-NEXT: add sp, sp, a0
1130+ ; RV32I-ILP32E-NEXT: addi sp, s0, -2044
11531131; RV32I-ILP32E-NEXT: lw ra, 2040(sp) # 4-byte Folded Reload
11541132; RV32I-ILP32E-NEXT: lw s0, 2036(sp) # 4-byte Folded Reload
11551133; RV32I-ILP32E-NEXT: addi sp, sp, 2044
@@ -1173,10 +1151,7 @@ define void @caller4096() {
11731151; RV64I-NEXT: lui a0, 1
11741152; RV64I-NEXT: add a0, sp, a0
11751153; RV64I-NEXT: call callee
1176- ; RV64I-NEXT: lui a0, 2
1177- ; RV64I-NEXT: sub sp, s0, a0
1178- ; RV64I-NEXT: addiw a0, a0, -2032
1179- ; RV64I-NEXT: add sp, sp, a0
1154+ ; RV64I-NEXT: addi sp, s0, -2032
11801155; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
11811156; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload
11821157; RV64I-NEXT: addi sp, sp, 2032
@@ -1200,10 +1175,7 @@ define void @caller4096() {
12001175; RV64I-LP64E-NEXT: lui a0, 1
12011176; RV64I-LP64E-NEXT: add a0, sp, a0
12021177; RV64I-LP64E-NEXT: call callee
1203- ; RV64I-LP64E-NEXT: lui a0, 2
1204- ; RV64I-LP64E-NEXT: sub sp, s0, a0
1205- ; RV64I-LP64E-NEXT: addiw a0, a0, -2040
1206- ; RV64I-LP64E-NEXT: add sp, sp, a0
1178+ ; RV64I-LP64E-NEXT: addi sp, s0, -2040
12071179; RV64I-LP64E-NEXT: ld ra, 2032(sp) # 8-byte Folded Reload
12081180; RV64I-LP64E-NEXT: ld s0, 2024(sp) # 8-byte Folded Reload
12091181; RV64I-LP64E-NEXT: addi sp, sp, 2040
0 commit comments