@@ -12,74 +12,69 @@ declare preserve_mostcc void @preserve_mostcc_func()
1212define preserve_mostcc void @preserve_mostcc1 () nounwind {
1313; RV32I-LABEL: preserve_mostcc1:
1414; RV32I: # %bb.0: # %entry
15- ; RV32I-NEXT: addi sp, sp, -64
16- ; RV32I-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
17- ; RV32I-NEXT: sw t0, 56(sp) # 4-byte Folded Spill
18- ; RV32I-NEXT: sw a0, 52(sp) # 4-byte Folded Spill
19- ; RV32I-NEXT: sw a1, 48(sp) # 4-byte Folded Spill
20- ; RV32I-NEXT: sw a2, 44(sp) # 4-byte Folded Spill
21- ; RV32I-NEXT: sw a3, 40(sp) # 4-byte Folded Spill
22- ; RV32I-NEXT: sw a4, 36(sp) # 4-byte Folded Spill
23- ; RV32I-NEXT: sw a5, 32(sp) # 4-byte Folded Spill
24- ; RV32I-NEXT: sw a6, 28(sp) # 4-byte Folded Spill
25- ; RV32I-NEXT: sw a7, 24(sp) # 4-byte Folded Spill
26- ; RV32I-NEXT: sw t4, 20(sp) # 4-byte Folded Spill
27- ; RV32I-NEXT: sw t5, 16(sp) # 4-byte Folded Spill
28- ; RV32I-NEXT: sw t6, 12(sp) # 4-byte Folded Spill
15+ ; RV32I-NEXT: addi sp, sp, -48
16+ ; RV32I-NEXT: sw t0, 44(sp) # 4-byte Folded Spill
17+ ; RV32I-NEXT: sw a0, 40(sp) # 4-byte Folded Spill
18+ ; RV32I-NEXT: sw a1, 36(sp) # 4-byte Folded Spill
19+ ; RV32I-NEXT: sw a2, 32(sp) # 4-byte Folded Spill
20+ ; RV32I-NEXT: sw a3, 28(sp) # 4-byte Folded Spill
21+ ; RV32I-NEXT: sw a4, 24(sp) # 4-byte Folded Spill
22+ ; RV32I-NEXT: sw a5, 20(sp) # 4-byte Folded Spill
23+ ; RV32I-NEXT: sw a6, 16(sp) # 4-byte Folded Spill
24+ ; RV32I-NEXT: sw a7, 12(sp) # 4-byte Folded Spill
25+ ; RV32I-NEXT: sw t4, 8(sp) # 4-byte Folded Spill
26+ ; RV32I-NEXT: sw t5, 4(sp) # 4-byte Folded Spill
27+ ; RV32I-NEXT: sw t6, 0(sp) # 4-byte Folded Spill
2928; RV32I-NEXT: call standard_cc_func
30- ; RV32I-NEXT: lw ra, 60(sp) # 4-byte Folded Reload
31- ; RV32I-NEXT: lw t0, 56(sp) # 4-byte Folded Reload
32- ; RV32I-NEXT: lw a0, 52(sp) # 4-byte Folded Reload
33- ; RV32I-NEXT: lw a1, 48(sp) # 4-byte Folded Reload
34- ; RV32I-NEXT: lw a2, 44(sp) # 4-byte Folded Reload
35- ; RV32I-NEXT: lw a3, 40(sp) # 4-byte Folded Reload
36- ; RV32I-NEXT: lw a4, 36(sp) # 4-byte Folded Reload
37- ; RV32I-NEXT: lw a5, 32(sp) # 4-byte Folded Reload
38- ; RV32I-NEXT: lw a6, 28(sp) # 4-byte Folded Reload
39- ; RV32I-NEXT: lw a7, 24(sp) # 4-byte Folded Reload
40- ; RV32I-NEXT: lw t4, 20(sp) # 4-byte Folded Reload
41- ; RV32I-NEXT: lw t5, 16(sp) # 4-byte Folded Reload
42- ; RV32I-NEXT: lw t6, 12(sp) # 4-byte Folded Reload
43- ; RV32I-NEXT: addi sp, sp, 64
29+ ; RV32I-NEXT: lw t0, 44(sp) # 4-byte Folded Reload
30+ ; RV32I-NEXT: lw a0, 40(sp) # 4-byte Folded Reload
31+ ; RV32I-NEXT: lw a1, 36(sp) # 4-byte Folded Reload
32+ ; RV32I-NEXT: lw a2, 32(sp) # 4-byte Folded Reload
33+ ; RV32I-NEXT: lw a3, 28(sp) # 4-byte Folded Reload
34+ ; RV32I-NEXT: lw a4, 24(sp) # 4-byte Folded Reload
35+ ; RV32I-NEXT: lw a5, 20(sp) # 4-byte Folded Reload
36+ ; RV32I-NEXT: lw a6, 16(sp) # 4-byte Folded Reload
37+ ; RV32I-NEXT: lw a7, 12(sp) # 4-byte Folded Reload
38+ ; RV32I-NEXT: lw t4, 8(sp) # 4-byte Folded Reload
39+ ; RV32I-NEXT: lw t5, 4(sp) # 4-byte Folded Reload
40+ ; RV32I-NEXT: lw t6, 0(sp) # 4-byte Folded Reload
41+ ; RV32I-NEXT: addi sp, sp, 48
4442; RV32I-NEXT: ret
4543;
4644; RV64I-LABEL: preserve_mostcc1:
4745; RV64I: # %bb.0: # %entry
48- ; RV64I-NEXT: addi sp, sp, -112
49- ; RV64I-NEXT: sd ra, 104(sp) # 8-byte Folded Spill
50- ; RV64I-NEXT: sd t0, 96(sp) # 8-byte Folded Spill
51- ; RV64I-NEXT: sd a0, 88(sp) # 8-byte Folded Spill
52- ; RV64I-NEXT: sd a1, 80(sp) # 8-byte Folded Spill
53- ; RV64I-NEXT: sd a2, 72(sp) # 8-byte Folded Spill
54- ; RV64I-NEXT: sd a3, 64(sp) # 8-byte Folded Spill
55- ; RV64I-NEXT: sd a4, 56(sp) # 8-byte Folded Spill
56- ; RV64I-NEXT: sd a5, 48(sp) # 8-byte Folded Spill
57- ; RV64I-NEXT: sd a6, 40(sp) # 8-byte Folded Spill
58- ; RV64I-NEXT: sd a7, 32(sp) # 8-byte Folded Spill
59- ; RV64I-NEXT: sd t4, 24(sp) # 8-byte Folded Spill
60- ; RV64I-NEXT: sd t5, 16(sp) # 8-byte Folded Spill
61- ; RV64I-NEXT: sd t6, 8(sp) # 8-byte Folded Spill
46+ ; RV64I-NEXT: addi sp, sp, -96
47+ ; RV64I-NEXT: sd t0, 88(sp) # 8-byte Folded Spill
48+ ; RV64I-NEXT: sd a0, 80(sp) # 8-byte Folded Spill
49+ ; RV64I-NEXT: sd a1, 72(sp) # 8-byte Folded Spill
50+ ; RV64I-NEXT: sd a2, 64(sp) # 8-byte Folded Spill
51+ ; RV64I-NEXT: sd a3, 56(sp) # 8-byte Folded Spill
52+ ; RV64I-NEXT: sd a4, 48(sp) # 8-byte Folded Spill
53+ ; RV64I-NEXT: sd a5, 40(sp) # 8-byte Folded Spill
54+ ; RV64I-NEXT: sd a6, 32(sp) # 8-byte Folded Spill
55+ ; RV64I-NEXT: sd a7, 24(sp) # 8-byte Folded Spill
56+ ; RV64I-NEXT: sd t4, 16(sp) # 8-byte Folded Spill
57+ ; RV64I-NEXT: sd t5, 8(sp) # 8-byte Folded Spill
58+ ; RV64I-NEXT: sd t6, 0(sp) # 8-byte Folded Spill
6259; RV64I-NEXT: call standard_cc_func
63- ; RV64I-NEXT: ld ra, 104(sp) # 8-byte Folded Reload
64- ; RV64I-NEXT: ld t0, 96(sp) # 8-byte Folded Reload
65- ; RV64I-NEXT: ld a0, 88(sp) # 8-byte Folded Reload
66- ; RV64I-NEXT: ld a1, 80(sp) # 8-byte Folded Reload
67- ; RV64I-NEXT: ld a2, 72(sp) # 8-byte Folded Reload
68- ; RV64I-NEXT: ld a3, 64(sp) # 8-byte Folded Reload
69- ; RV64I-NEXT: ld a4, 56(sp) # 8-byte Folded Reload
70- ; RV64I-NEXT: ld a5, 48(sp) # 8-byte Folded Reload
71- ; RV64I-NEXT: ld a6, 40(sp) # 8-byte Folded Reload
72- ; RV64I-NEXT: ld a7, 32(sp) # 8-byte Folded Reload
73- ; RV64I-NEXT: ld t4, 24(sp) # 8-byte Folded Reload
74- ; RV64I-NEXT: ld t5, 16(sp) # 8-byte Folded Reload
75- ; RV64I-NEXT: ld t6, 8(sp) # 8-byte Folded Reload
76- ; RV64I-NEXT: addi sp, sp, 112
60+ ; RV64I-NEXT: ld t0, 88(sp) # 8-byte Folded Reload
61+ ; RV64I-NEXT: ld a0, 80(sp) # 8-byte Folded Reload
62+ ; RV64I-NEXT: ld a1, 72(sp) # 8-byte Folded Reload
63+ ; RV64I-NEXT: ld a2, 64(sp) # 8-byte Folded Reload
64+ ; RV64I-NEXT: ld a3, 56(sp) # 8-byte Folded Reload
65+ ; RV64I-NEXT: ld a4, 48(sp) # 8-byte Folded Reload
66+ ; RV64I-NEXT: ld a5, 40(sp) # 8-byte Folded Reload
67+ ; RV64I-NEXT: ld a6, 32(sp) # 8-byte Folded Reload
68+ ; RV64I-NEXT: ld a7, 24(sp) # 8-byte Folded Reload
69+ ; RV64I-NEXT: ld t4, 16(sp) # 8-byte Folded Reload
70+ ; RV64I-NEXT: ld t5, 8(sp) # 8-byte Folded Reload
71+ ; RV64I-NEXT: ld t6, 0(sp) # 8-byte Folded Reload
72+ ; RV64I-NEXT: addi sp, sp, 96
7773; RV64I-NEXT: ret
7874;
7975; RV32E-LABEL: preserve_mostcc1:
8076; RV32E: # %bb.0: # %entry
81- ; RV32E-NEXT: addi sp, sp, -32
82- ; RV32E-NEXT: sw ra, 28(sp) # 4-byte Folded Spill
77+ ; RV32E-NEXT: addi sp, sp, -28
8378; RV32E-NEXT: sw t0, 24(sp) # 4-byte Folded Spill
8479; RV32E-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
8580; RV32E-NEXT: sw a1, 16(sp) # 4-byte Folded Spill
@@ -88,21 +83,19 @@ define preserve_mostcc void @preserve_mostcc1() nounwind {
8883; RV32E-NEXT: sw a4, 4(sp) # 4-byte Folded Spill
8984; RV32E-NEXT: sw a5, 0(sp) # 4-byte Folded Spill
9085; RV32E-NEXT: call standard_cc_func
91- ; RV32E-NEXT: lw ra, 28(sp) # 4-byte Folded Reload
9286; RV32E-NEXT: lw t0, 24(sp) # 4-byte Folded Reload
9387; RV32E-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
9488; RV32E-NEXT: lw a1, 16(sp) # 4-byte Folded Reload
9589; RV32E-NEXT: lw a2, 12(sp) # 4-byte Folded Reload
9690; RV32E-NEXT: lw a3, 8(sp) # 4-byte Folded Reload
9791; RV32E-NEXT: lw a4, 4(sp) # 4-byte Folded Reload
9892; RV32E-NEXT: lw a5, 0(sp) # 4-byte Folded Reload
99- ; RV32E-NEXT: addi sp, sp, 32
93+ ; RV32E-NEXT: addi sp, sp, 28
10094; RV32E-NEXT: ret
10195;
10296; RV64E-LABEL: preserve_mostcc1:
10397; RV64E: # %bb.0: # %entry
104- ; RV64E-NEXT: addi sp, sp, -64
105- ; RV64E-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
98+ ; RV64E-NEXT: addi sp, sp, -56
10699; RV64E-NEXT: sd t0, 48(sp) # 8-byte Folded Spill
107100; RV64E-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
108101; RV64E-NEXT: sd a1, 32(sp) # 8-byte Folded Spill
@@ -111,15 +104,14 @@ define preserve_mostcc void @preserve_mostcc1() nounwind {
111104; RV64E-NEXT: sd a4, 8(sp) # 8-byte Folded Spill
112105; RV64E-NEXT: sd a5, 0(sp) # 8-byte Folded Spill
113106; RV64E-NEXT: call standard_cc_func
114- ; RV64E-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
115107; RV64E-NEXT: ld t0, 48(sp) # 8-byte Folded Reload
116108; RV64E-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
117109; RV64E-NEXT: ld a1, 32(sp) # 8-byte Folded Reload
118110; RV64E-NEXT: ld a2, 24(sp) # 8-byte Folded Reload
119111; RV64E-NEXT: ld a3, 16(sp) # 8-byte Folded Reload
120112; RV64E-NEXT: ld a4, 8(sp) # 8-byte Folded Reload
121113; RV64E-NEXT: ld a5, 0(sp) # 8-byte Folded Reload
122- ; RV64E-NEXT: addi sp, sp, 64
114+ ; RV64E-NEXT: addi sp, sp, 56
123115; RV64E-NEXT: ret
124116entry:
125117 call void @standard_cc_func ()
@@ -129,38 +121,22 @@ entry:
129121define preserve_mostcc void @preserve_mostcc2 () nounwind {
130122; RV32I-LABEL: preserve_mostcc2:
131123; RV32I: # %bb.0:
132- ; RV32I-NEXT: addi sp, sp, -16
133- ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
134124; RV32I-NEXT: call preserve_mostcc_func
135- ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
136- ; RV32I-NEXT: addi sp, sp, 16
137125; RV32I-NEXT: ret
138126;
139127; RV64I-LABEL: preserve_mostcc2:
140128; RV64I: # %bb.0:
141- ; RV64I-NEXT: addi sp, sp, -16
142- ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
143129; RV64I-NEXT: call preserve_mostcc_func
144- ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
145- ; RV64I-NEXT: addi sp, sp, 16
146130; RV64I-NEXT: ret
147131;
148132; RV32E-LABEL: preserve_mostcc2:
149133; RV32E: # %bb.0:
150- ; RV32E-NEXT: addi sp, sp, -4
151- ; RV32E-NEXT: sw ra, 0(sp) # 4-byte Folded Spill
152134; RV32E-NEXT: call preserve_mostcc_func
153- ; RV32E-NEXT: lw ra, 0(sp) # 4-byte Folded Reload
154- ; RV32E-NEXT: addi sp, sp, 4
155135; RV32E-NEXT: ret
156136;
157137; RV64E-LABEL: preserve_mostcc2:
158138; RV64E: # %bb.0:
159- ; RV64E-NEXT: addi sp, sp, -8
160- ; RV64E-NEXT: sd ra, 0(sp) # 8-byte Folded Spill
161139; RV64E-NEXT: call preserve_mostcc_func
162- ; RV64E-NEXT: ld ra, 0(sp) # 8-byte Folded Reload
163- ; RV64E-NEXT: addi sp, sp, 8
164140; RV64E-NEXT: ret
165141 call preserve_mostcc void @preserve_mostcc_func ()
166142 ret void
0 commit comments