@@ -142,8 +142,7 @@ define i32 @caller_many_scalars() nounwind {
142
142
; RV32I-FPELIM: # %bb.0:
143
143
; RV32I-FPELIM-NEXT: addi sp, sp, -16
144
144
; RV32I-FPELIM-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
145
- ; RV32I-FPELIM-NEXT: li a0, 8
146
- ; RV32I-FPELIM-NEXT: sw a0, 4(sp)
145
+ ; RV32I-FPELIM-NEXT: li a4, 8
147
146
; RV32I-FPELIM-NEXT: li a0, 1
148
147
; RV32I-FPELIM-NEXT: li a1, 2
149
148
; RV32I-FPELIM-NEXT: li a2, 3
@@ -152,6 +151,7 @@ define i32 @caller_many_scalars() nounwind {
152
151
; RV32I-FPELIM-NEXT: li a6, 6
153
152
; RV32I-FPELIM-NEXT: li a7, 7
154
153
; RV32I-FPELIM-NEXT: sw zero, 0(sp)
154
+ ; RV32I-FPELIM-NEXT: sw a4, 4(sp)
155
155
; RV32I-FPELIM-NEXT: li a4, 0
156
156
; RV32I-FPELIM-NEXT: call callee_many_scalars@plt
157
157
; RV32I-FPELIM-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
@@ -164,8 +164,7 @@ define i32 @caller_many_scalars() nounwind {
164
164
; RV32I-WITHFP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
165
165
; RV32I-WITHFP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
166
166
; RV32I-WITHFP-NEXT: addi s0, sp, 16
167
- ; RV32I-WITHFP-NEXT: li a0, 8
168
- ; RV32I-WITHFP-NEXT: sw a0, 4(sp)
167
+ ; RV32I-WITHFP-NEXT: li a4, 8
169
168
; RV32I-WITHFP-NEXT: li a0, 1
170
169
; RV32I-WITHFP-NEXT: li a1, 2
171
170
; RV32I-WITHFP-NEXT: li a2, 3
@@ -174,6 +173,7 @@ define i32 @caller_many_scalars() nounwind {
174
173
; RV32I-WITHFP-NEXT: li a6, 6
175
174
; RV32I-WITHFP-NEXT: li a7, 7
176
175
; RV32I-WITHFP-NEXT: sw zero, 0(sp)
176
+ ; RV32I-WITHFP-NEXT: sw a4, 4(sp)
177
177
; RV32I-WITHFP-NEXT: li a4, 0
178
178
; RV32I-WITHFP-NEXT: call callee_many_scalars@plt
179
179
; RV32I-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
@@ -354,9 +354,9 @@ define i32 @caller_large_scalars_exhausted_regs() nounwind {
354
354
; RV32I-FPELIM-NEXT: addi sp, sp, -64
355
355
; RV32I-FPELIM-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
356
356
; RV32I-FPELIM-NEXT: addi a0, sp, 16
357
+ ; RV32I-FPELIM-NEXT: li a1, 9
358
+ ; RV32I-FPELIM-NEXT: sw a1, 0(sp)
357
359
; RV32I-FPELIM-NEXT: sw a0, 4(sp)
358
- ; RV32I-FPELIM-NEXT: li a0, 9
359
- ; RV32I-FPELIM-NEXT: sw a0, 0(sp)
360
360
; RV32I-FPELIM-NEXT: lui a0, 524272
361
361
; RV32I-FPELIM-NEXT: sw a0, 28(sp)
362
362
; RV32I-FPELIM-NEXT: sw zero, 24(sp)
@@ -387,9 +387,9 @@ define i32 @caller_large_scalars_exhausted_regs() nounwind {
387
387
; RV32I-WITHFP-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
388
388
; RV32I-WITHFP-NEXT: addi s0, sp, 64
389
389
; RV32I-WITHFP-NEXT: addi a0, s0, -48
390
+ ; RV32I-WITHFP-NEXT: li a1, 9
391
+ ; RV32I-WITHFP-NEXT: sw a1, 0(sp)
390
392
; RV32I-WITHFP-NEXT: sw a0, 4(sp)
391
- ; RV32I-WITHFP-NEXT: li a0, 9
392
- ; RV32I-WITHFP-NEXT: sw a0, 0(sp)
393
393
; RV32I-WITHFP-NEXT: lui a0, 524272
394
394
; RV32I-WITHFP-NEXT: sw a0, -36(s0)
395
395
; RV32I-WITHFP-NEXT: sw zero, -40(s0)
@@ -665,16 +665,16 @@ define void @caller_aligned_stack() nounwind {
665
665
; RV32I-FPELIM-NEXT: addi sp, sp, -64
666
666
; RV32I-FPELIM-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
667
667
; RV32I-FPELIM-NEXT: li a0, 19
668
- ; RV32I-FPELIM-NEXT: sw a0, 24(sp)
669
- ; RV32I-FPELIM-NEXT: li a0, 18
670
- ; RV32I-FPELIM-NEXT: sw a0, 20(sp)
671
- ; RV32I-FPELIM-NEXT: li a0, 17
672
- ; RV32I-FPELIM-NEXT: sw a0, 16(sp)
668
+ ; RV32I-FPELIM-NEXT: li a1, 18
669
+ ; RV32I-FPELIM-NEXT: li a2, 17
670
+ ; RV32I-FPELIM-NEXT: li a3, 16
671
+ ; RV32I-FPELIM-NEXT: li a4, 15
672
+ ; RV32I-FPELIM-NEXT: sw a4, 0(sp)
673
+ ; RV32I-FPELIM-NEXT: sw a3, 8(sp)
673
674
; RV32I-FPELIM-NEXT: sw zero, 12(sp)
674
- ; RV32I-FPELIM-NEXT: li a0, 16
675
- ; RV32I-FPELIM-NEXT: sw a0, 8(sp)
676
- ; RV32I-FPELIM-NEXT: li a0, 15
677
- ; RV32I-FPELIM-NEXT: sw a0, 0(sp)
675
+ ; RV32I-FPELIM-NEXT: sw a2, 16(sp)
676
+ ; RV32I-FPELIM-NEXT: sw a1, 20(sp)
677
+ ; RV32I-FPELIM-NEXT: sw a0, 24(sp)
678
678
; RV32I-FPELIM-NEXT: lui a0, 262153
679
679
; RV32I-FPELIM-NEXT: addi a0, a0, 491
680
680
; RV32I-FPELIM-NEXT: sw a0, 44(sp)
@@ -708,16 +708,16 @@ define void @caller_aligned_stack() nounwind {
708
708
; RV32I-WITHFP-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
709
709
; RV32I-WITHFP-NEXT: addi s0, sp, 64
710
710
; RV32I-WITHFP-NEXT: li a0, 19
711
- ; RV32I-WITHFP-NEXT: sw a0, 24(sp)
712
- ; RV32I-WITHFP-NEXT: li a0, 18
713
- ; RV32I-WITHFP-NEXT: sw a0, 20(sp)
714
- ; RV32I-WITHFP-NEXT: li a0, 17
715
- ; RV32I-WITHFP-NEXT: sw a0, 16(sp)
711
+ ; RV32I-WITHFP-NEXT: li a1, 18
712
+ ; RV32I-WITHFP-NEXT: li a2, 17
713
+ ; RV32I-WITHFP-NEXT: li a3, 16
714
+ ; RV32I-WITHFP-NEXT: li a4, 15
715
+ ; RV32I-WITHFP-NEXT: sw a4, 0(sp)
716
+ ; RV32I-WITHFP-NEXT: sw a3, 8(sp)
716
717
; RV32I-WITHFP-NEXT: sw zero, 12(sp)
717
- ; RV32I-WITHFP-NEXT: li a0, 16
718
- ; RV32I-WITHFP-NEXT: sw a0, 8(sp)
719
- ; RV32I-WITHFP-NEXT: li a0, 15
720
- ; RV32I-WITHFP-NEXT: sw a0, 0(sp)
718
+ ; RV32I-WITHFP-NEXT: sw a2, 16(sp)
719
+ ; RV32I-WITHFP-NEXT: sw a1, 20(sp)
720
+ ; RV32I-WITHFP-NEXT: sw a0, 24(sp)
721
721
; RV32I-WITHFP-NEXT: lui a0, 262153
722
722
; RV32I-WITHFP-NEXT: addi a0, a0, 491
723
723
; RV32I-WITHFP-NEXT: sw a0, -20(s0)
@@ -881,10 +881,10 @@ define fp128 @callee_large_scalar_ret() nounwind {
881
881
; RV32I-FPELIM-LABEL: callee_large_scalar_ret:
882
882
; RV32I-FPELIM: # %bb.0:
883
883
; RV32I-FPELIM-NEXT: lui a1, 524272
884
- ; RV32I-FPELIM-NEXT: sw a1, 12(a0)
885
- ; RV32I-FPELIM-NEXT: sw zero, 8(a0)
886
- ; RV32I-FPELIM-NEXT: sw zero, 4(a0)
887
884
; RV32I-FPELIM-NEXT: sw zero, 0(a0)
885
+ ; RV32I-FPELIM-NEXT: sw zero, 4(a0)
886
+ ; RV32I-FPELIM-NEXT: sw zero, 8(a0)
887
+ ; RV32I-FPELIM-NEXT: sw a1, 12(a0)
888
888
; RV32I-FPELIM-NEXT: ret
889
889
;
890
890
; RV32I-WITHFP-LABEL: callee_large_scalar_ret:
@@ -894,10 +894,10 @@ define fp128 @callee_large_scalar_ret() nounwind {
894
894
; RV32I-WITHFP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
895
895
; RV32I-WITHFP-NEXT: addi s0, sp, 16
896
896
; RV32I-WITHFP-NEXT: lui a1, 524272
897
- ; RV32I-WITHFP-NEXT: sw a1, 12(a0)
898
- ; RV32I-WITHFP-NEXT: sw zero, 8(a0)
899
- ; RV32I-WITHFP-NEXT: sw zero, 4(a0)
900
897
; RV32I-WITHFP-NEXT: sw zero, 0(a0)
898
+ ; RV32I-WITHFP-NEXT: sw zero, 4(a0)
899
+ ; RV32I-WITHFP-NEXT: sw zero, 8(a0)
900
+ ; RV32I-WITHFP-NEXT: sw a1, 12(a0)
901
901
; RV32I-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
902
902
; RV32I-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
903
903
; RV32I-WITHFP-NEXT: addi sp, sp, 16
@@ -938,13 +938,13 @@ define void @callee_large_struct_ret(ptr noalias sret(%struct.large) %agg.result
938
938
; RV32I-FPELIM-LABEL: callee_large_struct_ret:
939
939
; RV32I-FPELIM: # %bb.0:
940
940
; RV32I-FPELIM-NEXT: li a1, 1
941
+ ; RV32I-FPELIM-NEXT: li a2, 2
942
+ ; RV32I-FPELIM-NEXT: li a3, 3
943
+ ; RV32I-FPELIM-NEXT: li a4, 4
941
944
; RV32I-FPELIM-NEXT: sw a1, 0(a0)
942
- ; RV32I-FPELIM-NEXT: li a1, 2
943
- ; RV32I-FPELIM-NEXT: sw a1, 4(a0)
944
- ; RV32I-FPELIM-NEXT: li a1, 3
945
- ; RV32I-FPELIM-NEXT: sw a1, 8(a0)
946
- ; RV32I-FPELIM-NEXT: li a1, 4
947
- ; RV32I-FPELIM-NEXT: sw a1, 12(a0)
945
+ ; RV32I-FPELIM-NEXT: sw a2, 4(a0)
946
+ ; RV32I-FPELIM-NEXT: sw a3, 8(a0)
947
+ ; RV32I-FPELIM-NEXT: sw a4, 12(a0)
948
948
; RV32I-FPELIM-NEXT: ret
949
949
;
950
950
; RV32I-WITHFP-LABEL: callee_large_struct_ret:
@@ -954,13 +954,13 @@ define void @callee_large_struct_ret(ptr noalias sret(%struct.large) %agg.result
954
954
; RV32I-WITHFP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
955
955
; RV32I-WITHFP-NEXT: addi s0, sp, 16
956
956
; RV32I-WITHFP-NEXT: li a1, 1
957
+ ; RV32I-WITHFP-NEXT: li a2, 2
958
+ ; RV32I-WITHFP-NEXT: li a3, 3
959
+ ; RV32I-WITHFP-NEXT: li a4, 4
957
960
; RV32I-WITHFP-NEXT: sw a1, 0(a0)
958
- ; RV32I-WITHFP-NEXT: li a1, 2
959
- ; RV32I-WITHFP-NEXT: sw a1, 4(a0)
960
- ; RV32I-WITHFP-NEXT: li a1, 3
961
- ; RV32I-WITHFP-NEXT: sw a1, 8(a0)
962
- ; RV32I-WITHFP-NEXT: li a1, 4
963
- ; RV32I-WITHFP-NEXT: sw a1, 12(a0)
961
+ ; RV32I-WITHFP-NEXT: sw a2, 4(a0)
962
+ ; RV32I-WITHFP-NEXT: sw a3, 8(a0)
963
+ ; RV32I-WITHFP-NEXT: sw a4, 12(a0)
964
964
; RV32I-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
965
965
; RV32I-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
966
966
; RV32I-WITHFP-NEXT: addi sp, sp, 16
0 commit comments