1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
3 ; RUN: | FileCheck %s -check-prefix=RV32I
4 ; RUN: llc -mtriple=riscv32 -target-abi ilp32e -verify-machineinstrs < %s \
5 ; RUN: | FileCheck %s -check-prefix=RV32I-ILP32E
6 ; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs < %s \
7 ; RUN: | FileCheck %s -check-prefix=RV32I
8 ; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32f -verify-machineinstrs < %s \
9 ; RUN: | FileCheck %s -check-prefix=RV32I
10 ; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs < %s \
11 ; RUN: | FileCheck %s -check-prefix=RV32I
12 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs -frame-pointer=all < %s \
13 ; RUN: | FileCheck %s -check-prefix=RV32I-WITH-FP
14 ; RUN: llc -mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs < %s \
15 ; RUN: | FileCheck %s -check-prefixes=RV32IZCMP
16 ; RUN: llc -mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs \
17 ; RUN: -frame-pointer=all < %s | FileCheck %s -check-prefixes=RV32IZCMP-WITH-FP
18 ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
19 ; RUN: | FileCheck %s -check-prefix=RV64I
20 ; RUN: llc -mtriple=riscv64 -target-abi lp64e -verify-machineinstrs < %s \
21 ; RUN: | FileCheck %s -check-prefix=RV64I-LP64E
22 ; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs < %s \
23 ; RUN: | FileCheck %s -check-prefix=RV64I
24 ; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64f -verify-machineinstrs < %s \
25 ; RUN: | FileCheck %s -check-prefix=RV64I
26 ; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs < %s \
27 ; RUN: | FileCheck %s -check-prefix=RV64I
28 ; RUN: llc -mtriple=riscv64 -verify-machineinstrs -frame-pointer=all < %s \
29 ; RUN: | FileCheck %s -check-prefix=RV64I-WITH-FP
30 ; RUN: llc -mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs < %s \
31 ; RUN: | FileCheck %s -check-prefixes=RV64IZCMP
32 ; RUN: llc -mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs \
33 ; RUN: -frame-pointer=all < %s | FileCheck %s -check-prefixes=RV64IZCMP-WITH-FP
35 @var = global [32 x i32] zeroinitializer
37 ; This function tests that RISCVRegisterInfo::getCalleeSavedRegs returns
38 ; something appropriate.
40 define void @callee() nounwind {
41 ; RV32I-LABEL: callee:
43 ; RV32I-NEXT: addi sp, sp, -80
44 ; RV32I-NEXT: sw ra, 76(sp) # 4-byte Folded Spill
45 ; RV32I-NEXT: sw s0, 72(sp) # 4-byte Folded Spill
46 ; RV32I-NEXT: sw s1, 68(sp) # 4-byte Folded Spill
47 ; RV32I-NEXT: sw s2, 64(sp) # 4-byte Folded Spill
48 ; RV32I-NEXT: sw s3, 60(sp) # 4-byte Folded Spill
49 ; RV32I-NEXT: sw s4, 56(sp) # 4-byte Folded Spill
50 ; RV32I-NEXT: sw s5, 52(sp) # 4-byte Folded Spill
51 ; RV32I-NEXT: sw s6, 48(sp) # 4-byte Folded Spill
52 ; RV32I-NEXT: sw s7, 44(sp) # 4-byte Folded Spill
53 ; RV32I-NEXT: sw s8, 40(sp) # 4-byte Folded Spill
54 ; RV32I-NEXT: sw s9, 36(sp) # 4-byte Folded Spill
55 ; RV32I-NEXT: sw s10, 32(sp) # 4-byte Folded Spill
56 ; RV32I-NEXT: sw s11, 28(sp) # 4-byte Folded Spill
57 ; RV32I-NEXT: lui a6, %hi(var)
58 ; RV32I-NEXT: lw a0, %lo(var)(a6)
59 ; RV32I-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
60 ; RV32I-NEXT: lw a0, %lo(var+4)(a6)
61 ; RV32I-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
62 ; RV32I-NEXT: lw a0, %lo(var+8)(a6)
63 ; RV32I-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
64 ; RV32I-NEXT: lw a0, %lo(var+12)(a6)
65 ; RV32I-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
66 ; RV32I-NEXT: addi a5, a6, %lo(var)
67 ; RV32I-NEXT: lw a0, 16(a5)
68 ; RV32I-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
69 ; RV32I-NEXT: lw a0, 20(a5)
70 ; RV32I-NEXT: sw a0, 4(sp) # 4-byte Folded Spill
71 ; RV32I-NEXT: lw t0, 24(a5)
72 ; RV32I-NEXT: lw t1, 28(a5)
73 ; RV32I-NEXT: lw t2, 32(a5)
74 ; RV32I-NEXT: lw t3, 36(a5)
75 ; RV32I-NEXT: lw t4, 40(a5)
76 ; RV32I-NEXT: lw t5, 44(a5)
77 ; RV32I-NEXT: lw t6, 48(a5)
78 ; RV32I-NEXT: lw s0, 52(a5)
79 ; RV32I-NEXT: lw s1, 56(a5)
80 ; RV32I-NEXT: lw s2, 60(a5)
81 ; RV32I-NEXT: lw s3, 64(a5)
82 ; RV32I-NEXT: lw s4, 68(a5)
83 ; RV32I-NEXT: lw s5, 72(a5)
84 ; RV32I-NEXT: lw s6, 76(a5)
85 ; RV32I-NEXT: lw s7, 80(a5)
86 ; RV32I-NEXT: lw s8, 84(a5)
87 ; RV32I-NEXT: lw s9, 88(a5)
88 ; RV32I-NEXT: lw s10, 92(a5)
89 ; RV32I-NEXT: lw s11, 96(a5)
90 ; RV32I-NEXT: lw ra, 100(a5)
91 ; RV32I-NEXT: lw a7, 104(a5)
92 ; RV32I-NEXT: lw a4, 108(a5)
93 ; RV32I-NEXT: lw a0, 124(a5)
94 ; RV32I-NEXT: lw a1, 120(a5)
95 ; RV32I-NEXT: lw a2, 116(a5)
96 ; RV32I-NEXT: lw a3, 112(a5)
97 ; RV32I-NEXT: sw a0, 124(a5)
98 ; RV32I-NEXT: sw a1, 120(a5)
99 ; RV32I-NEXT: sw a2, 116(a5)
100 ; RV32I-NEXT: sw a3, 112(a5)
101 ; RV32I-NEXT: sw a4, 108(a5)
102 ; RV32I-NEXT: sw a7, 104(a5)
103 ; RV32I-NEXT: sw ra, 100(a5)
104 ; RV32I-NEXT: sw s11, 96(a5)
105 ; RV32I-NEXT: sw s10, 92(a5)
106 ; RV32I-NEXT: sw s9, 88(a5)
107 ; RV32I-NEXT: sw s8, 84(a5)
108 ; RV32I-NEXT: sw s7, 80(a5)
109 ; RV32I-NEXT: sw s6, 76(a5)
110 ; RV32I-NEXT: sw s5, 72(a5)
111 ; RV32I-NEXT: sw s4, 68(a5)
112 ; RV32I-NEXT: sw s3, 64(a5)
113 ; RV32I-NEXT: sw s2, 60(a5)
114 ; RV32I-NEXT: sw s1, 56(a5)
115 ; RV32I-NEXT: sw s0, 52(a5)
116 ; RV32I-NEXT: sw t6, 48(a5)
117 ; RV32I-NEXT: sw t5, 44(a5)
118 ; RV32I-NEXT: sw t4, 40(a5)
119 ; RV32I-NEXT: sw t3, 36(a5)
120 ; RV32I-NEXT: sw t2, 32(a5)
121 ; RV32I-NEXT: sw t1, 28(a5)
122 ; RV32I-NEXT: sw t0, 24(a5)
123 ; RV32I-NEXT: lw a0, 4(sp) # 4-byte Folded Reload
124 ; RV32I-NEXT: sw a0, 20(a5)
125 ; RV32I-NEXT: lw a0, 8(sp) # 4-byte Folded Reload
126 ; RV32I-NEXT: sw a0, 16(a5)
127 ; RV32I-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
128 ; RV32I-NEXT: sw a0, %lo(var+12)(a6)
129 ; RV32I-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
130 ; RV32I-NEXT: sw a0, %lo(var+8)(a6)
131 ; RV32I-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
132 ; RV32I-NEXT: sw a0, %lo(var+4)(a6)
133 ; RV32I-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
134 ; RV32I-NEXT: sw a0, %lo(var)(a6)
135 ; RV32I-NEXT: lw ra, 76(sp) # 4-byte Folded Reload
136 ; RV32I-NEXT: lw s0, 72(sp) # 4-byte Folded Reload
137 ; RV32I-NEXT: lw s1, 68(sp) # 4-byte Folded Reload
138 ; RV32I-NEXT: lw s2, 64(sp) # 4-byte Folded Reload
139 ; RV32I-NEXT: lw s3, 60(sp) # 4-byte Folded Reload
140 ; RV32I-NEXT: lw s4, 56(sp) # 4-byte Folded Reload
141 ; RV32I-NEXT: lw s5, 52(sp) # 4-byte Folded Reload
142 ; RV32I-NEXT: lw s6, 48(sp) # 4-byte Folded Reload
143 ; RV32I-NEXT: lw s7, 44(sp) # 4-byte Folded Reload
144 ; RV32I-NEXT: lw s8, 40(sp) # 4-byte Folded Reload
145 ; RV32I-NEXT: lw s9, 36(sp) # 4-byte Folded Reload
146 ; RV32I-NEXT: lw s10, 32(sp) # 4-byte Folded Reload
147 ; RV32I-NEXT: lw s11, 28(sp) # 4-byte Folded Reload
148 ; RV32I-NEXT: addi sp, sp, 80
151 ; RV32I-ILP32E-LABEL: callee:
152 ; RV32I-ILP32E: # %bb.0:
153 ; RV32I-ILP32E-NEXT: addi sp, sp, -48
154 ; RV32I-ILP32E-NEXT: sw ra, 44(sp) # 4-byte Folded Spill
155 ; RV32I-ILP32E-NEXT: sw s0, 40(sp) # 4-byte Folded Spill
156 ; RV32I-ILP32E-NEXT: sw s1, 36(sp) # 4-byte Folded Spill
157 ; RV32I-ILP32E-NEXT: lui a6, %hi(var)
158 ; RV32I-ILP32E-NEXT: lw a0, %lo(var)(a6)
159 ; RV32I-ILP32E-NEXT: sw a0, 32(sp) # 4-byte Folded Spill
160 ; RV32I-ILP32E-NEXT: lw a0, %lo(var+4)(a6)
161 ; RV32I-ILP32E-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
162 ; RV32I-ILP32E-NEXT: lw a0, %lo(var+8)(a6)
163 ; RV32I-ILP32E-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
164 ; RV32I-ILP32E-NEXT: lw a0, %lo(var+12)(a6)
165 ; RV32I-ILP32E-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
166 ; RV32I-ILP32E-NEXT: addi a5, a6, %lo(var)
167 ; RV32I-ILP32E-NEXT: lw a0, 16(a5)
168 ; RV32I-ILP32E-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
169 ; RV32I-ILP32E-NEXT: lw a0, 20(a5)
170 ; RV32I-ILP32E-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
171 ; RV32I-ILP32E-NEXT: lw t0, 24(a5)
172 ; RV32I-ILP32E-NEXT: lw t1, 28(a5)
173 ; RV32I-ILP32E-NEXT: lw t2, 32(a5)
174 ; RV32I-ILP32E-NEXT: lw t3, 36(a5)
175 ; RV32I-ILP32E-NEXT: lw t4, 40(a5)
176 ; RV32I-ILP32E-NEXT: lw t5, 44(a5)
177 ; RV32I-ILP32E-NEXT: lw t6, 48(a5)
178 ; RV32I-ILP32E-NEXT: lw s2, 52(a5)
179 ; RV32I-ILP32E-NEXT: lw s3, 56(a5)
180 ; RV32I-ILP32E-NEXT: lw s4, 60(a5)
181 ; RV32I-ILP32E-NEXT: lw s5, 64(a5)
182 ; RV32I-ILP32E-NEXT: lw s6, 68(a5)
183 ; RV32I-ILP32E-NEXT: lw s7, 72(a5)
184 ; RV32I-ILP32E-NEXT: lw s8, 76(a5)
185 ; RV32I-ILP32E-NEXT: lw s9, 80(a5)
186 ; RV32I-ILP32E-NEXT: lw s10, 84(a5)
187 ; RV32I-ILP32E-NEXT: lw s11, 88(a5)
188 ; RV32I-ILP32E-NEXT: lw s0, 92(a5)
189 ; RV32I-ILP32E-NEXT: lw s1, 96(a5)
190 ; RV32I-ILP32E-NEXT: lw ra, 100(a5)
191 ; RV32I-ILP32E-NEXT: lw a7, 104(a5)
192 ; RV32I-ILP32E-NEXT: lw a4, 108(a5)
193 ; RV32I-ILP32E-NEXT: lw a0, 124(a5)
194 ; RV32I-ILP32E-NEXT: lw a1, 120(a5)
195 ; RV32I-ILP32E-NEXT: lw a2, 116(a5)
196 ; RV32I-ILP32E-NEXT: lw a3, 112(a5)
197 ; RV32I-ILP32E-NEXT: sw a0, 124(a5)
198 ; RV32I-ILP32E-NEXT: sw a1, 120(a5)
199 ; RV32I-ILP32E-NEXT: sw a2, 116(a5)
200 ; RV32I-ILP32E-NEXT: sw a3, 112(a5)
201 ; RV32I-ILP32E-NEXT: sw a4, 108(a5)
202 ; RV32I-ILP32E-NEXT: sw a7, 104(a5)
203 ; RV32I-ILP32E-NEXT: sw ra, 100(a5)
204 ; RV32I-ILP32E-NEXT: sw s1, 96(a5)
205 ; RV32I-ILP32E-NEXT: sw s0, 92(a5)
206 ; RV32I-ILP32E-NEXT: sw s11, 88(a5)
207 ; RV32I-ILP32E-NEXT: sw s10, 84(a5)
208 ; RV32I-ILP32E-NEXT: sw s9, 80(a5)
209 ; RV32I-ILP32E-NEXT: sw s8, 76(a5)
210 ; RV32I-ILP32E-NEXT: sw s7, 72(a5)
211 ; RV32I-ILP32E-NEXT: sw s6, 68(a5)
212 ; RV32I-ILP32E-NEXT: sw s5, 64(a5)
213 ; RV32I-ILP32E-NEXT: sw s4, 60(a5)
214 ; RV32I-ILP32E-NEXT: sw s3, 56(a5)
215 ; RV32I-ILP32E-NEXT: sw s2, 52(a5)
216 ; RV32I-ILP32E-NEXT: sw t6, 48(a5)
217 ; RV32I-ILP32E-NEXT: sw t5, 44(a5)
218 ; RV32I-ILP32E-NEXT: sw t4, 40(a5)
219 ; RV32I-ILP32E-NEXT: sw t3, 36(a5)
220 ; RV32I-ILP32E-NEXT: sw t2, 32(a5)
221 ; RV32I-ILP32E-NEXT: sw t1, 28(a5)
222 ; RV32I-ILP32E-NEXT: sw t0, 24(a5)
223 ; RV32I-ILP32E-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
224 ; RV32I-ILP32E-NEXT: sw a0, 20(a5)
225 ; RV32I-ILP32E-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
226 ; RV32I-ILP32E-NEXT: sw a0, 16(a5)
227 ; RV32I-ILP32E-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
228 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+12)(a6)
229 ; RV32I-ILP32E-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
230 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+8)(a6)
231 ; RV32I-ILP32E-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
232 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+4)(a6)
233 ; RV32I-ILP32E-NEXT: lw a0, 32(sp) # 4-byte Folded Reload
234 ; RV32I-ILP32E-NEXT: sw a0, %lo(var)(a6)
235 ; RV32I-ILP32E-NEXT: lw ra, 44(sp) # 4-byte Folded Reload
236 ; RV32I-ILP32E-NEXT: lw s0, 40(sp) # 4-byte Folded Reload
237 ; RV32I-ILP32E-NEXT: lw s1, 36(sp) # 4-byte Folded Reload
238 ; RV32I-ILP32E-NEXT: addi sp, sp, 48
239 ; RV32I-ILP32E-NEXT: ret
241 ; RV32I-WITH-FP-LABEL: callee:
242 ; RV32I-WITH-FP: # %bb.0:
243 ; RV32I-WITH-FP-NEXT: addi sp, sp, -80
244 ; RV32I-WITH-FP-NEXT: sw ra, 76(sp) # 4-byte Folded Spill
245 ; RV32I-WITH-FP-NEXT: sw s0, 72(sp) # 4-byte Folded Spill
246 ; RV32I-WITH-FP-NEXT: sw s1, 68(sp) # 4-byte Folded Spill
247 ; RV32I-WITH-FP-NEXT: sw s2, 64(sp) # 4-byte Folded Spill
248 ; RV32I-WITH-FP-NEXT: sw s3, 60(sp) # 4-byte Folded Spill
249 ; RV32I-WITH-FP-NEXT: sw s4, 56(sp) # 4-byte Folded Spill
250 ; RV32I-WITH-FP-NEXT: sw s5, 52(sp) # 4-byte Folded Spill
251 ; RV32I-WITH-FP-NEXT: sw s6, 48(sp) # 4-byte Folded Spill
252 ; RV32I-WITH-FP-NEXT: sw s7, 44(sp) # 4-byte Folded Spill
253 ; RV32I-WITH-FP-NEXT: sw s8, 40(sp) # 4-byte Folded Spill
254 ; RV32I-WITH-FP-NEXT: sw s9, 36(sp) # 4-byte Folded Spill
255 ; RV32I-WITH-FP-NEXT: sw s10, 32(sp) # 4-byte Folded Spill
256 ; RV32I-WITH-FP-NEXT: sw s11, 28(sp) # 4-byte Folded Spill
257 ; RV32I-WITH-FP-NEXT: addi s0, sp, 80
258 ; RV32I-WITH-FP-NEXT: lui a6, %hi(var)
259 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var)(a6)
260 ; RV32I-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill
261 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+4)(a6)
262 ; RV32I-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill
263 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+8)(a6)
264 ; RV32I-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill
265 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+12)(a6)
266 ; RV32I-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill
267 ; RV32I-WITH-FP-NEXT: addi a5, a6, %lo(var)
268 ; RV32I-WITH-FP-NEXT: lw a0, 16(a5)
269 ; RV32I-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill
270 ; RV32I-WITH-FP-NEXT: lw a0, 20(a5)
271 ; RV32I-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill
272 ; RV32I-WITH-FP-NEXT: lw a0, 24(a5)
273 ; RV32I-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill
274 ; RV32I-WITH-FP-NEXT: lw t1, 28(a5)
275 ; RV32I-WITH-FP-NEXT: lw t2, 32(a5)
276 ; RV32I-WITH-FP-NEXT: lw t3, 36(a5)
277 ; RV32I-WITH-FP-NEXT: lw t4, 40(a5)
278 ; RV32I-WITH-FP-NEXT: lw t5, 44(a5)
279 ; RV32I-WITH-FP-NEXT: lw t6, 48(a5)
280 ; RV32I-WITH-FP-NEXT: lw s1, 52(a5)
281 ; RV32I-WITH-FP-NEXT: lw s2, 56(a5)
282 ; RV32I-WITH-FP-NEXT: lw s3, 60(a5)
283 ; RV32I-WITH-FP-NEXT: lw s4, 64(a5)
284 ; RV32I-WITH-FP-NEXT: lw s5, 68(a5)
285 ; RV32I-WITH-FP-NEXT: lw s6, 72(a5)
286 ; RV32I-WITH-FP-NEXT: lw s7, 76(a5)
287 ; RV32I-WITH-FP-NEXT: lw s8, 80(a5)
288 ; RV32I-WITH-FP-NEXT: lw s9, 84(a5)
289 ; RV32I-WITH-FP-NEXT: lw s10, 88(a5)
290 ; RV32I-WITH-FP-NEXT: lw s11, 92(a5)
291 ; RV32I-WITH-FP-NEXT: lw ra, 96(a5)
292 ; RV32I-WITH-FP-NEXT: lw t0, 100(a5)
293 ; RV32I-WITH-FP-NEXT: lw a7, 104(a5)
294 ; RV32I-WITH-FP-NEXT: lw a4, 108(a5)
295 ; RV32I-WITH-FP-NEXT: lw a0, 124(a5)
296 ; RV32I-WITH-FP-NEXT: lw a1, 120(a5)
297 ; RV32I-WITH-FP-NEXT: lw a2, 116(a5)
298 ; RV32I-WITH-FP-NEXT: lw a3, 112(a5)
299 ; RV32I-WITH-FP-NEXT: sw a0, 124(a5)
300 ; RV32I-WITH-FP-NEXT: sw a1, 120(a5)
301 ; RV32I-WITH-FP-NEXT: sw a2, 116(a5)
302 ; RV32I-WITH-FP-NEXT: sw a3, 112(a5)
303 ; RV32I-WITH-FP-NEXT: sw a4, 108(a5)
304 ; RV32I-WITH-FP-NEXT: sw a7, 104(a5)
305 ; RV32I-WITH-FP-NEXT: sw t0, 100(a5)
306 ; RV32I-WITH-FP-NEXT: sw ra, 96(a5)
307 ; RV32I-WITH-FP-NEXT: sw s11, 92(a5)
308 ; RV32I-WITH-FP-NEXT: sw s10, 88(a5)
309 ; RV32I-WITH-FP-NEXT: sw s9, 84(a5)
310 ; RV32I-WITH-FP-NEXT: sw s8, 80(a5)
311 ; RV32I-WITH-FP-NEXT: sw s7, 76(a5)
312 ; RV32I-WITH-FP-NEXT: sw s6, 72(a5)
313 ; RV32I-WITH-FP-NEXT: sw s5, 68(a5)
314 ; RV32I-WITH-FP-NEXT: sw s4, 64(a5)
315 ; RV32I-WITH-FP-NEXT: sw s3, 60(a5)
316 ; RV32I-WITH-FP-NEXT: sw s2, 56(a5)
317 ; RV32I-WITH-FP-NEXT: sw s1, 52(a5)
318 ; RV32I-WITH-FP-NEXT: sw t6, 48(a5)
319 ; RV32I-WITH-FP-NEXT: sw t5, 44(a5)
320 ; RV32I-WITH-FP-NEXT: sw t4, 40(a5)
321 ; RV32I-WITH-FP-NEXT: sw t3, 36(a5)
322 ; RV32I-WITH-FP-NEXT: sw t2, 32(a5)
323 ; RV32I-WITH-FP-NEXT: sw t1, 28(a5)
324 ; RV32I-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload
325 ; RV32I-WITH-FP-NEXT: sw a0, 24(a5)
326 ; RV32I-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload
327 ; RV32I-WITH-FP-NEXT: sw a0, 20(a5)
328 ; RV32I-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload
329 ; RV32I-WITH-FP-NEXT: sw a0, 16(a5)
330 ; RV32I-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload
331 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+12)(a6)
332 ; RV32I-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload
333 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+8)(a6)
334 ; RV32I-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload
335 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+4)(a6)
336 ; RV32I-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload
337 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var)(a6)
338 ; RV32I-WITH-FP-NEXT: lw ra, 76(sp) # 4-byte Folded Reload
339 ; RV32I-WITH-FP-NEXT: lw s0, 72(sp) # 4-byte Folded Reload
340 ; RV32I-WITH-FP-NEXT: lw s1, 68(sp) # 4-byte Folded Reload
341 ; RV32I-WITH-FP-NEXT: lw s2, 64(sp) # 4-byte Folded Reload
342 ; RV32I-WITH-FP-NEXT: lw s3, 60(sp) # 4-byte Folded Reload
343 ; RV32I-WITH-FP-NEXT: lw s4, 56(sp) # 4-byte Folded Reload
344 ; RV32I-WITH-FP-NEXT: lw s5, 52(sp) # 4-byte Folded Reload
345 ; RV32I-WITH-FP-NEXT: lw s6, 48(sp) # 4-byte Folded Reload
346 ; RV32I-WITH-FP-NEXT: lw s7, 44(sp) # 4-byte Folded Reload
347 ; RV32I-WITH-FP-NEXT: lw s8, 40(sp) # 4-byte Folded Reload
348 ; RV32I-WITH-FP-NEXT: lw s9, 36(sp) # 4-byte Folded Reload
349 ; RV32I-WITH-FP-NEXT: lw s10, 32(sp) # 4-byte Folded Reload
350 ; RV32I-WITH-FP-NEXT: lw s11, 28(sp) # 4-byte Folded Reload
351 ; RV32I-WITH-FP-NEXT: addi sp, sp, 80
352 ; RV32I-WITH-FP-NEXT: ret
354 ; RV32IZCMP-LABEL: callee:
355 ; RV32IZCMP: # %bb.0:
356 ; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -96
357 ; RV32IZCMP-NEXT: lui a6, %hi(var)
358 ; RV32IZCMP-NEXT: lw a0, %lo(var)(a6)
359 ; RV32IZCMP-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
360 ; RV32IZCMP-NEXT: lw a0, %lo(var+4)(a6)
361 ; RV32IZCMP-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
362 ; RV32IZCMP-NEXT: lw a0, %lo(var+8)(a6)
363 ; RV32IZCMP-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
364 ; RV32IZCMP-NEXT: lw a0, %lo(var+12)(a6)
365 ; RV32IZCMP-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
366 ; RV32IZCMP-NEXT: addi a5, a6, %lo(var)
367 ; RV32IZCMP-NEXT: lw a0, 16(a5)
368 ; RV32IZCMP-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
369 ; RV32IZCMP-NEXT: lw a0, 20(a5)
370 ; RV32IZCMP-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
371 ; RV32IZCMP-NEXT: lw t4, 24(a5)
372 ; RV32IZCMP-NEXT: lw t5, 28(a5)
373 ; RV32IZCMP-NEXT: lw t6, 32(a5)
374 ; RV32IZCMP-NEXT: lw s2, 36(a5)
375 ; RV32IZCMP-NEXT: lw s3, 40(a5)
376 ; RV32IZCMP-NEXT: lw s4, 44(a5)
377 ; RV32IZCMP-NEXT: lw s5, 48(a5)
378 ; RV32IZCMP-NEXT: lw s6, 52(a5)
379 ; RV32IZCMP-NEXT: lw s7, 56(a5)
380 ; RV32IZCMP-NEXT: lw s8, 60(a5)
381 ; RV32IZCMP-NEXT: lw s9, 64(a5)
382 ; RV32IZCMP-NEXT: lw s10, 68(a5)
383 ; RV32IZCMP-NEXT: lw s11, 72(a5)
384 ; RV32IZCMP-NEXT: lw ra, 76(a5)
385 ; RV32IZCMP-NEXT: lw s1, 80(a5)
386 ; RV32IZCMP-NEXT: lw t3, 84(a5)
387 ; RV32IZCMP-NEXT: lw t2, 88(a5)
388 ; RV32IZCMP-NEXT: lw t1, 92(a5)
389 ; RV32IZCMP-NEXT: lw t0, 96(a5)
390 ; RV32IZCMP-NEXT: lw s0, 100(a5)
391 ; RV32IZCMP-NEXT: lw a7, 104(a5)
392 ; RV32IZCMP-NEXT: lw a4, 108(a5)
393 ; RV32IZCMP-NEXT: lw a0, 124(a5)
394 ; RV32IZCMP-NEXT: lw a1, 120(a5)
395 ; RV32IZCMP-NEXT: lw a2, 116(a5)
396 ; RV32IZCMP-NEXT: lw a3, 112(a5)
397 ; RV32IZCMP-NEXT: sw a0, 124(a5)
398 ; RV32IZCMP-NEXT: sw a1, 120(a5)
399 ; RV32IZCMP-NEXT: sw a2, 116(a5)
400 ; RV32IZCMP-NEXT: sw a3, 112(a5)
401 ; RV32IZCMP-NEXT: sw a4, 108(a5)
402 ; RV32IZCMP-NEXT: sw a7, 104(a5)
403 ; RV32IZCMP-NEXT: sw s0, 100(a5)
404 ; RV32IZCMP-NEXT: sw t0, 96(a5)
405 ; RV32IZCMP-NEXT: sw t1, 92(a5)
406 ; RV32IZCMP-NEXT: sw t2, 88(a5)
407 ; RV32IZCMP-NEXT: sw t3, 84(a5)
408 ; RV32IZCMP-NEXT: sw s1, 80(a5)
409 ; RV32IZCMP-NEXT: sw ra, 76(a5)
410 ; RV32IZCMP-NEXT: sw s11, 72(a5)
411 ; RV32IZCMP-NEXT: sw s10, 68(a5)
412 ; RV32IZCMP-NEXT: sw s9, 64(a5)
413 ; RV32IZCMP-NEXT: sw s8, 60(a5)
414 ; RV32IZCMP-NEXT: sw s7, 56(a5)
415 ; RV32IZCMP-NEXT: sw s6, 52(a5)
416 ; RV32IZCMP-NEXT: sw s5, 48(a5)
417 ; RV32IZCMP-NEXT: sw s4, 44(a5)
418 ; RV32IZCMP-NEXT: sw s3, 40(a5)
419 ; RV32IZCMP-NEXT: sw s2, 36(a5)
420 ; RV32IZCMP-NEXT: sw t6, 32(a5)
421 ; RV32IZCMP-NEXT: sw t5, 28(a5)
422 ; RV32IZCMP-NEXT: sw t4, 24(a5)
423 ; RV32IZCMP-NEXT: lw a0, 8(sp) # 4-byte Folded Reload
424 ; RV32IZCMP-NEXT: sw a0, 20(a5)
425 ; RV32IZCMP-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
426 ; RV32IZCMP-NEXT: sw a0, 16(a5)
427 ; RV32IZCMP-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
428 ; RV32IZCMP-NEXT: sw a0, %lo(var+12)(a6)
429 ; RV32IZCMP-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
430 ; RV32IZCMP-NEXT: sw a0, %lo(var+8)(a6)
431 ; RV32IZCMP-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
432 ; RV32IZCMP-NEXT: sw a0, %lo(var+4)(a6)
433 ; RV32IZCMP-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
434 ; RV32IZCMP-NEXT: sw a0, %lo(var)(a6)
435 ; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 96
437 ; RV32IZCMP-WITH-FP-LABEL: callee:
438 ; RV32IZCMP-WITH-FP: # %bb.0:
439 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -80
440 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 76(sp) # 4-byte Folded Spill
441 ; RV32IZCMP-WITH-FP-NEXT: sw s0, 72(sp) # 4-byte Folded Spill
442 ; RV32IZCMP-WITH-FP-NEXT: sw s1, 68(sp) # 4-byte Folded Spill
443 ; RV32IZCMP-WITH-FP-NEXT: sw s2, 64(sp) # 4-byte Folded Spill
444 ; RV32IZCMP-WITH-FP-NEXT: sw s3, 60(sp) # 4-byte Folded Spill
445 ; RV32IZCMP-WITH-FP-NEXT: sw s4, 56(sp) # 4-byte Folded Spill
446 ; RV32IZCMP-WITH-FP-NEXT: sw s5, 52(sp) # 4-byte Folded Spill
447 ; RV32IZCMP-WITH-FP-NEXT: sw s6, 48(sp) # 4-byte Folded Spill
448 ; RV32IZCMP-WITH-FP-NEXT: sw s7, 44(sp) # 4-byte Folded Spill
449 ; RV32IZCMP-WITH-FP-NEXT: sw s8, 40(sp) # 4-byte Folded Spill
450 ; RV32IZCMP-WITH-FP-NEXT: sw s9, 36(sp) # 4-byte Folded Spill
451 ; RV32IZCMP-WITH-FP-NEXT: sw s10, 32(sp) # 4-byte Folded Spill
452 ; RV32IZCMP-WITH-FP-NEXT: sw s11, 28(sp) # 4-byte Folded Spill
453 ; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 80
454 ; RV32IZCMP-WITH-FP-NEXT: lui a6, %hi(var)
455 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(a6)
456 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill
457 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(a6)
458 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill
459 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(a6)
460 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill
461 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(a6)
462 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill
463 ; RV32IZCMP-WITH-FP-NEXT: addi a5, a6, %lo(var)
464 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 16(a5)
465 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill
466 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 20(a5)
467 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill
468 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 24(a5)
469 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill
470 ; RV32IZCMP-WITH-FP-NEXT: lw t5, 28(a5)
471 ; RV32IZCMP-WITH-FP-NEXT: lw t6, 32(a5)
472 ; RV32IZCMP-WITH-FP-NEXT: lw s2, 36(a5)
473 ; RV32IZCMP-WITH-FP-NEXT: lw s3, 40(a5)
474 ; RV32IZCMP-WITH-FP-NEXT: lw s4, 44(a5)
475 ; RV32IZCMP-WITH-FP-NEXT: lw s5, 48(a5)
476 ; RV32IZCMP-WITH-FP-NEXT: lw s6, 52(a5)
477 ; RV32IZCMP-WITH-FP-NEXT: lw s7, 56(a5)
478 ; RV32IZCMP-WITH-FP-NEXT: lw s8, 60(a5)
479 ; RV32IZCMP-WITH-FP-NEXT: lw s9, 64(a5)
480 ; RV32IZCMP-WITH-FP-NEXT: lw s10, 68(a5)
481 ; RV32IZCMP-WITH-FP-NEXT: lw s11, 72(a5)
482 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 76(a5)
483 ; RV32IZCMP-WITH-FP-NEXT: lw t4, 80(a5)
484 ; RV32IZCMP-WITH-FP-NEXT: lw t3, 84(a5)
485 ; RV32IZCMP-WITH-FP-NEXT: lw t2, 88(a5)
486 ; RV32IZCMP-WITH-FP-NEXT: lw s1, 92(a5)
487 ; RV32IZCMP-WITH-FP-NEXT: lw t1, 96(a5)
488 ; RV32IZCMP-WITH-FP-NEXT: lw t0, 100(a5)
489 ; RV32IZCMP-WITH-FP-NEXT: lw a7, 104(a5)
490 ; RV32IZCMP-WITH-FP-NEXT: lw a4, 108(a5)
491 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 124(a5)
492 ; RV32IZCMP-WITH-FP-NEXT: lw a1, 120(a5)
493 ; RV32IZCMP-WITH-FP-NEXT: lw a2, 116(a5)
494 ; RV32IZCMP-WITH-FP-NEXT: lw a3, 112(a5)
495 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 124(a5)
496 ; RV32IZCMP-WITH-FP-NEXT: sw a1, 120(a5)
497 ; RV32IZCMP-WITH-FP-NEXT: sw a2, 116(a5)
498 ; RV32IZCMP-WITH-FP-NEXT: sw a3, 112(a5)
499 ; RV32IZCMP-WITH-FP-NEXT: sw a4, 108(a5)
500 ; RV32IZCMP-WITH-FP-NEXT: sw a7, 104(a5)
501 ; RV32IZCMP-WITH-FP-NEXT: sw t0, 100(a5)
502 ; RV32IZCMP-WITH-FP-NEXT: sw t1, 96(a5)
503 ; RV32IZCMP-WITH-FP-NEXT: sw s1, 92(a5)
504 ; RV32IZCMP-WITH-FP-NEXT: sw t2, 88(a5)
505 ; RV32IZCMP-WITH-FP-NEXT: sw t3, 84(a5)
506 ; RV32IZCMP-WITH-FP-NEXT: sw t4, 80(a5)
507 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 76(a5)
508 ; RV32IZCMP-WITH-FP-NEXT: sw s11, 72(a5)
509 ; RV32IZCMP-WITH-FP-NEXT: sw s10, 68(a5)
510 ; RV32IZCMP-WITH-FP-NEXT: sw s9, 64(a5)
511 ; RV32IZCMP-WITH-FP-NEXT: sw s8, 60(a5)
512 ; RV32IZCMP-WITH-FP-NEXT: sw s7, 56(a5)
513 ; RV32IZCMP-WITH-FP-NEXT: sw s6, 52(a5)
514 ; RV32IZCMP-WITH-FP-NEXT: sw s5, 48(a5)
515 ; RV32IZCMP-WITH-FP-NEXT: sw s4, 44(a5)
516 ; RV32IZCMP-WITH-FP-NEXT: sw s3, 40(a5)
517 ; RV32IZCMP-WITH-FP-NEXT: sw s2, 36(a5)
518 ; RV32IZCMP-WITH-FP-NEXT: sw t6, 32(a5)
519 ; RV32IZCMP-WITH-FP-NEXT: sw t5, 28(a5)
520 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload
521 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 24(a5)
522 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload
523 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 20(a5)
524 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload
525 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 16(a5)
526 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload
527 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(a6)
528 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload
529 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(a6)
530 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload
531 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(a6)
532 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload
533 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(a6)
534 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 76(sp) # 4-byte Folded Reload
535 ; RV32IZCMP-WITH-FP-NEXT: lw s0, 72(sp) # 4-byte Folded Reload
536 ; RV32IZCMP-WITH-FP-NEXT: lw s1, 68(sp) # 4-byte Folded Reload
537 ; RV32IZCMP-WITH-FP-NEXT: lw s2, 64(sp) # 4-byte Folded Reload
538 ; RV32IZCMP-WITH-FP-NEXT: lw s3, 60(sp) # 4-byte Folded Reload
539 ; RV32IZCMP-WITH-FP-NEXT: lw s4, 56(sp) # 4-byte Folded Reload
540 ; RV32IZCMP-WITH-FP-NEXT: lw s5, 52(sp) # 4-byte Folded Reload
541 ; RV32IZCMP-WITH-FP-NEXT: lw s6, 48(sp) # 4-byte Folded Reload
542 ; RV32IZCMP-WITH-FP-NEXT: lw s7, 44(sp) # 4-byte Folded Reload
543 ; RV32IZCMP-WITH-FP-NEXT: lw s8, 40(sp) # 4-byte Folded Reload
544 ; RV32IZCMP-WITH-FP-NEXT: lw s9, 36(sp) # 4-byte Folded Reload
545 ; RV32IZCMP-WITH-FP-NEXT: lw s10, 32(sp) # 4-byte Folded Reload
546 ; RV32IZCMP-WITH-FP-NEXT: lw s11, 28(sp) # 4-byte Folded Reload
547 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 80
548 ; RV32IZCMP-WITH-FP-NEXT: ret
550 ; RV64I-LABEL: callee:
552 ; RV64I-NEXT: addi sp, sp, -160
553 ; RV64I-NEXT: sd ra, 152(sp) # 8-byte Folded Spill
554 ; RV64I-NEXT: sd s0, 144(sp) # 8-byte Folded Spill
555 ; RV64I-NEXT: sd s1, 136(sp) # 8-byte Folded Spill
556 ; RV64I-NEXT: sd s2, 128(sp) # 8-byte Folded Spill
557 ; RV64I-NEXT: sd s3, 120(sp) # 8-byte Folded Spill
558 ; RV64I-NEXT: sd s4, 112(sp) # 8-byte Folded Spill
559 ; RV64I-NEXT: sd s5, 104(sp) # 8-byte Folded Spill
560 ; RV64I-NEXT: sd s6, 96(sp) # 8-byte Folded Spill
561 ; RV64I-NEXT: sd s7, 88(sp) # 8-byte Folded Spill
562 ; RV64I-NEXT: sd s8, 80(sp) # 8-byte Folded Spill
563 ; RV64I-NEXT: sd s9, 72(sp) # 8-byte Folded Spill
564 ; RV64I-NEXT: sd s10, 64(sp) # 8-byte Folded Spill
565 ; RV64I-NEXT: sd s11, 56(sp) # 8-byte Folded Spill
566 ; RV64I-NEXT: lui a6, %hi(var)
567 ; RV64I-NEXT: lw a0, %lo(var)(a6)
568 ; RV64I-NEXT: sd a0, 48(sp) # 8-byte Folded Spill
569 ; RV64I-NEXT: lw a0, %lo(var+4)(a6)
570 ; RV64I-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
571 ; RV64I-NEXT: lw a0, %lo(var+8)(a6)
572 ; RV64I-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
573 ; RV64I-NEXT: lw a0, %lo(var+12)(a6)
574 ; RV64I-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
575 ; RV64I-NEXT: addi a5, a6, %lo(var)
576 ; RV64I-NEXT: lw a0, 16(a5)
577 ; RV64I-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
578 ; RV64I-NEXT: lw a0, 20(a5)
579 ; RV64I-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
580 ; RV64I-NEXT: lw t0, 24(a5)
581 ; RV64I-NEXT: lw t1, 28(a5)
582 ; RV64I-NEXT: lw t2, 32(a5)
583 ; RV64I-NEXT: lw t3, 36(a5)
584 ; RV64I-NEXT: lw t4, 40(a5)
585 ; RV64I-NEXT: lw t5, 44(a5)
586 ; RV64I-NEXT: lw t6, 48(a5)
587 ; RV64I-NEXT: lw s0, 52(a5)
588 ; RV64I-NEXT: lw s1, 56(a5)
589 ; RV64I-NEXT: lw s2, 60(a5)
590 ; RV64I-NEXT: lw s3, 64(a5)
591 ; RV64I-NEXT: lw s4, 68(a5)
592 ; RV64I-NEXT: lw s5, 72(a5)
593 ; RV64I-NEXT: lw s6, 76(a5)
594 ; RV64I-NEXT: lw s7, 80(a5)
595 ; RV64I-NEXT: lw s8, 84(a5)
596 ; RV64I-NEXT: lw s9, 88(a5)
597 ; RV64I-NEXT: lw s10, 92(a5)
598 ; RV64I-NEXT: lw s11, 96(a5)
599 ; RV64I-NEXT: lw ra, 100(a5)
600 ; RV64I-NEXT: lw a7, 104(a5)
601 ; RV64I-NEXT: lw a4, 108(a5)
602 ; RV64I-NEXT: lw a0, 124(a5)
603 ; RV64I-NEXT: lw a1, 120(a5)
604 ; RV64I-NEXT: lw a2, 116(a5)
605 ; RV64I-NEXT: lw a3, 112(a5)
606 ; RV64I-NEXT: sw a0, 124(a5)
607 ; RV64I-NEXT: sw a1, 120(a5)
608 ; RV64I-NEXT: sw a2, 116(a5)
609 ; RV64I-NEXT: sw a3, 112(a5)
610 ; RV64I-NEXT: sw a4, 108(a5)
611 ; RV64I-NEXT: sw a7, 104(a5)
612 ; RV64I-NEXT: sw ra, 100(a5)
613 ; RV64I-NEXT: sw s11, 96(a5)
614 ; RV64I-NEXT: sw s10, 92(a5)
615 ; RV64I-NEXT: sw s9, 88(a5)
616 ; RV64I-NEXT: sw s8, 84(a5)
617 ; RV64I-NEXT: sw s7, 80(a5)
618 ; RV64I-NEXT: sw s6, 76(a5)
619 ; RV64I-NEXT: sw s5, 72(a5)
620 ; RV64I-NEXT: sw s4, 68(a5)
621 ; RV64I-NEXT: sw s3, 64(a5)
622 ; RV64I-NEXT: sw s2, 60(a5)
623 ; RV64I-NEXT: sw s1, 56(a5)
624 ; RV64I-NEXT: sw s0, 52(a5)
625 ; RV64I-NEXT: sw t6, 48(a5)
626 ; RV64I-NEXT: sw t5, 44(a5)
627 ; RV64I-NEXT: sw t4, 40(a5)
628 ; RV64I-NEXT: sw t3, 36(a5)
629 ; RV64I-NEXT: sw t2, 32(a5)
630 ; RV64I-NEXT: sw t1, 28(a5)
631 ; RV64I-NEXT: sw t0, 24(a5)
632 ; RV64I-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
633 ; RV64I-NEXT: sw a0, 20(a5)
634 ; RV64I-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
635 ; RV64I-NEXT: sw a0, 16(a5)
636 ; RV64I-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
637 ; RV64I-NEXT: sw a0, %lo(var+12)(a6)
638 ; RV64I-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
639 ; RV64I-NEXT: sw a0, %lo(var+8)(a6)
640 ; RV64I-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
641 ; RV64I-NEXT: sw a0, %lo(var+4)(a6)
642 ; RV64I-NEXT: ld a0, 48(sp) # 8-byte Folded Reload
643 ; RV64I-NEXT: sw a0, %lo(var)(a6)
644 ; RV64I-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
645 ; RV64I-NEXT: ld s0, 144(sp) # 8-byte Folded Reload
646 ; RV64I-NEXT: ld s1, 136(sp) # 8-byte Folded Reload
647 ; RV64I-NEXT: ld s2, 128(sp) # 8-byte Folded Reload
648 ; RV64I-NEXT: ld s3, 120(sp) # 8-byte Folded Reload
649 ; RV64I-NEXT: ld s4, 112(sp) # 8-byte Folded Reload
650 ; RV64I-NEXT: ld s5, 104(sp) # 8-byte Folded Reload
651 ; RV64I-NEXT: ld s6, 96(sp) # 8-byte Folded Reload
652 ; RV64I-NEXT: ld s7, 88(sp) # 8-byte Folded Reload
653 ; RV64I-NEXT: ld s8, 80(sp) # 8-byte Folded Reload
654 ; RV64I-NEXT: ld s9, 72(sp) # 8-byte Folded Reload
655 ; RV64I-NEXT: ld s10, 64(sp) # 8-byte Folded Reload
656 ; RV64I-NEXT: ld s11, 56(sp) # 8-byte Folded Reload
657 ; RV64I-NEXT: addi sp, sp, 160
660 ; RV64I-LP64E-LABEL: callee:
661 ; RV64I-LP64E: # %bb.0:
662 ; RV64I-LP64E-NEXT: addi sp, sp, -80
663 ; RV64I-LP64E-NEXT: sd ra, 72(sp) # 8-byte Folded Spill
664 ; RV64I-LP64E-NEXT: sd s0, 64(sp) # 8-byte Folded Spill
665 ; RV64I-LP64E-NEXT: sd s1, 56(sp) # 8-byte Folded Spill
666 ; RV64I-LP64E-NEXT: lui a6, %hi(var)
667 ; RV64I-LP64E-NEXT: lw a0, %lo(var)(a6)
668 ; RV64I-LP64E-NEXT: sd a0, 48(sp) # 8-byte Folded Spill
669 ; RV64I-LP64E-NEXT: lw a0, %lo(var+4)(a6)
670 ; RV64I-LP64E-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
671 ; RV64I-LP64E-NEXT: lw a0, %lo(var+8)(a6)
672 ; RV64I-LP64E-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
673 ; RV64I-LP64E-NEXT: lw a0, %lo(var+12)(a6)
674 ; RV64I-LP64E-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
675 ; RV64I-LP64E-NEXT: addi a5, a6, %lo(var)
676 ; RV64I-LP64E-NEXT: lw a0, 16(a5)
677 ; RV64I-LP64E-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
678 ; RV64I-LP64E-NEXT: lw a0, 20(a5)
679 ; RV64I-LP64E-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
680 ; RV64I-LP64E-NEXT: lw t0, 24(a5)
681 ; RV64I-LP64E-NEXT: lw t1, 28(a5)
682 ; RV64I-LP64E-NEXT: lw t2, 32(a5)
683 ; RV64I-LP64E-NEXT: lw t3, 36(a5)
684 ; RV64I-LP64E-NEXT: lw t4, 40(a5)
685 ; RV64I-LP64E-NEXT: lw t5, 44(a5)
686 ; RV64I-LP64E-NEXT: lw t6, 48(a5)
687 ; RV64I-LP64E-NEXT: lw s2, 52(a5)
688 ; RV64I-LP64E-NEXT: lw s3, 56(a5)
689 ; RV64I-LP64E-NEXT: lw s4, 60(a5)
690 ; RV64I-LP64E-NEXT: lw s5, 64(a5)
691 ; RV64I-LP64E-NEXT: lw s6, 68(a5)
692 ; RV64I-LP64E-NEXT: lw s7, 72(a5)
693 ; RV64I-LP64E-NEXT: lw s8, 76(a5)
694 ; RV64I-LP64E-NEXT: lw s9, 80(a5)
695 ; RV64I-LP64E-NEXT: lw s10, 84(a5)
696 ; RV64I-LP64E-NEXT: lw s11, 88(a5)
697 ; RV64I-LP64E-NEXT: lw s0, 92(a5)
698 ; RV64I-LP64E-NEXT: lw s1, 96(a5)
699 ; RV64I-LP64E-NEXT: lw ra, 100(a5)
700 ; RV64I-LP64E-NEXT: lw a7, 104(a5)
701 ; RV64I-LP64E-NEXT: lw a4, 108(a5)
702 ; RV64I-LP64E-NEXT: lw a0, 124(a5)
703 ; RV64I-LP64E-NEXT: lw a1, 120(a5)
704 ; RV64I-LP64E-NEXT: lw a2, 116(a5)
705 ; RV64I-LP64E-NEXT: lw a3, 112(a5)
706 ; RV64I-LP64E-NEXT: sw a0, 124(a5)
707 ; RV64I-LP64E-NEXT: sw a1, 120(a5)
708 ; RV64I-LP64E-NEXT: sw a2, 116(a5)
709 ; RV64I-LP64E-NEXT: sw a3, 112(a5)
710 ; RV64I-LP64E-NEXT: sw a4, 108(a5)
711 ; RV64I-LP64E-NEXT: sw a7, 104(a5)
712 ; RV64I-LP64E-NEXT: sw ra, 100(a5)
713 ; RV64I-LP64E-NEXT: sw s1, 96(a5)
714 ; RV64I-LP64E-NEXT: sw s0, 92(a5)
715 ; RV64I-LP64E-NEXT: sw s11, 88(a5)
716 ; RV64I-LP64E-NEXT: sw s10, 84(a5)
717 ; RV64I-LP64E-NEXT: sw s9, 80(a5)
718 ; RV64I-LP64E-NEXT: sw s8, 76(a5)
719 ; RV64I-LP64E-NEXT: sw s7, 72(a5)
720 ; RV64I-LP64E-NEXT: sw s6, 68(a5)
721 ; RV64I-LP64E-NEXT: sw s5, 64(a5)
722 ; RV64I-LP64E-NEXT: sw s4, 60(a5)
723 ; RV64I-LP64E-NEXT: sw s3, 56(a5)
724 ; RV64I-LP64E-NEXT: sw s2, 52(a5)
725 ; RV64I-LP64E-NEXT: sw t6, 48(a5)
726 ; RV64I-LP64E-NEXT: sw t5, 44(a5)
727 ; RV64I-LP64E-NEXT: sw t4, 40(a5)
728 ; RV64I-LP64E-NEXT: sw t3, 36(a5)
729 ; RV64I-LP64E-NEXT: sw t2, 32(a5)
730 ; RV64I-LP64E-NEXT: sw t1, 28(a5)
731 ; RV64I-LP64E-NEXT: sw t0, 24(a5)
732 ; RV64I-LP64E-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
733 ; RV64I-LP64E-NEXT: sw a0, 20(a5)
734 ; RV64I-LP64E-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
735 ; RV64I-LP64E-NEXT: sw a0, 16(a5)
736 ; RV64I-LP64E-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
737 ; RV64I-LP64E-NEXT: sw a0, %lo(var+12)(a6)
738 ; RV64I-LP64E-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
739 ; RV64I-LP64E-NEXT: sw a0, %lo(var+8)(a6)
740 ; RV64I-LP64E-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
741 ; RV64I-LP64E-NEXT: sw a0, %lo(var+4)(a6)
742 ; RV64I-LP64E-NEXT: ld a0, 48(sp) # 8-byte Folded Reload
743 ; RV64I-LP64E-NEXT: sw a0, %lo(var)(a6)
744 ; RV64I-LP64E-NEXT: ld ra, 72(sp) # 8-byte Folded Reload
745 ; RV64I-LP64E-NEXT: ld s0, 64(sp) # 8-byte Folded Reload
746 ; RV64I-LP64E-NEXT: ld s1, 56(sp) # 8-byte Folded Reload
747 ; RV64I-LP64E-NEXT: addi sp, sp, 80
748 ; RV64I-LP64E-NEXT: ret
750 ; RV64I-WITH-FP-LABEL: callee:
751 ; RV64I-WITH-FP: # %bb.0:
752 ; RV64I-WITH-FP-NEXT: addi sp, sp, -160
753 ; RV64I-WITH-FP-NEXT: sd ra, 152(sp) # 8-byte Folded Spill
754 ; RV64I-WITH-FP-NEXT: sd s0, 144(sp) # 8-byte Folded Spill
755 ; RV64I-WITH-FP-NEXT: sd s1, 136(sp) # 8-byte Folded Spill
756 ; RV64I-WITH-FP-NEXT: sd s2, 128(sp) # 8-byte Folded Spill
757 ; RV64I-WITH-FP-NEXT: sd s3, 120(sp) # 8-byte Folded Spill
758 ; RV64I-WITH-FP-NEXT: sd s4, 112(sp) # 8-byte Folded Spill
759 ; RV64I-WITH-FP-NEXT: sd s5, 104(sp) # 8-byte Folded Spill
760 ; RV64I-WITH-FP-NEXT: sd s6, 96(sp) # 8-byte Folded Spill
761 ; RV64I-WITH-FP-NEXT: sd s7, 88(sp) # 8-byte Folded Spill
762 ; RV64I-WITH-FP-NEXT: sd s8, 80(sp) # 8-byte Folded Spill
763 ; RV64I-WITH-FP-NEXT: sd s9, 72(sp) # 8-byte Folded Spill
764 ; RV64I-WITH-FP-NEXT: sd s10, 64(sp) # 8-byte Folded Spill
765 ; RV64I-WITH-FP-NEXT: sd s11, 56(sp) # 8-byte Folded Spill
766 ; RV64I-WITH-FP-NEXT: addi s0, sp, 160
767 ; RV64I-WITH-FP-NEXT: lui a6, %hi(var)
768 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var)(a6)
769 ; RV64I-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill
770 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+4)(a6)
771 ; RV64I-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill
772 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+8)(a6)
773 ; RV64I-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill
774 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+12)(a6)
775 ; RV64I-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill
776 ; RV64I-WITH-FP-NEXT: addi a5, a6, %lo(var)
777 ; RV64I-WITH-FP-NEXT: lw a0, 16(a5)
778 ; RV64I-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill
779 ; RV64I-WITH-FP-NEXT: lw a0, 20(a5)
780 ; RV64I-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill
781 ; RV64I-WITH-FP-NEXT: lw a0, 24(a5)
782 ; RV64I-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill
783 ; RV64I-WITH-FP-NEXT: lw t1, 28(a5)
784 ; RV64I-WITH-FP-NEXT: lw t2, 32(a5)
785 ; RV64I-WITH-FP-NEXT: lw t3, 36(a5)
786 ; RV64I-WITH-FP-NEXT: lw t4, 40(a5)
787 ; RV64I-WITH-FP-NEXT: lw t5, 44(a5)
788 ; RV64I-WITH-FP-NEXT: lw t6, 48(a5)
789 ; RV64I-WITH-FP-NEXT: lw s1, 52(a5)
790 ; RV64I-WITH-FP-NEXT: lw s2, 56(a5)
791 ; RV64I-WITH-FP-NEXT: lw s3, 60(a5)
792 ; RV64I-WITH-FP-NEXT: lw s4, 64(a5)
793 ; RV64I-WITH-FP-NEXT: lw s5, 68(a5)
794 ; RV64I-WITH-FP-NEXT: lw s6, 72(a5)
795 ; RV64I-WITH-FP-NEXT: lw s7, 76(a5)
796 ; RV64I-WITH-FP-NEXT: lw s8, 80(a5)
797 ; RV64I-WITH-FP-NEXT: lw s9, 84(a5)
798 ; RV64I-WITH-FP-NEXT: lw s10, 88(a5)
799 ; RV64I-WITH-FP-NEXT: lw s11, 92(a5)
800 ; RV64I-WITH-FP-NEXT: lw ra, 96(a5)
801 ; RV64I-WITH-FP-NEXT: lw t0, 100(a5)
802 ; RV64I-WITH-FP-NEXT: lw a7, 104(a5)
803 ; RV64I-WITH-FP-NEXT: lw a4, 108(a5)
804 ; RV64I-WITH-FP-NEXT: lw a0, 124(a5)
805 ; RV64I-WITH-FP-NEXT: lw a1, 120(a5)
806 ; RV64I-WITH-FP-NEXT: lw a2, 116(a5)
807 ; RV64I-WITH-FP-NEXT: lw a3, 112(a5)
808 ; RV64I-WITH-FP-NEXT: sw a0, 124(a5)
809 ; RV64I-WITH-FP-NEXT: sw a1, 120(a5)
810 ; RV64I-WITH-FP-NEXT: sw a2, 116(a5)
811 ; RV64I-WITH-FP-NEXT: sw a3, 112(a5)
812 ; RV64I-WITH-FP-NEXT: sw a4, 108(a5)
813 ; RV64I-WITH-FP-NEXT: sw a7, 104(a5)
814 ; RV64I-WITH-FP-NEXT: sw t0, 100(a5)
815 ; RV64I-WITH-FP-NEXT: sw ra, 96(a5)
816 ; RV64I-WITH-FP-NEXT: sw s11, 92(a5)
817 ; RV64I-WITH-FP-NEXT: sw s10, 88(a5)
818 ; RV64I-WITH-FP-NEXT: sw s9, 84(a5)
819 ; RV64I-WITH-FP-NEXT: sw s8, 80(a5)
820 ; RV64I-WITH-FP-NEXT: sw s7, 76(a5)
821 ; RV64I-WITH-FP-NEXT: sw s6, 72(a5)
822 ; RV64I-WITH-FP-NEXT: sw s5, 68(a5)
823 ; RV64I-WITH-FP-NEXT: sw s4, 64(a5)
824 ; RV64I-WITH-FP-NEXT: sw s3, 60(a5)
825 ; RV64I-WITH-FP-NEXT: sw s2, 56(a5)
826 ; RV64I-WITH-FP-NEXT: sw s1, 52(a5)
827 ; RV64I-WITH-FP-NEXT: sw t6, 48(a5)
828 ; RV64I-WITH-FP-NEXT: sw t5, 44(a5)
829 ; RV64I-WITH-FP-NEXT: sw t4, 40(a5)
830 ; RV64I-WITH-FP-NEXT: sw t3, 36(a5)
831 ; RV64I-WITH-FP-NEXT: sw t2, 32(a5)
832 ; RV64I-WITH-FP-NEXT: sw t1, 28(a5)
833 ; RV64I-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload
834 ; RV64I-WITH-FP-NEXT: sw a0, 24(a5)
835 ; RV64I-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload
836 ; RV64I-WITH-FP-NEXT: sw a0, 20(a5)
837 ; RV64I-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload
838 ; RV64I-WITH-FP-NEXT: sw a0, 16(a5)
839 ; RV64I-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload
840 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+12)(a6)
841 ; RV64I-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload
842 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+8)(a6)
843 ; RV64I-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload
844 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+4)(a6)
845 ; RV64I-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload
846 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var)(a6)
847 ; RV64I-WITH-FP-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
848 ; RV64I-WITH-FP-NEXT: ld s0, 144(sp) # 8-byte Folded Reload
849 ; RV64I-WITH-FP-NEXT: ld s1, 136(sp) # 8-byte Folded Reload
850 ; RV64I-WITH-FP-NEXT: ld s2, 128(sp) # 8-byte Folded Reload
851 ; RV64I-WITH-FP-NEXT: ld s3, 120(sp) # 8-byte Folded Reload
852 ; RV64I-WITH-FP-NEXT: ld s4, 112(sp) # 8-byte Folded Reload
853 ; RV64I-WITH-FP-NEXT: ld s5, 104(sp) # 8-byte Folded Reload
854 ; RV64I-WITH-FP-NEXT: ld s6, 96(sp) # 8-byte Folded Reload
855 ; RV64I-WITH-FP-NEXT: ld s7, 88(sp) # 8-byte Folded Reload
856 ; RV64I-WITH-FP-NEXT: ld s8, 80(sp) # 8-byte Folded Reload
857 ; RV64I-WITH-FP-NEXT: ld s9, 72(sp) # 8-byte Folded Reload
858 ; RV64I-WITH-FP-NEXT: ld s10, 64(sp) # 8-byte Folded Reload
859 ; RV64I-WITH-FP-NEXT: ld s11, 56(sp) # 8-byte Folded Reload
860 ; RV64I-WITH-FP-NEXT: addi sp, sp, 160
861 ; RV64I-WITH-FP-NEXT: ret
863 ; RV64IZCMP-LABEL: callee:
864 ; RV64IZCMP: # %bb.0:
865 ; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -160
866 ; RV64IZCMP-NEXT: lui a6, %hi(var)
867 ; RV64IZCMP-NEXT: lw a0, %lo(var)(a6)
868 ; RV64IZCMP-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
869 ; RV64IZCMP-NEXT: lw a0, %lo(var+4)(a6)
870 ; RV64IZCMP-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
871 ; RV64IZCMP-NEXT: lw a0, %lo(var+8)(a6)
872 ; RV64IZCMP-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
873 ; RV64IZCMP-NEXT: lw a0, %lo(var+12)(a6)
874 ; RV64IZCMP-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
875 ; RV64IZCMP-NEXT: addi a5, a6, %lo(var)
876 ; RV64IZCMP-NEXT: lw a0, 16(a5)
877 ; RV64IZCMP-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
878 ; RV64IZCMP-NEXT: lw a0, 20(a5)
879 ; RV64IZCMP-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
880 ; RV64IZCMP-NEXT: lw t4, 24(a5)
881 ; RV64IZCMP-NEXT: lw t5, 28(a5)
882 ; RV64IZCMP-NEXT: lw t6, 32(a5)
883 ; RV64IZCMP-NEXT: lw s2, 36(a5)
884 ; RV64IZCMP-NEXT: lw s3, 40(a5)
885 ; RV64IZCMP-NEXT: lw s4, 44(a5)
886 ; RV64IZCMP-NEXT: lw s5, 48(a5)
887 ; RV64IZCMP-NEXT: lw s6, 52(a5)
888 ; RV64IZCMP-NEXT: lw s7, 56(a5)
889 ; RV64IZCMP-NEXT: lw s8, 60(a5)
890 ; RV64IZCMP-NEXT: lw s9, 64(a5)
891 ; RV64IZCMP-NEXT: lw s10, 68(a5)
892 ; RV64IZCMP-NEXT: lw s11, 72(a5)
893 ; RV64IZCMP-NEXT: lw ra, 76(a5)
894 ; RV64IZCMP-NEXT: lw s1, 80(a5)
895 ; RV64IZCMP-NEXT: lw t3, 84(a5)
896 ; RV64IZCMP-NEXT: lw t2, 88(a5)
897 ; RV64IZCMP-NEXT: lw t1, 92(a5)
898 ; RV64IZCMP-NEXT: lw t0, 96(a5)
899 ; RV64IZCMP-NEXT: lw s0, 100(a5)
900 ; RV64IZCMP-NEXT: lw a7, 104(a5)
901 ; RV64IZCMP-NEXT: lw a4, 108(a5)
902 ; RV64IZCMP-NEXT: lw a0, 124(a5)
903 ; RV64IZCMP-NEXT: lw a1, 120(a5)
904 ; RV64IZCMP-NEXT: lw a2, 116(a5)
905 ; RV64IZCMP-NEXT: lw a3, 112(a5)
906 ; RV64IZCMP-NEXT: sw a0, 124(a5)
907 ; RV64IZCMP-NEXT: sw a1, 120(a5)
908 ; RV64IZCMP-NEXT: sw a2, 116(a5)
909 ; RV64IZCMP-NEXT: sw a3, 112(a5)
910 ; RV64IZCMP-NEXT: sw a4, 108(a5)
911 ; RV64IZCMP-NEXT: sw a7, 104(a5)
912 ; RV64IZCMP-NEXT: sw s0, 100(a5)
913 ; RV64IZCMP-NEXT: sw t0, 96(a5)
914 ; RV64IZCMP-NEXT: sw t1, 92(a5)
915 ; RV64IZCMP-NEXT: sw t2, 88(a5)
916 ; RV64IZCMP-NEXT: sw t3, 84(a5)
917 ; RV64IZCMP-NEXT: sw s1, 80(a5)
918 ; RV64IZCMP-NEXT: sw ra, 76(a5)
919 ; RV64IZCMP-NEXT: sw s11, 72(a5)
920 ; RV64IZCMP-NEXT: sw s10, 68(a5)
921 ; RV64IZCMP-NEXT: sw s9, 64(a5)
922 ; RV64IZCMP-NEXT: sw s8, 60(a5)
923 ; RV64IZCMP-NEXT: sw s7, 56(a5)
924 ; RV64IZCMP-NEXT: sw s6, 52(a5)
925 ; RV64IZCMP-NEXT: sw s5, 48(a5)
926 ; RV64IZCMP-NEXT: sw s4, 44(a5)
927 ; RV64IZCMP-NEXT: sw s3, 40(a5)
928 ; RV64IZCMP-NEXT: sw s2, 36(a5)
929 ; RV64IZCMP-NEXT: sw t6, 32(a5)
930 ; RV64IZCMP-NEXT: sw t5, 28(a5)
931 ; RV64IZCMP-NEXT: sw t4, 24(a5)
932 ; RV64IZCMP-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
933 ; RV64IZCMP-NEXT: sw a0, 20(a5)
934 ; RV64IZCMP-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
935 ; RV64IZCMP-NEXT: sw a0, 16(a5)
936 ; RV64IZCMP-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
937 ; RV64IZCMP-NEXT: sw a0, %lo(var+12)(a6)
938 ; RV64IZCMP-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
939 ; RV64IZCMP-NEXT: sw a0, %lo(var+8)(a6)
940 ; RV64IZCMP-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
941 ; RV64IZCMP-NEXT: sw a0, %lo(var+4)(a6)
942 ; RV64IZCMP-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
943 ; RV64IZCMP-NEXT: sw a0, %lo(var)(a6)
944 ; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 160
946 ; RV64IZCMP-WITH-FP-LABEL: callee:
947 ; RV64IZCMP-WITH-FP: # %bb.0:
948 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -160
949 ; RV64IZCMP-WITH-FP-NEXT: sd ra, 152(sp) # 8-byte Folded Spill
950 ; RV64IZCMP-WITH-FP-NEXT: sd s0, 144(sp) # 8-byte Folded Spill
951 ; RV64IZCMP-WITH-FP-NEXT: sd s1, 136(sp) # 8-byte Folded Spill
952 ; RV64IZCMP-WITH-FP-NEXT: sd s2, 128(sp) # 8-byte Folded Spill
953 ; RV64IZCMP-WITH-FP-NEXT: sd s3, 120(sp) # 8-byte Folded Spill
954 ; RV64IZCMP-WITH-FP-NEXT: sd s4, 112(sp) # 8-byte Folded Spill
955 ; RV64IZCMP-WITH-FP-NEXT: sd s5, 104(sp) # 8-byte Folded Spill
956 ; RV64IZCMP-WITH-FP-NEXT: sd s6, 96(sp) # 8-byte Folded Spill
957 ; RV64IZCMP-WITH-FP-NEXT: sd s7, 88(sp) # 8-byte Folded Spill
958 ; RV64IZCMP-WITH-FP-NEXT: sd s8, 80(sp) # 8-byte Folded Spill
959 ; RV64IZCMP-WITH-FP-NEXT: sd s9, 72(sp) # 8-byte Folded Spill
960 ; RV64IZCMP-WITH-FP-NEXT: sd s10, 64(sp) # 8-byte Folded Spill
961 ; RV64IZCMP-WITH-FP-NEXT: sd s11, 56(sp) # 8-byte Folded Spill
962 ; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 160
963 ; RV64IZCMP-WITH-FP-NEXT: lui a6, %hi(var)
964 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(a6)
965 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill
966 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(a6)
967 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill
968 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(a6)
969 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill
970 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(a6)
971 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill
972 ; RV64IZCMP-WITH-FP-NEXT: addi a5, a6, %lo(var)
973 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 16(a5)
974 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill
975 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 20(a5)
976 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill
977 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 24(a5)
978 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill
979 ; RV64IZCMP-WITH-FP-NEXT: lw t5, 28(a5)
980 ; RV64IZCMP-WITH-FP-NEXT: lw t6, 32(a5)
981 ; RV64IZCMP-WITH-FP-NEXT: lw s2, 36(a5)
982 ; RV64IZCMP-WITH-FP-NEXT: lw s3, 40(a5)
983 ; RV64IZCMP-WITH-FP-NEXT: lw s4, 44(a5)
984 ; RV64IZCMP-WITH-FP-NEXT: lw s5, 48(a5)
985 ; RV64IZCMP-WITH-FP-NEXT: lw s6, 52(a5)
986 ; RV64IZCMP-WITH-FP-NEXT: lw s7, 56(a5)
987 ; RV64IZCMP-WITH-FP-NEXT: lw s8, 60(a5)
988 ; RV64IZCMP-WITH-FP-NEXT: lw s9, 64(a5)
989 ; RV64IZCMP-WITH-FP-NEXT: lw s10, 68(a5)
990 ; RV64IZCMP-WITH-FP-NEXT: lw s11, 72(a5)
991 ; RV64IZCMP-WITH-FP-NEXT: lw ra, 76(a5)
992 ; RV64IZCMP-WITH-FP-NEXT: lw t4, 80(a5)
993 ; RV64IZCMP-WITH-FP-NEXT: lw t3, 84(a5)
994 ; RV64IZCMP-WITH-FP-NEXT: lw t2, 88(a5)
995 ; RV64IZCMP-WITH-FP-NEXT: lw s1, 92(a5)
996 ; RV64IZCMP-WITH-FP-NEXT: lw t1, 96(a5)
997 ; RV64IZCMP-WITH-FP-NEXT: lw t0, 100(a5)
998 ; RV64IZCMP-WITH-FP-NEXT: lw a7, 104(a5)
999 ; RV64IZCMP-WITH-FP-NEXT: lw a4, 108(a5)
1000 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 124(a5)
1001 ; RV64IZCMP-WITH-FP-NEXT: lw a1, 120(a5)
1002 ; RV64IZCMP-WITH-FP-NEXT: lw a2, 116(a5)
1003 ; RV64IZCMP-WITH-FP-NEXT: lw a3, 112(a5)
1004 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 124(a5)
1005 ; RV64IZCMP-WITH-FP-NEXT: sw a1, 120(a5)
1006 ; RV64IZCMP-WITH-FP-NEXT: sw a2, 116(a5)
1007 ; RV64IZCMP-WITH-FP-NEXT: sw a3, 112(a5)
1008 ; RV64IZCMP-WITH-FP-NEXT: sw a4, 108(a5)
1009 ; RV64IZCMP-WITH-FP-NEXT: sw a7, 104(a5)
1010 ; RV64IZCMP-WITH-FP-NEXT: sw t0, 100(a5)
1011 ; RV64IZCMP-WITH-FP-NEXT: sw t1, 96(a5)
1012 ; RV64IZCMP-WITH-FP-NEXT: sw s1, 92(a5)
1013 ; RV64IZCMP-WITH-FP-NEXT: sw t2, 88(a5)
1014 ; RV64IZCMP-WITH-FP-NEXT: sw t3, 84(a5)
1015 ; RV64IZCMP-WITH-FP-NEXT: sw t4, 80(a5)
1016 ; RV64IZCMP-WITH-FP-NEXT: sw ra, 76(a5)
1017 ; RV64IZCMP-WITH-FP-NEXT: sw s11, 72(a5)
1018 ; RV64IZCMP-WITH-FP-NEXT: sw s10, 68(a5)
1019 ; RV64IZCMP-WITH-FP-NEXT: sw s9, 64(a5)
1020 ; RV64IZCMP-WITH-FP-NEXT: sw s8, 60(a5)
1021 ; RV64IZCMP-WITH-FP-NEXT: sw s7, 56(a5)
1022 ; RV64IZCMP-WITH-FP-NEXT: sw s6, 52(a5)
1023 ; RV64IZCMP-WITH-FP-NEXT: sw s5, 48(a5)
1024 ; RV64IZCMP-WITH-FP-NEXT: sw s4, 44(a5)
1025 ; RV64IZCMP-WITH-FP-NEXT: sw s3, 40(a5)
1026 ; RV64IZCMP-WITH-FP-NEXT: sw s2, 36(a5)
1027 ; RV64IZCMP-WITH-FP-NEXT: sw t6, 32(a5)
1028 ; RV64IZCMP-WITH-FP-NEXT: sw t5, 28(a5)
1029 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload
1030 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 24(a5)
1031 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload
1032 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 20(a5)
1033 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload
1034 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 16(a5)
1035 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload
1036 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(a6)
1037 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload
1038 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(a6)
1039 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload
1040 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(a6)
1041 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload
1042 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(a6)
1043 ; RV64IZCMP-WITH-FP-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
1044 ; RV64IZCMP-WITH-FP-NEXT: ld s0, 144(sp) # 8-byte Folded Reload
1045 ; RV64IZCMP-WITH-FP-NEXT: ld s1, 136(sp) # 8-byte Folded Reload
1046 ; RV64IZCMP-WITH-FP-NEXT: ld s2, 128(sp) # 8-byte Folded Reload
1047 ; RV64IZCMP-WITH-FP-NEXT: ld s3, 120(sp) # 8-byte Folded Reload
1048 ; RV64IZCMP-WITH-FP-NEXT: ld s4, 112(sp) # 8-byte Folded Reload
1049 ; RV64IZCMP-WITH-FP-NEXT: ld s5, 104(sp) # 8-byte Folded Reload
1050 ; RV64IZCMP-WITH-FP-NEXT: ld s6, 96(sp) # 8-byte Folded Reload
1051 ; RV64IZCMP-WITH-FP-NEXT: ld s7, 88(sp) # 8-byte Folded Reload
1052 ; RV64IZCMP-WITH-FP-NEXT: ld s8, 80(sp) # 8-byte Folded Reload
1053 ; RV64IZCMP-WITH-FP-NEXT: ld s9, 72(sp) # 8-byte Folded Reload
1054 ; RV64IZCMP-WITH-FP-NEXT: ld s10, 64(sp) # 8-byte Folded Reload
1055 ; RV64IZCMP-WITH-FP-NEXT: ld s11, 56(sp) # 8-byte Folded Reload
1056 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 160
1057 ; RV64IZCMP-WITH-FP-NEXT: ret
1058 %val = load [32 x i32], ptr @var
1059 store volatile [32 x i32] %val, ptr @var
1063 ; This function tests that RISCVRegisterInfo::getCallPreservedMask returns
1064 ; something appropriate.
1066 define void @caller() nounwind {
1067 ; RV32I-LABEL: caller:
1069 ; RV32I-NEXT: addi sp, sp, -144
1070 ; RV32I-NEXT: sw ra, 140(sp) # 4-byte Folded Spill
1071 ; RV32I-NEXT: sw s0, 136(sp) # 4-byte Folded Spill
1072 ; RV32I-NEXT: sw s1, 132(sp) # 4-byte Folded Spill
1073 ; RV32I-NEXT: sw s2, 128(sp) # 4-byte Folded Spill
1074 ; RV32I-NEXT: sw s3, 124(sp) # 4-byte Folded Spill
1075 ; RV32I-NEXT: sw s4, 120(sp) # 4-byte Folded Spill
1076 ; RV32I-NEXT: sw s5, 116(sp) # 4-byte Folded Spill
1077 ; RV32I-NEXT: sw s6, 112(sp) # 4-byte Folded Spill
1078 ; RV32I-NEXT: sw s7, 108(sp) # 4-byte Folded Spill
1079 ; RV32I-NEXT: sw s8, 104(sp) # 4-byte Folded Spill
1080 ; RV32I-NEXT: sw s9, 100(sp) # 4-byte Folded Spill
1081 ; RV32I-NEXT: sw s10, 96(sp) # 4-byte Folded Spill
1082 ; RV32I-NEXT: sw s11, 92(sp) # 4-byte Folded Spill
1083 ; RV32I-NEXT: lui s0, %hi(var)
1084 ; RV32I-NEXT: lw a0, %lo(var)(s0)
1085 ; RV32I-NEXT: sw a0, 88(sp) # 4-byte Folded Spill
1086 ; RV32I-NEXT: lw a0, %lo(var+4)(s0)
1087 ; RV32I-NEXT: sw a0, 84(sp) # 4-byte Folded Spill
1088 ; RV32I-NEXT: lw a0, %lo(var+8)(s0)
1089 ; RV32I-NEXT: sw a0, 80(sp) # 4-byte Folded Spill
1090 ; RV32I-NEXT: lw a0, %lo(var+12)(s0)
1091 ; RV32I-NEXT: sw a0, 76(sp) # 4-byte Folded Spill
1092 ; RV32I-NEXT: addi s5, s0, %lo(var)
1093 ; RV32I-NEXT: lw a0, 16(s5)
1094 ; RV32I-NEXT: sw a0, 72(sp) # 4-byte Folded Spill
1095 ; RV32I-NEXT: lw a0, 20(s5)
1096 ; RV32I-NEXT: sw a0, 68(sp) # 4-byte Folded Spill
1097 ; RV32I-NEXT: lw a0, 24(s5)
1098 ; RV32I-NEXT: sw a0, 64(sp) # 4-byte Folded Spill
1099 ; RV32I-NEXT: lw a0, 28(s5)
1100 ; RV32I-NEXT: sw a0, 60(sp) # 4-byte Folded Spill
1101 ; RV32I-NEXT: lw a0, 32(s5)
1102 ; RV32I-NEXT: sw a0, 56(sp) # 4-byte Folded Spill
1103 ; RV32I-NEXT: lw a0, 36(s5)
1104 ; RV32I-NEXT: sw a0, 52(sp) # 4-byte Folded Spill
1105 ; RV32I-NEXT: lw a0, 40(s5)
1106 ; RV32I-NEXT: sw a0, 48(sp) # 4-byte Folded Spill
1107 ; RV32I-NEXT: lw a0, 44(s5)
1108 ; RV32I-NEXT: sw a0, 44(sp) # 4-byte Folded Spill
1109 ; RV32I-NEXT: lw a0, 48(s5)
1110 ; RV32I-NEXT: sw a0, 40(sp) # 4-byte Folded Spill
1111 ; RV32I-NEXT: lw a0, 52(s5)
1112 ; RV32I-NEXT: sw a0, 36(sp) # 4-byte Folded Spill
1113 ; RV32I-NEXT: lw a0, 56(s5)
1114 ; RV32I-NEXT: sw a0, 32(sp) # 4-byte Folded Spill
1115 ; RV32I-NEXT: lw a0, 60(s5)
1116 ; RV32I-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
1117 ; RV32I-NEXT: lw a0, 64(s5)
1118 ; RV32I-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
1119 ; RV32I-NEXT: lw a0, 68(s5)
1120 ; RV32I-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
1121 ; RV32I-NEXT: lw a0, 72(s5)
1122 ; RV32I-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
1123 ; RV32I-NEXT: lw a0, 76(s5)
1124 ; RV32I-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
1125 ; RV32I-NEXT: lw a0, 80(s5)
1126 ; RV32I-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
1127 ; RV32I-NEXT: lw a0, 84(s5)
1128 ; RV32I-NEXT: sw a0, 4(sp) # 4-byte Folded Spill
1129 ; RV32I-NEXT: lw s3, 88(s5)
1130 ; RV32I-NEXT: lw s4, 92(s5)
1131 ; RV32I-NEXT: lw s6, 96(s5)
1132 ; RV32I-NEXT: lw s7, 100(s5)
1133 ; RV32I-NEXT: lw s8, 104(s5)
1134 ; RV32I-NEXT: lw s9, 108(s5)
1135 ; RV32I-NEXT: lw s10, 112(s5)
1136 ; RV32I-NEXT: lw s11, 116(s5)
1137 ; RV32I-NEXT: lw s1, 120(s5)
1138 ; RV32I-NEXT: lw s2, 124(s5)
1139 ; RV32I-NEXT: call callee
1140 ; RV32I-NEXT: sw s2, 124(s5)
1141 ; RV32I-NEXT: sw s1, 120(s5)
1142 ; RV32I-NEXT: sw s11, 116(s5)
1143 ; RV32I-NEXT: sw s10, 112(s5)
1144 ; RV32I-NEXT: sw s9, 108(s5)
1145 ; RV32I-NEXT: sw s8, 104(s5)
1146 ; RV32I-NEXT: sw s7, 100(s5)
1147 ; RV32I-NEXT: sw s6, 96(s5)
1148 ; RV32I-NEXT: sw s4, 92(s5)
1149 ; RV32I-NEXT: sw s3, 88(s5)
1150 ; RV32I-NEXT: lw a0, 4(sp) # 4-byte Folded Reload
1151 ; RV32I-NEXT: sw a0, 84(s5)
1152 ; RV32I-NEXT: lw a0, 8(sp) # 4-byte Folded Reload
1153 ; RV32I-NEXT: sw a0, 80(s5)
1154 ; RV32I-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
1155 ; RV32I-NEXT: sw a0, 76(s5)
1156 ; RV32I-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
1157 ; RV32I-NEXT: sw a0, 72(s5)
1158 ; RV32I-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
1159 ; RV32I-NEXT: sw a0, 68(s5)
1160 ; RV32I-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
1161 ; RV32I-NEXT: sw a0, 64(s5)
1162 ; RV32I-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
1163 ; RV32I-NEXT: sw a0, 60(s5)
1164 ; RV32I-NEXT: lw a0, 32(sp) # 4-byte Folded Reload
1165 ; RV32I-NEXT: sw a0, 56(s5)
1166 ; RV32I-NEXT: lw a0, 36(sp) # 4-byte Folded Reload
1167 ; RV32I-NEXT: sw a0, 52(s5)
1168 ; RV32I-NEXT: lw a0, 40(sp) # 4-byte Folded Reload
1169 ; RV32I-NEXT: sw a0, 48(s5)
1170 ; RV32I-NEXT: lw a0, 44(sp) # 4-byte Folded Reload
1171 ; RV32I-NEXT: sw a0, 44(s5)
1172 ; RV32I-NEXT: lw a0, 48(sp) # 4-byte Folded Reload
1173 ; RV32I-NEXT: sw a0, 40(s5)
1174 ; RV32I-NEXT: lw a0, 52(sp) # 4-byte Folded Reload
1175 ; RV32I-NEXT: sw a0, 36(s5)
1176 ; RV32I-NEXT: lw a0, 56(sp) # 4-byte Folded Reload
1177 ; RV32I-NEXT: sw a0, 32(s5)
1178 ; RV32I-NEXT: lw a0, 60(sp) # 4-byte Folded Reload
1179 ; RV32I-NEXT: sw a0, 28(s5)
1180 ; RV32I-NEXT: lw a0, 64(sp) # 4-byte Folded Reload
1181 ; RV32I-NEXT: sw a0, 24(s5)
1182 ; RV32I-NEXT: lw a0, 68(sp) # 4-byte Folded Reload
1183 ; RV32I-NEXT: sw a0, 20(s5)
1184 ; RV32I-NEXT: lw a0, 72(sp) # 4-byte Folded Reload
1185 ; RV32I-NEXT: sw a0, 16(s5)
1186 ; RV32I-NEXT: lw a0, 76(sp) # 4-byte Folded Reload
1187 ; RV32I-NEXT: sw a0, %lo(var+12)(s0)
1188 ; RV32I-NEXT: lw a0, 80(sp) # 4-byte Folded Reload
1189 ; RV32I-NEXT: sw a0, %lo(var+8)(s0)
1190 ; RV32I-NEXT: lw a0, 84(sp) # 4-byte Folded Reload
1191 ; RV32I-NEXT: sw a0, %lo(var+4)(s0)
1192 ; RV32I-NEXT: lw a0, 88(sp) # 4-byte Folded Reload
1193 ; RV32I-NEXT: sw a0, %lo(var)(s0)
1194 ; RV32I-NEXT: lw ra, 140(sp) # 4-byte Folded Reload
1195 ; RV32I-NEXT: lw s0, 136(sp) # 4-byte Folded Reload
1196 ; RV32I-NEXT: lw s1, 132(sp) # 4-byte Folded Reload
1197 ; RV32I-NEXT: lw s2, 128(sp) # 4-byte Folded Reload
1198 ; RV32I-NEXT: lw s3, 124(sp) # 4-byte Folded Reload
1199 ; RV32I-NEXT: lw s4, 120(sp) # 4-byte Folded Reload
1200 ; RV32I-NEXT: lw s5, 116(sp) # 4-byte Folded Reload
1201 ; RV32I-NEXT: lw s6, 112(sp) # 4-byte Folded Reload
1202 ; RV32I-NEXT: lw s7, 108(sp) # 4-byte Folded Reload
1203 ; RV32I-NEXT: lw s8, 104(sp) # 4-byte Folded Reload
1204 ; RV32I-NEXT: lw s9, 100(sp) # 4-byte Folded Reload
1205 ; RV32I-NEXT: lw s10, 96(sp) # 4-byte Folded Reload
1206 ; RV32I-NEXT: lw s11, 92(sp) # 4-byte Folded Reload
1207 ; RV32I-NEXT: addi sp, sp, 144
1210 ; RV32I-ILP32E-LABEL: caller:
1211 ; RV32I-ILP32E: # %bb.0:
1212 ; RV32I-ILP32E-NEXT: addi sp, sp, -136
1213 ; RV32I-ILP32E-NEXT: sw ra, 132(sp) # 4-byte Folded Spill
1214 ; RV32I-ILP32E-NEXT: sw s0, 128(sp) # 4-byte Folded Spill
1215 ; RV32I-ILP32E-NEXT: sw s1, 124(sp) # 4-byte Folded Spill
1216 ; RV32I-ILP32E-NEXT: lui a0, %hi(var)
1217 ; RV32I-ILP32E-NEXT: lw a1, %lo(var)(a0)
1218 ; RV32I-ILP32E-NEXT: sw a1, 120(sp) # 4-byte Folded Spill
1219 ; RV32I-ILP32E-NEXT: lw a1, %lo(var+4)(a0)
1220 ; RV32I-ILP32E-NEXT: sw a1, 116(sp) # 4-byte Folded Spill
1221 ; RV32I-ILP32E-NEXT: lw a1, %lo(var+8)(a0)
1222 ; RV32I-ILP32E-NEXT: sw a1, 112(sp) # 4-byte Folded Spill
1223 ; RV32I-ILP32E-NEXT: lw a1, %lo(var+12)(a0)
1224 ; RV32I-ILP32E-NEXT: sw a1, 108(sp) # 4-byte Folded Spill
1225 ; RV32I-ILP32E-NEXT: addi s1, a0, %lo(var)
1226 ; RV32I-ILP32E-NEXT: lw a0, 16(s1)
1227 ; RV32I-ILP32E-NEXT: sw a0, 104(sp) # 4-byte Folded Spill
1228 ; RV32I-ILP32E-NEXT: lw a0, 20(s1)
1229 ; RV32I-ILP32E-NEXT: sw a0, 100(sp) # 4-byte Folded Spill
1230 ; RV32I-ILP32E-NEXT: lw a0, 24(s1)
1231 ; RV32I-ILP32E-NEXT: sw a0, 96(sp) # 4-byte Folded Spill
1232 ; RV32I-ILP32E-NEXT: lw a0, 28(s1)
1233 ; RV32I-ILP32E-NEXT: sw a0, 92(sp) # 4-byte Folded Spill
1234 ; RV32I-ILP32E-NEXT: lw a0, 32(s1)
1235 ; RV32I-ILP32E-NEXT: sw a0, 88(sp) # 4-byte Folded Spill
1236 ; RV32I-ILP32E-NEXT: lw a0, 36(s1)
1237 ; RV32I-ILP32E-NEXT: sw a0, 84(sp) # 4-byte Folded Spill
1238 ; RV32I-ILP32E-NEXT: lw a0, 40(s1)
1239 ; RV32I-ILP32E-NEXT: sw a0, 80(sp) # 4-byte Folded Spill
1240 ; RV32I-ILP32E-NEXT: lw a0, 44(s1)
1241 ; RV32I-ILP32E-NEXT: sw a0, 76(sp) # 4-byte Folded Spill
1242 ; RV32I-ILP32E-NEXT: lw a0, 48(s1)
1243 ; RV32I-ILP32E-NEXT: sw a0, 72(sp) # 4-byte Folded Spill
1244 ; RV32I-ILP32E-NEXT: lw a0, 52(s1)
1245 ; RV32I-ILP32E-NEXT: sw a0, 68(sp) # 4-byte Folded Spill
1246 ; RV32I-ILP32E-NEXT: lw a0, 56(s1)
1247 ; RV32I-ILP32E-NEXT: sw a0, 64(sp) # 4-byte Folded Spill
1248 ; RV32I-ILP32E-NEXT: lw a0, 60(s1)
1249 ; RV32I-ILP32E-NEXT: sw a0, 60(sp) # 4-byte Folded Spill
1250 ; RV32I-ILP32E-NEXT: lw a0, 64(s1)
1251 ; RV32I-ILP32E-NEXT: sw a0, 56(sp) # 4-byte Folded Spill
1252 ; RV32I-ILP32E-NEXT: lw a0, 68(s1)
1253 ; RV32I-ILP32E-NEXT: sw a0, 52(sp) # 4-byte Folded Spill
1254 ; RV32I-ILP32E-NEXT: lw a0, 72(s1)
1255 ; RV32I-ILP32E-NEXT: sw a0, 48(sp) # 4-byte Folded Spill
1256 ; RV32I-ILP32E-NEXT: lw a0, 76(s1)
1257 ; RV32I-ILP32E-NEXT: sw a0, 44(sp) # 4-byte Folded Spill
1258 ; RV32I-ILP32E-NEXT: lw a0, 80(s1)
1259 ; RV32I-ILP32E-NEXT: sw a0, 40(sp) # 4-byte Folded Spill
1260 ; RV32I-ILP32E-NEXT: lw a0, 84(s1)
1261 ; RV32I-ILP32E-NEXT: sw a0, 36(sp) # 4-byte Folded Spill
1262 ; RV32I-ILP32E-NEXT: lw a0, 88(s1)
1263 ; RV32I-ILP32E-NEXT: sw a0, 32(sp) # 4-byte Folded Spill
1264 ; RV32I-ILP32E-NEXT: lw a0, 92(s1)
1265 ; RV32I-ILP32E-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
1266 ; RV32I-ILP32E-NEXT: lw a0, 96(s1)
1267 ; RV32I-ILP32E-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
1268 ; RV32I-ILP32E-NEXT: lw a0, 100(s1)
1269 ; RV32I-ILP32E-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
1270 ; RV32I-ILP32E-NEXT: lw a0, 104(s1)
1271 ; RV32I-ILP32E-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
1272 ; RV32I-ILP32E-NEXT: lw a0, 108(s1)
1273 ; RV32I-ILP32E-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
1274 ; RV32I-ILP32E-NEXT: lw a0, 112(s1)
1275 ; RV32I-ILP32E-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
1276 ; RV32I-ILP32E-NEXT: lw a0, 116(s1)
1277 ; RV32I-ILP32E-NEXT: sw a0, 4(sp) # 4-byte Folded Spill
1278 ; RV32I-ILP32E-NEXT: lw a0, 120(s1)
1279 ; RV32I-ILP32E-NEXT: sw a0, 0(sp) # 4-byte Folded Spill
1280 ; RV32I-ILP32E-NEXT: lw s0, 124(s1)
1281 ; RV32I-ILP32E-NEXT: call callee
1282 ; RV32I-ILP32E-NEXT: sw s0, 124(s1)
1283 ; RV32I-ILP32E-NEXT: lw a0, 0(sp) # 4-byte Folded Reload
1284 ; RV32I-ILP32E-NEXT: sw a0, 120(s1)
1285 ; RV32I-ILP32E-NEXT: lw a0, 4(sp) # 4-byte Folded Reload
1286 ; RV32I-ILP32E-NEXT: sw a0, 116(s1)
1287 ; RV32I-ILP32E-NEXT: lw a0, 8(sp) # 4-byte Folded Reload
1288 ; RV32I-ILP32E-NEXT: sw a0, 112(s1)
1289 ; RV32I-ILP32E-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
1290 ; RV32I-ILP32E-NEXT: sw a0, 108(s1)
1291 ; RV32I-ILP32E-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
1292 ; RV32I-ILP32E-NEXT: sw a0, 104(s1)
1293 ; RV32I-ILP32E-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
1294 ; RV32I-ILP32E-NEXT: sw a0, 100(s1)
1295 ; RV32I-ILP32E-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
1296 ; RV32I-ILP32E-NEXT: sw a0, 96(s1)
1297 ; RV32I-ILP32E-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
1298 ; RV32I-ILP32E-NEXT: sw a0, 92(s1)
1299 ; RV32I-ILP32E-NEXT: lw a0, 32(sp) # 4-byte Folded Reload
1300 ; RV32I-ILP32E-NEXT: sw a0, 88(s1)
1301 ; RV32I-ILP32E-NEXT: lw a0, 36(sp) # 4-byte Folded Reload
1302 ; RV32I-ILP32E-NEXT: sw a0, 84(s1)
1303 ; RV32I-ILP32E-NEXT: lw a0, 40(sp) # 4-byte Folded Reload
1304 ; RV32I-ILP32E-NEXT: sw a0, 80(s1)
1305 ; RV32I-ILP32E-NEXT: lw a0, 44(sp) # 4-byte Folded Reload
1306 ; RV32I-ILP32E-NEXT: sw a0, 76(s1)
1307 ; RV32I-ILP32E-NEXT: lw a0, 48(sp) # 4-byte Folded Reload
1308 ; RV32I-ILP32E-NEXT: sw a0, 72(s1)
1309 ; RV32I-ILP32E-NEXT: lw a0, 52(sp) # 4-byte Folded Reload
1310 ; RV32I-ILP32E-NEXT: sw a0, 68(s1)
1311 ; RV32I-ILP32E-NEXT: lw a0, 56(sp) # 4-byte Folded Reload
1312 ; RV32I-ILP32E-NEXT: sw a0, 64(s1)
1313 ; RV32I-ILP32E-NEXT: lw a0, 60(sp) # 4-byte Folded Reload
1314 ; RV32I-ILP32E-NEXT: sw a0, 60(s1)
1315 ; RV32I-ILP32E-NEXT: lw a0, 64(sp) # 4-byte Folded Reload
1316 ; RV32I-ILP32E-NEXT: sw a0, 56(s1)
1317 ; RV32I-ILP32E-NEXT: lw a0, 68(sp) # 4-byte Folded Reload
1318 ; RV32I-ILP32E-NEXT: sw a0, 52(s1)
1319 ; RV32I-ILP32E-NEXT: lw a0, 72(sp) # 4-byte Folded Reload
1320 ; RV32I-ILP32E-NEXT: sw a0, 48(s1)
1321 ; RV32I-ILP32E-NEXT: lw a0, 76(sp) # 4-byte Folded Reload
1322 ; RV32I-ILP32E-NEXT: sw a0, 44(s1)
1323 ; RV32I-ILP32E-NEXT: lw a0, 80(sp) # 4-byte Folded Reload
1324 ; RV32I-ILP32E-NEXT: sw a0, 40(s1)
1325 ; RV32I-ILP32E-NEXT: lw a0, 84(sp) # 4-byte Folded Reload
1326 ; RV32I-ILP32E-NEXT: sw a0, 36(s1)
1327 ; RV32I-ILP32E-NEXT: lw a0, 88(sp) # 4-byte Folded Reload
1328 ; RV32I-ILP32E-NEXT: sw a0, 32(s1)
1329 ; RV32I-ILP32E-NEXT: lw a0, 92(sp) # 4-byte Folded Reload
1330 ; RV32I-ILP32E-NEXT: sw a0, 28(s1)
1331 ; RV32I-ILP32E-NEXT: lw a0, 96(sp) # 4-byte Folded Reload
1332 ; RV32I-ILP32E-NEXT: sw a0, 24(s1)
1333 ; RV32I-ILP32E-NEXT: lw a0, 100(sp) # 4-byte Folded Reload
1334 ; RV32I-ILP32E-NEXT: sw a0, 20(s1)
1335 ; RV32I-ILP32E-NEXT: lw a0, 104(sp) # 4-byte Folded Reload
1336 ; RV32I-ILP32E-NEXT: sw a0, 16(s1)
1337 ; RV32I-ILP32E-NEXT: lui a1, %hi(var)
1338 ; RV32I-ILP32E-NEXT: lw a0, 108(sp) # 4-byte Folded Reload
1339 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+12)(a1)
1340 ; RV32I-ILP32E-NEXT: lw a0, 112(sp) # 4-byte Folded Reload
1341 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+8)(a1)
1342 ; RV32I-ILP32E-NEXT: lw a0, 116(sp) # 4-byte Folded Reload
1343 ; RV32I-ILP32E-NEXT: sw a0, %lo(var+4)(a1)
1344 ; RV32I-ILP32E-NEXT: lw a0, 120(sp) # 4-byte Folded Reload
1345 ; RV32I-ILP32E-NEXT: sw a0, %lo(var)(a1)
1346 ; RV32I-ILP32E-NEXT: lw ra, 132(sp) # 4-byte Folded Reload
1347 ; RV32I-ILP32E-NEXT: lw s0, 128(sp) # 4-byte Folded Reload
1348 ; RV32I-ILP32E-NEXT: lw s1, 124(sp) # 4-byte Folded Reload
1349 ; RV32I-ILP32E-NEXT: addi sp, sp, 136
1350 ; RV32I-ILP32E-NEXT: ret
1352 ; RV32I-WITH-FP-LABEL: caller:
1353 ; RV32I-WITH-FP: # %bb.0:
1354 ; RV32I-WITH-FP-NEXT: addi sp, sp, -144
1355 ; RV32I-WITH-FP-NEXT: sw ra, 140(sp) # 4-byte Folded Spill
1356 ; RV32I-WITH-FP-NEXT: sw s0, 136(sp) # 4-byte Folded Spill
1357 ; RV32I-WITH-FP-NEXT: sw s1, 132(sp) # 4-byte Folded Spill
1358 ; RV32I-WITH-FP-NEXT: sw s2, 128(sp) # 4-byte Folded Spill
1359 ; RV32I-WITH-FP-NEXT: sw s3, 124(sp) # 4-byte Folded Spill
1360 ; RV32I-WITH-FP-NEXT: sw s4, 120(sp) # 4-byte Folded Spill
1361 ; RV32I-WITH-FP-NEXT: sw s5, 116(sp) # 4-byte Folded Spill
1362 ; RV32I-WITH-FP-NEXT: sw s6, 112(sp) # 4-byte Folded Spill
1363 ; RV32I-WITH-FP-NEXT: sw s7, 108(sp) # 4-byte Folded Spill
1364 ; RV32I-WITH-FP-NEXT: sw s8, 104(sp) # 4-byte Folded Spill
1365 ; RV32I-WITH-FP-NEXT: sw s9, 100(sp) # 4-byte Folded Spill
1366 ; RV32I-WITH-FP-NEXT: sw s10, 96(sp) # 4-byte Folded Spill
1367 ; RV32I-WITH-FP-NEXT: sw s11, 92(sp) # 4-byte Folded Spill
1368 ; RV32I-WITH-FP-NEXT: addi s0, sp, 144
1369 ; RV32I-WITH-FP-NEXT: lui s1, %hi(var)
1370 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var)(s1)
1371 ; RV32I-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill
1372 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+4)(s1)
1373 ; RV32I-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill
1374 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+8)(s1)
1375 ; RV32I-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill
1376 ; RV32I-WITH-FP-NEXT: lw a0, %lo(var+12)(s1)
1377 ; RV32I-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill
1378 ; RV32I-WITH-FP-NEXT: addi s6, s1, %lo(var)
1379 ; RV32I-WITH-FP-NEXT: lw a0, 16(s6)
1380 ; RV32I-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill
1381 ; RV32I-WITH-FP-NEXT: lw a0, 20(s6)
1382 ; RV32I-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill
1383 ; RV32I-WITH-FP-NEXT: lw a0, 24(s6)
1384 ; RV32I-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill
1385 ; RV32I-WITH-FP-NEXT: lw a0, 28(s6)
1386 ; RV32I-WITH-FP-NEXT: sw a0, -84(s0) # 4-byte Folded Spill
1387 ; RV32I-WITH-FP-NEXT: lw a0, 32(s6)
1388 ; RV32I-WITH-FP-NEXT: sw a0, -88(s0) # 4-byte Folded Spill
1389 ; RV32I-WITH-FP-NEXT: lw a0, 36(s6)
1390 ; RV32I-WITH-FP-NEXT: sw a0, -92(s0) # 4-byte Folded Spill
1391 ; RV32I-WITH-FP-NEXT: lw a0, 40(s6)
1392 ; RV32I-WITH-FP-NEXT: sw a0, -96(s0) # 4-byte Folded Spill
1393 ; RV32I-WITH-FP-NEXT: lw a0, 44(s6)
1394 ; RV32I-WITH-FP-NEXT: sw a0, -100(s0) # 4-byte Folded Spill
1395 ; RV32I-WITH-FP-NEXT: lw a0, 48(s6)
1396 ; RV32I-WITH-FP-NEXT: sw a0, -104(s0) # 4-byte Folded Spill
1397 ; RV32I-WITH-FP-NEXT: lw a0, 52(s6)
1398 ; RV32I-WITH-FP-NEXT: sw a0, -108(s0) # 4-byte Folded Spill
1399 ; RV32I-WITH-FP-NEXT: lw a0, 56(s6)
1400 ; RV32I-WITH-FP-NEXT: sw a0, -112(s0) # 4-byte Folded Spill
1401 ; RV32I-WITH-FP-NEXT: lw a0, 60(s6)
1402 ; RV32I-WITH-FP-NEXT: sw a0, -116(s0) # 4-byte Folded Spill
1403 ; RV32I-WITH-FP-NEXT: lw a0, 64(s6)
1404 ; RV32I-WITH-FP-NEXT: sw a0, -120(s0) # 4-byte Folded Spill
1405 ; RV32I-WITH-FP-NEXT: lw a0, 68(s6)
1406 ; RV32I-WITH-FP-NEXT: sw a0, -124(s0) # 4-byte Folded Spill
1407 ; RV32I-WITH-FP-NEXT: lw a0, 72(s6)
1408 ; RV32I-WITH-FP-NEXT: sw a0, -128(s0) # 4-byte Folded Spill
1409 ; RV32I-WITH-FP-NEXT: lw a0, 76(s6)
1410 ; RV32I-WITH-FP-NEXT: sw a0, -132(s0) # 4-byte Folded Spill
1411 ; RV32I-WITH-FP-NEXT: lw a0, 80(s6)
1412 ; RV32I-WITH-FP-NEXT: sw a0, -136(s0) # 4-byte Folded Spill
1413 ; RV32I-WITH-FP-NEXT: lw a0, 84(s6)
1414 ; RV32I-WITH-FP-NEXT: sw a0, -140(s0) # 4-byte Folded Spill
1415 ; RV32I-WITH-FP-NEXT: lw a0, 88(s6)
1416 ; RV32I-WITH-FP-NEXT: sw a0, -144(s0) # 4-byte Folded Spill
1417 ; RV32I-WITH-FP-NEXT: lw s8, 92(s6)
1418 ; RV32I-WITH-FP-NEXT: lw s9, 96(s6)
1419 ; RV32I-WITH-FP-NEXT: lw s10, 100(s6)
1420 ; RV32I-WITH-FP-NEXT: lw s11, 104(s6)
1421 ; RV32I-WITH-FP-NEXT: lw s2, 108(s6)
1422 ; RV32I-WITH-FP-NEXT: lw s3, 112(s6)
1423 ; RV32I-WITH-FP-NEXT: lw s4, 116(s6)
1424 ; RV32I-WITH-FP-NEXT: lw s5, 120(s6)
1425 ; RV32I-WITH-FP-NEXT: lw s7, 124(s6)
1426 ; RV32I-WITH-FP-NEXT: call callee
1427 ; RV32I-WITH-FP-NEXT: sw s7, 124(s6)
1428 ; RV32I-WITH-FP-NEXT: sw s5, 120(s6)
1429 ; RV32I-WITH-FP-NEXT: sw s4, 116(s6)
1430 ; RV32I-WITH-FP-NEXT: sw s3, 112(s6)
1431 ; RV32I-WITH-FP-NEXT: sw s2, 108(s6)
1432 ; RV32I-WITH-FP-NEXT: sw s11, 104(s6)
1433 ; RV32I-WITH-FP-NEXT: sw s10, 100(s6)
1434 ; RV32I-WITH-FP-NEXT: sw s9, 96(s6)
1435 ; RV32I-WITH-FP-NEXT: sw s8, 92(s6)
1436 ; RV32I-WITH-FP-NEXT: lw a0, -144(s0) # 4-byte Folded Reload
1437 ; RV32I-WITH-FP-NEXT: sw a0, 88(s6)
1438 ; RV32I-WITH-FP-NEXT: lw a0, -140(s0) # 4-byte Folded Reload
1439 ; RV32I-WITH-FP-NEXT: sw a0, 84(s6)
1440 ; RV32I-WITH-FP-NEXT: lw a0, -136(s0) # 4-byte Folded Reload
1441 ; RV32I-WITH-FP-NEXT: sw a0, 80(s6)
1442 ; RV32I-WITH-FP-NEXT: lw a0, -132(s0) # 4-byte Folded Reload
1443 ; RV32I-WITH-FP-NEXT: sw a0, 76(s6)
1444 ; RV32I-WITH-FP-NEXT: lw a0, -128(s0) # 4-byte Folded Reload
1445 ; RV32I-WITH-FP-NEXT: sw a0, 72(s6)
1446 ; RV32I-WITH-FP-NEXT: lw a0, -124(s0) # 4-byte Folded Reload
1447 ; RV32I-WITH-FP-NEXT: sw a0, 68(s6)
1448 ; RV32I-WITH-FP-NEXT: lw a0, -120(s0) # 4-byte Folded Reload
1449 ; RV32I-WITH-FP-NEXT: sw a0, 64(s6)
1450 ; RV32I-WITH-FP-NEXT: lw a0, -116(s0) # 4-byte Folded Reload
1451 ; RV32I-WITH-FP-NEXT: sw a0, 60(s6)
1452 ; RV32I-WITH-FP-NEXT: lw a0, -112(s0) # 4-byte Folded Reload
1453 ; RV32I-WITH-FP-NEXT: sw a0, 56(s6)
1454 ; RV32I-WITH-FP-NEXT: lw a0, -108(s0) # 4-byte Folded Reload
1455 ; RV32I-WITH-FP-NEXT: sw a0, 52(s6)
1456 ; RV32I-WITH-FP-NEXT: lw a0, -104(s0) # 4-byte Folded Reload
1457 ; RV32I-WITH-FP-NEXT: sw a0, 48(s6)
1458 ; RV32I-WITH-FP-NEXT: lw a0, -100(s0) # 4-byte Folded Reload
1459 ; RV32I-WITH-FP-NEXT: sw a0, 44(s6)
1460 ; RV32I-WITH-FP-NEXT: lw a0, -96(s0) # 4-byte Folded Reload
1461 ; RV32I-WITH-FP-NEXT: sw a0, 40(s6)
1462 ; RV32I-WITH-FP-NEXT: lw a0, -92(s0) # 4-byte Folded Reload
1463 ; RV32I-WITH-FP-NEXT: sw a0, 36(s6)
1464 ; RV32I-WITH-FP-NEXT: lw a0, -88(s0) # 4-byte Folded Reload
1465 ; RV32I-WITH-FP-NEXT: sw a0, 32(s6)
1466 ; RV32I-WITH-FP-NEXT: lw a0, -84(s0) # 4-byte Folded Reload
1467 ; RV32I-WITH-FP-NEXT: sw a0, 28(s6)
1468 ; RV32I-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload
1469 ; RV32I-WITH-FP-NEXT: sw a0, 24(s6)
1470 ; RV32I-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload
1471 ; RV32I-WITH-FP-NEXT: sw a0, 20(s6)
1472 ; RV32I-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload
1473 ; RV32I-WITH-FP-NEXT: sw a0, 16(s6)
1474 ; RV32I-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload
1475 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+12)(s1)
1476 ; RV32I-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload
1477 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+8)(s1)
1478 ; RV32I-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload
1479 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var+4)(s1)
1480 ; RV32I-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload
1481 ; RV32I-WITH-FP-NEXT: sw a0, %lo(var)(s1)
1482 ; RV32I-WITH-FP-NEXT: lw ra, 140(sp) # 4-byte Folded Reload
1483 ; RV32I-WITH-FP-NEXT: lw s0, 136(sp) # 4-byte Folded Reload
1484 ; RV32I-WITH-FP-NEXT: lw s1, 132(sp) # 4-byte Folded Reload
1485 ; RV32I-WITH-FP-NEXT: lw s2, 128(sp) # 4-byte Folded Reload
1486 ; RV32I-WITH-FP-NEXT: lw s3, 124(sp) # 4-byte Folded Reload
1487 ; RV32I-WITH-FP-NEXT: lw s4, 120(sp) # 4-byte Folded Reload
1488 ; RV32I-WITH-FP-NEXT: lw s5, 116(sp) # 4-byte Folded Reload
1489 ; RV32I-WITH-FP-NEXT: lw s6, 112(sp) # 4-byte Folded Reload
1490 ; RV32I-WITH-FP-NEXT: lw s7, 108(sp) # 4-byte Folded Reload
1491 ; RV32I-WITH-FP-NEXT: lw s8, 104(sp) # 4-byte Folded Reload
1492 ; RV32I-WITH-FP-NEXT: lw s9, 100(sp) # 4-byte Folded Reload
1493 ; RV32I-WITH-FP-NEXT: lw s10, 96(sp) # 4-byte Folded Reload
1494 ; RV32I-WITH-FP-NEXT: lw s11, 92(sp) # 4-byte Folded Reload
1495 ; RV32I-WITH-FP-NEXT: addi sp, sp, 144
1496 ; RV32I-WITH-FP-NEXT: ret
1498 ; RV32IZCMP-LABEL: caller:
1499 ; RV32IZCMP: # %bb.0:
1500 ; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -112
1501 ; RV32IZCMP-NEXT: addi sp, sp, -48
1502 ; RV32IZCMP-NEXT: lui s0, %hi(var)
1503 ; RV32IZCMP-NEXT: lw a0, %lo(var)(s0)
1504 ; RV32IZCMP-NEXT: sw a0, 92(sp) # 4-byte Folded Spill
1505 ; RV32IZCMP-NEXT: lw a0, %lo(var+4)(s0)
1506 ; RV32IZCMP-NEXT: sw a0, 88(sp) # 4-byte Folded Spill
1507 ; RV32IZCMP-NEXT: lw a0, %lo(var+8)(s0)
1508 ; RV32IZCMP-NEXT: sw a0, 84(sp) # 4-byte Folded Spill
1509 ; RV32IZCMP-NEXT: lw a0, %lo(var+12)(s0)
1510 ; RV32IZCMP-NEXT: sw a0, 80(sp) # 4-byte Folded Spill
1511 ; RV32IZCMP-NEXT: addi s1, s0, %lo(var)
1512 ; RV32IZCMP-NEXT: lw a0, 16(s1)
1513 ; RV32IZCMP-NEXT: sw a0, 76(sp) # 4-byte Folded Spill
1514 ; RV32IZCMP-NEXT: lw a0, 20(s1)
1515 ; RV32IZCMP-NEXT: sw a0, 72(sp) # 4-byte Folded Spill
1516 ; RV32IZCMP-NEXT: lw a0, 24(s1)
1517 ; RV32IZCMP-NEXT: sw a0, 68(sp) # 4-byte Folded Spill
1518 ; RV32IZCMP-NEXT: lw a0, 28(s1)
1519 ; RV32IZCMP-NEXT: sw a0, 64(sp) # 4-byte Folded Spill
1520 ; RV32IZCMP-NEXT: lw a0, 32(s1)
1521 ; RV32IZCMP-NEXT: sw a0, 60(sp) # 4-byte Folded Spill
1522 ; RV32IZCMP-NEXT: lw a0, 36(s1)
1523 ; RV32IZCMP-NEXT: sw a0, 56(sp) # 4-byte Folded Spill
1524 ; RV32IZCMP-NEXT: lw a0, 40(s1)
1525 ; RV32IZCMP-NEXT: sw a0, 52(sp) # 4-byte Folded Spill
1526 ; RV32IZCMP-NEXT: lw a0, 44(s1)
1527 ; RV32IZCMP-NEXT: sw a0, 48(sp) # 4-byte Folded Spill
1528 ; RV32IZCMP-NEXT: lw a0, 48(s1)
1529 ; RV32IZCMP-NEXT: sw a0, 44(sp) # 4-byte Folded Spill
1530 ; RV32IZCMP-NEXT: lw a0, 52(s1)
1531 ; RV32IZCMP-NEXT: sw a0, 40(sp) # 4-byte Folded Spill
1532 ; RV32IZCMP-NEXT: lw a0, 56(s1)
1533 ; RV32IZCMP-NEXT: sw a0, 36(sp) # 4-byte Folded Spill
1534 ; RV32IZCMP-NEXT: lw a0, 60(s1)
1535 ; RV32IZCMP-NEXT: sw a0, 32(sp) # 4-byte Folded Spill
1536 ; RV32IZCMP-NEXT: lw a0, 64(s1)
1537 ; RV32IZCMP-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
1538 ; RV32IZCMP-NEXT: lw a0, 68(s1)
1539 ; RV32IZCMP-NEXT: sw a0, 24(sp) # 4-byte Folded Spill
1540 ; RV32IZCMP-NEXT: lw a0, 72(s1)
1541 ; RV32IZCMP-NEXT: sw a0, 20(sp) # 4-byte Folded Spill
1542 ; RV32IZCMP-NEXT: lw a0, 76(s1)
1543 ; RV32IZCMP-NEXT: sw a0, 16(sp) # 4-byte Folded Spill
1544 ; RV32IZCMP-NEXT: lw a0, 80(s1)
1545 ; RV32IZCMP-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
1546 ; RV32IZCMP-NEXT: lw a0, 84(s1)
1547 ; RV32IZCMP-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
1548 ; RV32IZCMP-NEXT: lw s4, 88(s1)
1549 ; RV32IZCMP-NEXT: lw s5, 92(s1)
1550 ; RV32IZCMP-NEXT: lw s6, 96(s1)
1551 ; RV32IZCMP-NEXT: lw s7, 100(s1)
1552 ; RV32IZCMP-NEXT: lw s8, 104(s1)
1553 ; RV32IZCMP-NEXT: lw s9, 108(s1)
1554 ; RV32IZCMP-NEXT: lw s10, 112(s1)
1555 ; RV32IZCMP-NEXT: lw s11, 116(s1)
1556 ; RV32IZCMP-NEXT: lw s2, 120(s1)
1557 ; RV32IZCMP-NEXT: lw s3, 124(s1)
1558 ; RV32IZCMP-NEXT: call callee
1559 ; RV32IZCMP-NEXT: sw s3, 124(s1)
1560 ; RV32IZCMP-NEXT: sw s2, 120(s1)
1561 ; RV32IZCMP-NEXT: sw s11, 116(s1)
1562 ; RV32IZCMP-NEXT: sw s10, 112(s1)
1563 ; RV32IZCMP-NEXT: sw s9, 108(s1)
1564 ; RV32IZCMP-NEXT: sw s8, 104(s1)
1565 ; RV32IZCMP-NEXT: sw s7, 100(s1)
1566 ; RV32IZCMP-NEXT: sw s6, 96(s1)
1567 ; RV32IZCMP-NEXT: sw s5, 92(s1)
1568 ; RV32IZCMP-NEXT: sw s4, 88(s1)
1569 ; RV32IZCMP-NEXT: lw a0, 8(sp) # 4-byte Folded Reload
1570 ; RV32IZCMP-NEXT: sw a0, 84(s1)
1571 ; RV32IZCMP-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
1572 ; RV32IZCMP-NEXT: sw a0, 80(s1)
1573 ; RV32IZCMP-NEXT: lw a0, 16(sp) # 4-byte Folded Reload
1574 ; RV32IZCMP-NEXT: sw a0, 76(s1)
1575 ; RV32IZCMP-NEXT: lw a0, 20(sp) # 4-byte Folded Reload
1576 ; RV32IZCMP-NEXT: sw a0, 72(s1)
1577 ; RV32IZCMP-NEXT: lw a0, 24(sp) # 4-byte Folded Reload
1578 ; RV32IZCMP-NEXT: sw a0, 68(s1)
1579 ; RV32IZCMP-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
1580 ; RV32IZCMP-NEXT: sw a0, 64(s1)
1581 ; RV32IZCMP-NEXT: lw a0, 32(sp) # 4-byte Folded Reload
1582 ; RV32IZCMP-NEXT: sw a0, 60(s1)
1583 ; RV32IZCMP-NEXT: lw a0, 36(sp) # 4-byte Folded Reload
1584 ; RV32IZCMP-NEXT: sw a0, 56(s1)
1585 ; RV32IZCMP-NEXT: lw a0, 40(sp) # 4-byte Folded Reload
1586 ; RV32IZCMP-NEXT: sw a0, 52(s1)
1587 ; RV32IZCMP-NEXT: lw a0, 44(sp) # 4-byte Folded Reload
1588 ; RV32IZCMP-NEXT: sw a0, 48(s1)
1589 ; RV32IZCMP-NEXT: lw a0, 48(sp) # 4-byte Folded Reload
1590 ; RV32IZCMP-NEXT: sw a0, 44(s1)
1591 ; RV32IZCMP-NEXT: lw a0, 52(sp) # 4-byte Folded Reload
1592 ; RV32IZCMP-NEXT: sw a0, 40(s1)
1593 ; RV32IZCMP-NEXT: lw a0, 56(sp) # 4-byte Folded Reload
1594 ; RV32IZCMP-NEXT: sw a0, 36(s1)
1595 ; RV32IZCMP-NEXT: lw a0, 60(sp) # 4-byte Folded Reload
1596 ; RV32IZCMP-NEXT: sw a0, 32(s1)
1597 ; RV32IZCMP-NEXT: lw a0, 64(sp) # 4-byte Folded Reload
1598 ; RV32IZCMP-NEXT: sw a0, 28(s1)
1599 ; RV32IZCMP-NEXT: lw a0, 68(sp) # 4-byte Folded Reload
1600 ; RV32IZCMP-NEXT: sw a0, 24(s1)
1601 ; RV32IZCMP-NEXT: lw a0, 72(sp) # 4-byte Folded Reload
1602 ; RV32IZCMP-NEXT: sw a0, 20(s1)
1603 ; RV32IZCMP-NEXT: lw a0, 76(sp) # 4-byte Folded Reload
1604 ; RV32IZCMP-NEXT: sw a0, 16(s1)
1605 ; RV32IZCMP-NEXT: lw a0, 80(sp) # 4-byte Folded Reload
1606 ; RV32IZCMP-NEXT: sw a0, %lo(var+12)(s0)
1607 ; RV32IZCMP-NEXT: lw a0, 84(sp) # 4-byte Folded Reload
1608 ; RV32IZCMP-NEXT: sw a0, %lo(var+8)(s0)
1609 ; RV32IZCMP-NEXT: lw a0, 88(sp) # 4-byte Folded Reload
1610 ; RV32IZCMP-NEXT: sw a0, %lo(var+4)(s0)
1611 ; RV32IZCMP-NEXT: lw a0, 92(sp) # 4-byte Folded Reload
1612 ; RV32IZCMP-NEXT: sw a0, %lo(var)(s0)
1613 ; RV32IZCMP-NEXT: addi sp, sp, 48
1614 ; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 112
1616 ; RV32IZCMP-WITH-FP-LABEL: caller:
1617 ; RV32IZCMP-WITH-FP: # %bb.0:
1618 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -144
1619 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 140(sp) # 4-byte Folded Spill
1620 ; RV32IZCMP-WITH-FP-NEXT: sw s0, 136(sp) # 4-byte Folded Spill
1621 ; RV32IZCMP-WITH-FP-NEXT: sw s1, 132(sp) # 4-byte Folded Spill
1622 ; RV32IZCMP-WITH-FP-NEXT: sw s2, 128(sp) # 4-byte Folded Spill
1623 ; RV32IZCMP-WITH-FP-NEXT: sw s3, 124(sp) # 4-byte Folded Spill
1624 ; RV32IZCMP-WITH-FP-NEXT: sw s4, 120(sp) # 4-byte Folded Spill
1625 ; RV32IZCMP-WITH-FP-NEXT: sw s5, 116(sp) # 4-byte Folded Spill
1626 ; RV32IZCMP-WITH-FP-NEXT: sw s6, 112(sp) # 4-byte Folded Spill
1627 ; RV32IZCMP-WITH-FP-NEXT: sw s7, 108(sp) # 4-byte Folded Spill
1628 ; RV32IZCMP-WITH-FP-NEXT: sw s8, 104(sp) # 4-byte Folded Spill
1629 ; RV32IZCMP-WITH-FP-NEXT: sw s9, 100(sp) # 4-byte Folded Spill
1630 ; RV32IZCMP-WITH-FP-NEXT: sw s10, 96(sp) # 4-byte Folded Spill
1631 ; RV32IZCMP-WITH-FP-NEXT: sw s11, 92(sp) # 4-byte Folded Spill
1632 ; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 144
1633 ; RV32IZCMP-WITH-FP-NEXT: lui s6, %hi(var)
1634 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(s6)
1635 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill
1636 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(s6)
1637 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill
1638 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(s6)
1639 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill
1640 ; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(s6)
1641 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill
1642 ; RV32IZCMP-WITH-FP-NEXT: addi s1, s6, %lo(var)
1643 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 16(s1)
1644 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill
1645 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 20(s1)
1646 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill
1647 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 24(s1)
1648 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill
1649 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 28(s1)
1650 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -84(s0) # 4-byte Folded Spill
1651 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 32(s1)
1652 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -88(s0) # 4-byte Folded Spill
1653 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 36(s1)
1654 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -92(s0) # 4-byte Folded Spill
1655 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 40(s1)
1656 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -96(s0) # 4-byte Folded Spill
1657 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 44(s1)
1658 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -100(s0) # 4-byte Folded Spill
1659 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 48(s1)
1660 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -104(s0) # 4-byte Folded Spill
1661 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 52(s1)
1662 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -108(s0) # 4-byte Folded Spill
1663 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 56(s1)
1664 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -112(s0) # 4-byte Folded Spill
1665 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 60(s1)
1666 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -116(s0) # 4-byte Folded Spill
1667 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 64(s1)
1668 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -120(s0) # 4-byte Folded Spill
1669 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 68(s1)
1670 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -124(s0) # 4-byte Folded Spill
1671 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 72(s1)
1672 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -128(s0) # 4-byte Folded Spill
1673 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 76(s1)
1674 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -132(s0) # 4-byte Folded Spill
1675 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 80(s1)
1676 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -136(s0) # 4-byte Folded Spill
1677 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 84(s1)
1678 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -140(s0) # 4-byte Folded Spill
1679 ; RV32IZCMP-WITH-FP-NEXT: lw a0, 88(s1)
1680 ; RV32IZCMP-WITH-FP-NEXT: sw a0, -144(s0) # 4-byte Folded Spill
1681 ; RV32IZCMP-WITH-FP-NEXT: lw s8, 92(s1)
1682 ; RV32IZCMP-WITH-FP-NEXT: lw s9, 96(s1)
1683 ; RV32IZCMP-WITH-FP-NEXT: lw s10, 100(s1)
1684 ; RV32IZCMP-WITH-FP-NEXT: lw s11, 104(s1)
1685 ; RV32IZCMP-WITH-FP-NEXT: lw s2, 108(s1)
1686 ; RV32IZCMP-WITH-FP-NEXT: lw s3, 112(s1)
1687 ; RV32IZCMP-WITH-FP-NEXT: lw s4, 116(s1)
1688 ; RV32IZCMP-WITH-FP-NEXT: lw s5, 120(s1)
1689 ; RV32IZCMP-WITH-FP-NEXT: lw s7, 124(s1)
1690 ; RV32IZCMP-WITH-FP-NEXT: call callee
1691 ; RV32IZCMP-WITH-FP-NEXT: sw s7, 124(s1)
1692 ; RV32IZCMP-WITH-FP-NEXT: sw s5, 120(s1)
1693 ; RV32IZCMP-WITH-FP-NEXT: sw s4, 116(s1)
1694 ; RV32IZCMP-WITH-FP-NEXT: sw s3, 112(s1)
1695 ; RV32IZCMP-WITH-FP-NEXT: sw s2, 108(s1)
1696 ; RV32IZCMP-WITH-FP-NEXT: sw s11, 104(s1)
1697 ; RV32IZCMP-WITH-FP-NEXT: sw s10, 100(s1)
1698 ; RV32IZCMP-WITH-FP-NEXT: sw s9, 96(s1)
1699 ; RV32IZCMP-WITH-FP-NEXT: sw s8, 92(s1)
1700 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -144(s0) # 4-byte Folded Reload
1701 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 88(s1)
1702 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -140(s0) # 4-byte Folded Reload
1703 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 84(s1)
1704 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -136(s0) # 4-byte Folded Reload
1705 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 80(s1)
1706 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -132(s0) # 4-byte Folded Reload
1707 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 76(s1)
1708 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -128(s0) # 4-byte Folded Reload
1709 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 72(s1)
1710 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -124(s0) # 4-byte Folded Reload
1711 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 68(s1)
1712 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -120(s0) # 4-byte Folded Reload
1713 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 64(s1)
1714 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -116(s0) # 4-byte Folded Reload
1715 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 60(s1)
1716 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -112(s0) # 4-byte Folded Reload
1717 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 56(s1)
1718 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -108(s0) # 4-byte Folded Reload
1719 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 52(s1)
1720 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -104(s0) # 4-byte Folded Reload
1721 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 48(s1)
1722 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -100(s0) # 4-byte Folded Reload
1723 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 44(s1)
1724 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -96(s0) # 4-byte Folded Reload
1725 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 40(s1)
1726 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -92(s0) # 4-byte Folded Reload
1727 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 36(s1)
1728 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -88(s0) # 4-byte Folded Reload
1729 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 32(s1)
1730 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -84(s0) # 4-byte Folded Reload
1731 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 28(s1)
1732 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload
1733 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 24(s1)
1734 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload
1735 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 20(s1)
1736 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload
1737 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 16(s1)
1738 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload
1739 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(s6)
1740 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload
1741 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(s6)
1742 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload
1743 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(s6)
1744 ; RV32IZCMP-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload
1745 ; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(s6)
1746 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 140(sp) # 4-byte Folded Reload
1747 ; RV32IZCMP-WITH-FP-NEXT: lw s0, 136(sp) # 4-byte Folded Reload
1748 ; RV32IZCMP-WITH-FP-NEXT: lw s1, 132(sp) # 4-byte Folded Reload
1749 ; RV32IZCMP-WITH-FP-NEXT: lw s2, 128(sp) # 4-byte Folded Reload
1750 ; RV32IZCMP-WITH-FP-NEXT: lw s3, 124(sp) # 4-byte Folded Reload
1751 ; RV32IZCMP-WITH-FP-NEXT: lw s4, 120(sp) # 4-byte Folded Reload
1752 ; RV32IZCMP-WITH-FP-NEXT: lw s5, 116(sp) # 4-byte Folded Reload
1753 ; RV32IZCMP-WITH-FP-NEXT: lw s6, 112(sp) # 4-byte Folded Reload
1754 ; RV32IZCMP-WITH-FP-NEXT: lw s7, 108(sp) # 4-byte Folded Reload
1755 ; RV32IZCMP-WITH-FP-NEXT: lw s8, 104(sp) # 4-byte Folded Reload
1756 ; RV32IZCMP-WITH-FP-NEXT: lw s9, 100(sp) # 4-byte Folded Reload
1757 ; RV32IZCMP-WITH-FP-NEXT: lw s10, 96(sp) # 4-byte Folded Reload
1758 ; RV32IZCMP-WITH-FP-NEXT: lw s11, 92(sp) # 4-byte Folded Reload
1759 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 144
1760 ; RV32IZCMP-WITH-FP-NEXT: ret
1762 ; RV64I-LABEL: caller:
1764 ; RV64I-NEXT: addi sp, sp, -288
1765 ; RV64I-NEXT: sd ra, 280(sp) # 8-byte Folded Spill
1766 ; RV64I-NEXT: sd s0, 272(sp) # 8-byte Folded Spill
1767 ; RV64I-NEXT: sd s1, 264(sp) # 8-byte Folded Spill
1768 ; RV64I-NEXT: sd s2, 256(sp) # 8-byte Folded Spill
1769 ; RV64I-NEXT: sd s3, 248(sp) # 8-byte Folded Spill
1770 ; RV64I-NEXT: sd s4, 240(sp) # 8-byte Folded Spill
1771 ; RV64I-NEXT: sd s5, 232(sp) # 8-byte Folded Spill
1772 ; RV64I-NEXT: sd s6, 224(sp) # 8-byte Folded Spill
1773 ; RV64I-NEXT: sd s7, 216(sp) # 8-byte Folded Spill
1774 ; RV64I-NEXT: sd s8, 208(sp) # 8-byte Folded Spill
1775 ; RV64I-NEXT: sd s9, 200(sp) # 8-byte Folded Spill
1776 ; RV64I-NEXT: sd s10, 192(sp) # 8-byte Folded Spill
1777 ; RV64I-NEXT: sd s11, 184(sp) # 8-byte Folded Spill
1778 ; RV64I-NEXT: lui s0, %hi(var)
1779 ; RV64I-NEXT: lw a0, %lo(var)(s0)
1780 ; RV64I-NEXT: sd a0, 176(sp) # 8-byte Folded Spill
1781 ; RV64I-NEXT: lw a0, %lo(var+4)(s0)
1782 ; RV64I-NEXT: sd a0, 168(sp) # 8-byte Folded Spill
1783 ; RV64I-NEXT: lw a0, %lo(var+8)(s0)
1784 ; RV64I-NEXT: sd a0, 160(sp) # 8-byte Folded Spill
1785 ; RV64I-NEXT: lw a0, %lo(var+12)(s0)
1786 ; RV64I-NEXT: sd a0, 152(sp) # 8-byte Folded Spill
1787 ; RV64I-NEXT: addi s5, s0, %lo(var)
1788 ; RV64I-NEXT: lw a0, 16(s5)
1789 ; RV64I-NEXT: sd a0, 144(sp) # 8-byte Folded Spill
1790 ; RV64I-NEXT: lw a0, 20(s5)
1791 ; RV64I-NEXT: sd a0, 136(sp) # 8-byte Folded Spill
1792 ; RV64I-NEXT: lw a0, 24(s5)
1793 ; RV64I-NEXT: sd a0, 128(sp) # 8-byte Folded Spill
1794 ; RV64I-NEXT: lw a0, 28(s5)
1795 ; RV64I-NEXT: sd a0, 120(sp) # 8-byte Folded Spill
1796 ; RV64I-NEXT: lw a0, 32(s5)
1797 ; RV64I-NEXT: sd a0, 112(sp) # 8-byte Folded Spill
1798 ; RV64I-NEXT: lw a0, 36(s5)
1799 ; RV64I-NEXT: sd a0, 104(sp) # 8-byte Folded Spill
1800 ; RV64I-NEXT: lw a0, 40(s5)
1801 ; RV64I-NEXT: sd a0, 96(sp) # 8-byte Folded Spill
1802 ; RV64I-NEXT: lw a0, 44(s5)
1803 ; RV64I-NEXT: sd a0, 88(sp) # 8-byte Folded Spill
1804 ; RV64I-NEXT: lw a0, 48(s5)
1805 ; RV64I-NEXT: sd a0, 80(sp) # 8-byte Folded Spill
1806 ; RV64I-NEXT: lw a0, 52(s5)
1807 ; RV64I-NEXT: sd a0, 72(sp) # 8-byte Folded Spill
1808 ; RV64I-NEXT: lw a0, 56(s5)
1809 ; RV64I-NEXT: sd a0, 64(sp) # 8-byte Folded Spill
1810 ; RV64I-NEXT: lw a0, 60(s5)
1811 ; RV64I-NEXT: sd a0, 56(sp) # 8-byte Folded Spill
1812 ; RV64I-NEXT: lw a0, 64(s5)
1813 ; RV64I-NEXT: sd a0, 48(sp) # 8-byte Folded Spill
1814 ; RV64I-NEXT: lw a0, 68(s5)
1815 ; RV64I-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
1816 ; RV64I-NEXT: lw a0, 72(s5)
1817 ; RV64I-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
1818 ; RV64I-NEXT: lw a0, 76(s5)
1819 ; RV64I-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
1820 ; RV64I-NEXT: lw a0, 80(s5)
1821 ; RV64I-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
1822 ; RV64I-NEXT: lw a0, 84(s5)
1823 ; RV64I-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
1824 ; RV64I-NEXT: lw s3, 88(s5)
1825 ; RV64I-NEXT: lw s4, 92(s5)
1826 ; RV64I-NEXT: lw s6, 96(s5)
1827 ; RV64I-NEXT: lw s7, 100(s5)
1828 ; RV64I-NEXT: lw s8, 104(s5)
1829 ; RV64I-NEXT: lw s9, 108(s5)
1830 ; RV64I-NEXT: lw s10, 112(s5)
1831 ; RV64I-NEXT: lw s11, 116(s5)
1832 ; RV64I-NEXT: lw s1, 120(s5)
1833 ; RV64I-NEXT: lw s2, 124(s5)
1834 ; RV64I-NEXT: call callee
1835 ; RV64I-NEXT: sw s2, 124(s5)
1836 ; RV64I-NEXT: sw s1, 120(s5)
1837 ; RV64I-NEXT: sw s11, 116(s5)
1838 ; RV64I-NEXT: sw s10, 112(s5)
1839 ; RV64I-NEXT: sw s9, 108(s5)
1840 ; RV64I-NEXT: sw s8, 104(s5)
1841 ; RV64I-NEXT: sw s7, 100(s5)
1842 ; RV64I-NEXT: sw s6, 96(s5)
1843 ; RV64I-NEXT: sw s4, 92(s5)
1844 ; RV64I-NEXT: sw s3, 88(s5)
1845 ; RV64I-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
1846 ; RV64I-NEXT: sw a0, 84(s5)
1847 ; RV64I-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
1848 ; RV64I-NEXT: sw a0, 80(s5)
1849 ; RV64I-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
1850 ; RV64I-NEXT: sw a0, 76(s5)
1851 ; RV64I-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
1852 ; RV64I-NEXT: sw a0, 72(s5)
1853 ; RV64I-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
1854 ; RV64I-NEXT: sw a0, 68(s5)
1855 ; RV64I-NEXT: ld a0, 48(sp) # 8-byte Folded Reload
1856 ; RV64I-NEXT: sw a0, 64(s5)
1857 ; RV64I-NEXT: ld a0, 56(sp) # 8-byte Folded Reload
1858 ; RV64I-NEXT: sw a0, 60(s5)
1859 ; RV64I-NEXT: ld a0, 64(sp) # 8-byte Folded Reload
1860 ; RV64I-NEXT: sw a0, 56(s5)
1861 ; RV64I-NEXT: ld a0, 72(sp) # 8-byte Folded Reload
1862 ; RV64I-NEXT: sw a0, 52(s5)
1863 ; RV64I-NEXT: ld a0, 80(sp) # 8-byte Folded Reload
1864 ; RV64I-NEXT: sw a0, 48(s5)
1865 ; RV64I-NEXT: ld a0, 88(sp) # 8-byte Folded Reload
1866 ; RV64I-NEXT: sw a0, 44(s5)
1867 ; RV64I-NEXT: ld a0, 96(sp) # 8-byte Folded Reload
1868 ; RV64I-NEXT: sw a0, 40(s5)
1869 ; RV64I-NEXT: ld a0, 104(sp) # 8-byte Folded Reload
1870 ; RV64I-NEXT: sw a0, 36(s5)
1871 ; RV64I-NEXT: ld a0, 112(sp) # 8-byte Folded Reload
1872 ; RV64I-NEXT: sw a0, 32(s5)
1873 ; RV64I-NEXT: ld a0, 120(sp) # 8-byte Folded Reload
1874 ; RV64I-NEXT: sw a0, 28(s5)
1875 ; RV64I-NEXT: ld a0, 128(sp) # 8-byte Folded Reload
1876 ; RV64I-NEXT: sw a0, 24(s5)
1877 ; RV64I-NEXT: ld a0, 136(sp) # 8-byte Folded Reload
1878 ; RV64I-NEXT: sw a0, 20(s5)
1879 ; RV64I-NEXT: ld a0, 144(sp) # 8-byte Folded Reload
1880 ; RV64I-NEXT: sw a0, 16(s5)
1881 ; RV64I-NEXT: ld a0, 152(sp) # 8-byte Folded Reload
1882 ; RV64I-NEXT: sw a0, %lo(var+12)(s0)
1883 ; RV64I-NEXT: ld a0, 160(sp) # 8-byte Folded Reload
1884 ; RV64I-NEXT: sw a0, %lo(var+8)(s0)
1885 ; RV64I-NEXT: ld a0, 168(sp) # 8-byte Folded Reload
1886 ; RV64I-NEXT: sw a0, %lo(var+4)(s0)
1887 ; RV64I-NEXT: ld a0, 176(sp) # 8-byte Folded Reload
1888 ; RV64I-NEXT: sw a0, %lo(var)(s0)
1889 ; RV64I-NEXT: ld ra, 280(sp) # 8-byte Folded Reload
1890 ; RV64I-NEXT: ld s0, 272(sp) # 8-byte Folded Reload
1891 ; RV64I-NEXT: ld s1, 264(sp) # 8-byte Folded Reload
1892 ; RV64I-NEXT: ld s2, 256(sp) # 8-byte Folded Reload
1893 ; RV64I-NEXT: ld s3, 248(sp) # 8-byte Folded Reload
1894 ; RV64I-NEXT: ld s4, 240(sp) # 8-byte Folded Reload
1895 ; RV64I-NEXT: ld s5, 232(sp) # 8-byte Folded Reload
1896 ; RV64I-NEXT: ld s6, 224(sp) # 8-byte Folded Reload
1897 ; RV64I-NEXT: ld s7, 216(sp) # 8-byte Folded Reload
1898 ; RV64I-NEXT: ld s8, 208(sp) # 8-byte Folded Reload
1899 ; RV64I-NEXT: ld s9, 200(sp) # 8-byte Folded Reload
1900 ; RV64I-NEXT: ld s10, 192(sp) # 8-byte Folded Reload
1901 ; RV64I-NEXT: ld s11, 184(sp) # 8-byte Folded Reload
1902 ; RV64I-NEXT: addi sp, sp, 288
1905 ; RV64I-LP64E-LABEL: caller:
1906 ; RV64I-LP64E: # %bb.0:
1907 ; RV64I-LP64E-NEXT: addi sp, sp, -272
1908 ; RV64I-LP64E-NEXT: sd ra, 264(sp) # 8-byte Folded Spill
1909 ; RV64I-LP64E-NEXT: sd s0, 256(sp) # 8-byte Folded Spill
1910 ; RV64I-LP64E-NEXT: sd s1, 248(sp) # 8-byte Folded Spill
1911 ; RV64I-LP64E-NEXT: lui a0, %hi(var)
1912 ; RV64I-LP64E-NEXT: lw a1, %lo(var)(a0)
1913 ; RV64I-LP64E-NEXT: sd a1, 240(sp) # 8-byte Folded Spill
1914 ; RV64I-LP64E-NEXT: lw a1, %lo(var+4)(a0)
1915 ; RV64I-LP64E-NEXT: sd a1, 232(sp) # 8-byte Folded Spill
1916 ; RV64I-LP64E-NEXT: lw a1, %lo(var+8)(a0)
1917 ; RV64I-LP64E-NEXT: sd a1, 224(sp) # 8-byte Folded Spill
1918 ; RV64I-LP64E-NEXT: lw a1, %lo(var+12)(a0)
1919 ; RV64I-LP64E-NEXT: sd a1, 216(sp) # 8-byte Folded Spill
1920 ; RV64I-LP64E-NEXT: addi s1, a0, %lo(var)
1921 ; RV64I-LP64E-NEXT: lw a0, 16(s1)
1922 ; RV64I-LP64E-NEXT: sd a0, 208(sp) # 8-byte Folded Spill
1923 ; RV64I-LP64E-NEXT: lw a0, 20(s1)
1924 ; RV64I-LP64E-NEXT: sd a0, 200(sp) # 8-byte Folded Spill
1925 ; RV64I-LP64E-NEXT: lw a0, 24(s1)
1926 ; RV64I-LP64E-NEXT: sd a0, 192(sp) # 8-byte Folded Spill
1927 ; RV64I-LP64E-NEXT: lw a0, 28(s1)
1928 ; RV64I-LP64E-NEXT: sd a0, 184(sp) # 8-byte Folded Spill
1929 ; RV64I-LP64E-NEXT: lw a0, 32(s1)
1930 ; RV64I-LP64E-NEXT: sd a0, 176(sp) # 8-byte Folded Spill
1931 ; RV64I-LP64E-NEXT: lw a0, 36(s1)
1932 ; RV64I-LP64E-NEXT: sd a0, 168(sp) # 8-byte Folded Spill
1933 ; RV64I-LP64E-NEXT: lw a0, 40(s1)
1934 ; RV64I-LP64E-NEXT: sd a0, 160(sp) # 8-byte Folded Spill
1935 ; RV64I-LP64E-NEXT: lw a0, 44(s1)
1936 ; RV64I-LP64E-NEXT: sd a0, 152(sp) # 8-byte Folded Spill
1937 ; RV64I-LP64E-NEXT: lw a0, 48(s1)
1938 ; RV64I-LP64E-NEXT: sd a0, 144(sp) # 8-byte Folded Spill
1939 ; RV64I-LP64E-NEXT: lw a0, 52(s1)
1940 ; RV64I-LP64E-NEXT: sd a0, 136(sp) # 8-byte Folded Spill
1941 ; RV64I-LP64E-NEXT: lw a0, 56(s1)
1942 ; RV64I-LP64E-NEXT: sd a0, 128(sp) # 8-byte Folded Spill
1943 ; RV64I-LP64E-NEXT: lw a0, 60(s1)
1944 ; RV64I-LP64E-NEXT: sd a0, 120(sp) # 8-byte Folded Spill
1945 ; RV64I-LP64E-NEXT: lw a0, 64(s1)
1946 ; RV64I-LP64E-NEXT: sd a0, 112(sp) # 8-byte Folded Spill
1947 ; RV64I-LP64E-NEXT: lw a0, 68(s1)
1948 ; RV64I-LP64E-NEXT: sd a0, 104(sp) # 8-byte Folded Spill
1949 ; RV64I-LP64E-NEXT: lw a0, 72(s1)
1950 ; RV64I-LP64E-NEXT: sd a0, 96(sp) # 8-byte Folded Spill
1951 ; RV64I-LP64E-NEXT: lw a0, 76(s1)
1952 ; RV64I-LP64E-NEXT: sd a0, 88(sp) # 8-byte Folded Spill
1953 ; RV64I-LP64E-NEXT: lw a0, 80(s1)
1954 ; RV64I-LP64E-NEXT: sd a0, 80(sp) # 8-byte Folded Spill
1955 ; RV64I-LP64E-NEXT: lw a0, 84(s1)
1956 ; RV64I-LP64E-NEXT: sd a0, 72(sp) # 8-byte Folded Spill
1957 ; RV64I-LP64E-NEXT: lw a0, 88(s1)
1958 ; RV64I-LP64E-NEXT: sd a0, 64(sp) # 8-byte Folded Spill
1959 ; RV64I-LP64E-NEXT: lw a0, 92(s1)
1960 ; RV64I-LP64E-NEXT: sd a0, 56(sp) # 8-byte Folded Spill
1961 ; RV64I-LP64E-NEXT: lw a0, 96(s1)
1962 ; RV64I-LP64E-NEXT: sd a0, 48(sp) # 8-byte Folded Spill
1963 ; RV64I-LP64E-NEXT: lw a0, 100(s1)
1964 ; RV64I-LP64E-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
1965 ; RV64I-LP64E-NEXT: lw a0, 104(s1)
1966 ; RV64I-LP64E-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
1967 ; RV64I-LP64E-NEXT: lw a0, 108(s1)
1968 ; RV64I-LP64E-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
1969 ; RV64I-LP64E-NEXT: lw a0, 112(s1)
1970 ; RV64I-LP64E-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
1971 ; RV64I-LP64E-NEXT: lw a0, 116(s1)
1972 ; RV64I-LP64E-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
1973 ; RV64I-LP64E-NEXT: lw a0, 120(s1)
1974 ; RV64I-LP64E-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
1975 ; RV64I-LP64E-NEXT: lw s0, 124(s1)
1976 ; RV64I-LP64E-NEXT: call callee
1977 ; RV64I-LP64E-NEXT: sw s0, 124(s1)
1978 ; RV64I-LP64E-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
1979 ; RV64I-LP64E-NEXT: sw a0, 120(s1)
1980 ; RV64I-LP64E-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
1981 ; RV64I-LP64E-NEXT: sw a0, 116(s1)
1982 ; RV64I-LP64E-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
1983 ; RV64I-LP64E-NEXT: sw a0, 112(s1)
1984 ; RV64I-LP64E-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
1985 ; RV64I-LP64E-NEXT: sw a0, 108(s1)
1986 ; RV64I-LP64E-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
1987 ; RV64I-LP64E-NEXT: sw a0, 104(s1)
1988 ; RV64I-LP64E-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
1989 ; RV64I-LP64E-NEXT: sw a0, 100(s1)
1990 ; RV64I-LP64E-NEXT: ld a0, 48(sp) # 8-byte Folded Reload
1991 ; RV64I-LP64E-NEXT: sw a0, 96(s1)
1992 ; RV64I-LP64E-NEXT: ld a0, 56(sp) # 8-byte Folded Reload
1993 ; RV64I-LP64E-NEXT: sw a0, 92(s1)
1994 ; RV64I-LP64E-NEXT: ld a0, 64(sp) # 8-byte Folded Reload
1995 ; RV64I-LP64E-NEXT: sw a0, 88(s1)
1996 ; RV64I-LP64E-NEXT: ld a0, 72(sp) # 8-byte Folded Reload
1997 ; RV64I-LP64E-NEXT: sw a0, 84(s1)
1998 ; RV64I-LP64E-NEXT: ld a0, 80(sp) # 8-byte Folded Reload
1999 ; RV64I-LP64E-NEXT: sw a0, 80(s1)
2000 ; RV64I-LP64E-NEXT: ld a0, 88(sp) # 8-byte Folded Reload
2001 ; RV64I-LP64E-NEXT: sw a0, 76(s1)
2002 ; RV64I-LP64E-NEXT: ld a0, 96(sp) # 8-byte Folded Reload
2003 ; RV64I-LP64E-NEXT: sw a0, 72(s1)
2004 ; RV64I-LP64E-NEXT: ld a0, 104(sp) # 8-byte Folded Reload
2005 ; RV64I-LP64E-NEXT: sw a0, 68(s1)
2006 ; RV64I-LP64E-NEXT: ld a0, 112(sp) # 8-byte Folded Reload
2007 ; RV64I-LP64E-NEXT: sw a0, 64(s1)
2008 ; RV64I-LP64E-NEXT: ld a0, 120(sp) # 8-byte Folded Reload
2009 ; RV64I-LP64E-NEXT: sw a0, 60(s1)
2010 ; RV64I-LP64E-NEXT: ld a0, 128(sp) # 8-byte Folded Reload
2011 ; RV64I-LP64E-NEXT: sw a0, 56(s1)
2012 ; RV64I-LP64E-NEXT: ld a0, 136(sp) # 8-byte Folded Reload
2013 ; RV64I-LP64E-NEXT: sw a0, 52(s1)
2014 ; RV64I-LP64E-NEXT: ld a0, 144(sp) # 8-byte Folded Reload
2015 ; RV64I-LP64E-NEXT: sw a0, 48(s1)
2016 ; RV64I-LP64E-NEXT: ld a0, 152(sp) # 8-byte Folded Reload
2017 ; RV64I-LP64E-NEXT: sw a0, 44(s1)
2018 ; RV64I-LP64E-NEXT: ld a0, 160(sp) # 8-byte Folded Reload
2019 ; RV64I-LP64E-NEXT: sw a0, 40(s1)
2020 ; RV64I-LP64E-NEXT: ld a0, 168(sp) # 8-byte Folded Reload
2021 ; RV64I-LP64E-NEXT: sw a0, 36(s1)
2022 ; RV64I-LP64E-NEXT: ld a0, 176(sp) # 8-byte Folded Reload
2023 ; RV64I-LP64E-NEXT: sw a0, 32(s1)
2024 ; RV64I-LP64E-NEXT: ld a0, 184(sp) # 8-byte Folded Reload
2025 ; RV64I-LP64E-NEXT: sw a0, 28(s1)
2026 ; RV64I-LP64E-NEXT: ld a0, 192(sp) # 8-byte Folded Reload
2027 ; RV64I-LP64E-NEXT: sw a0, 24(s1)
2028 ; RV64I-LP64E-NEXT: ld a0, 200(sp) # 8-byte Folded Reload
2029 ; RV64I-LP64E-NEXT: sw a0, 20(s1)
2030 ; RV64I-LP64E-NEXT: ld a0, 208(sp) # 8-byte Folded Reload
2031 ; RV64I-LP64E-NEXT: sw a0, 16(s1)
2032 ; RV64I-LP64E-NEXT: lui a1, %hi(var)
2033 ; RV64I-LP64E-NEXT: ld a0, 216(sp) # 8-byte Folded Reload
2034 ; RV64I-LP64E-NEXT: sw a0, %lo(var+12)(a1)
2035 ; RV64I-LP64E-NEXT: ld a0, 224(sp) # 8-byte Folded Reload
2036 ; RV64I-LP64E-NEXT: sw a0, %lo(var+8)(a1)
2037 ; RV64I-LP64E-NEXT: ld a0, 232(sp) # 8-byte Folded Reload
2038 ; RV64I-LP64E-NEXT: sw a0, %lo(var+4)(a1)
2039 ; RV64I-LP64E-NEXT: ld a0, 240(sp) # 8-byte Folded Reload
2040 ; RV64I-LP64E-NEXT: sw a0, %lo(var)(a1)
2041 ; RV64I-LP64E-NEXT: ld ra, 264(sp) # 8-byte Folded Reload
2042 ; RV64I-LP64E-NEXT: ld s0, 256(sp) # 8-byte Folded Reload
2043 ; RV64I-LP64E-NEXT: ld s1, 248(sp) # 8-byte Folded Reload
2044 ; RV64I-LP64E-NEXT: addi sp, sp, 272
2045 ; RV64I-LP64E-NEXT: ret
2047 ; RV64I-WITH-FP-LABEL: caller:
2048 ; RV64I-WITH-FP: # %bb.0:
2049 ; RV64I-WITH-FP-NEXT: addi sp, sp, -288
2050 ; RV64I-WITH-FP-NEXT: sd ra, 280(sp) # 8-byte Folded Spill
2051 ; RV64I-WITH-FP-NEXT: sd s0, 272(sp) # 8-byte Folded Spill
2052 ; RV64I-WITH-FP-NEXT: sd s1, 264(sp) # 8-byte Folded Spill
2053 ; RV64I-WITH-FP-NEXT: sd s2, 256(sp) # 8-byte Folded Spill
2054 ; RV64I-WITH-FP-NEXT: sd s3, 248(sp) # 8-byte Folded Spill
2055 ; RV64I-WITH-FP-NEXT: sd s4, 240(sp) # 8-byte Folded Spill
2056 ; RV64I-WITH-FP-NEXT: sd s5, 232(sp) # 8-byte Folded Spill
2057 ; RV64I-WITH-FP-NEXT: sd s6, 224(sp) # 8-byte Folded Spill
2058 ; RV64I-WITH-FP-NEXT: sd s7, 216(sp) # 8-byte Folded Spill
2059 ; RV64I-WITH-FP-NEXT: sd s8, 208(sp) # 8-byte Folded Spill
2060 ; RV64I-WITH-FP-NEXT: sd s9, 200(sp) # 8-byte Folded Spill
2061 ; RV64I-WITH-FP-NEXT: sd s10, 192(sp) # 8-byte Folded Spill
2062 ; RV64I-WITH-FP-NEXT: sd s11, 184(sp) # 8-byte Folded Spill
2063 ; RV64I-WITH-FP-NEXT: addi s0, sp, 288
2064 ; RV64I-WITH-FP-NEXT: lui s1, %hi(var)
2065 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var)(s1)
2066 ; RV64I-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill
2067 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+4)(s1)
2068 ; RV64I-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill
2069 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+8)(s1)
2070 ; RV64I-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill
2071 ; RV64I-WITH-FP-NEXT: lw a0, %lo(var+12)(s1)
2072 ; RV64I-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill
2073 ; RV64I-WITH-FP-NEXT: addi s6, s1, %lo(var)
2074 ; RV64I-WITH-FP-NEXT: lw a0, 16(s6)
2075 ; RV64I-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill
2076 ; RV64I-WITH-FP-NEXT: lw a0, 20(s6)
2077 ; RV64I-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill
2078 ; RV64I-WITH-FP-NEXT: lw a0, 24(s6)
2079 ; RV64I-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill
2080 ; RV64I-WITH-FP-NEXT: lw a0, 28(s6)
2081 ; RV64I-WITH-FP-NEXT: sd a0, -168(s0) # 8-byte Folded Spill
2082 ; RV64I-WITH-FP-NEXT: lw a0, 32(s6)
2083 ; RV64I-WITH-FP-NEXT: sd a0, -176(s0) # 8-byte Folded Spill
2084 ; RV64I-WITH-FP-NEXT: lw a0, 36(s6)
2085 ; RV64I-WITH-FP-NEXT: sd a0, -184(s0) # 8-byte Folded Spill
2086 ; RV64I-WITH-FP-NEXT: lw a0, 40(s6)
2087 ; RV64I-WITH-FP-NEXT: sd a0, -192(s0) # 8-byte Folded Spill
2088 ; RV64I-WITH-FP-NEXT: lw a0, 44(s6)
2089 ; RV64I-WITH-FP-NEXT: sd a0, -200(s0) # 8-byte Folded Spill
2090 ; RV64I-WITH-FP-NEXT: lw a0, 48(s6)
2091 ; RV64I-WITH-FP-NEXT: sd a0, -208(s0) # 8-byte Folded Spill
2092 ; RV64I-WITH-FP-NEXT: lw a0, 52(s6)
2093 ; RV64I-WITH-FP-NEXT: sd a0, -216(s0) # 8-byte Folded Spill
2094 ; RV64I-WITH-FP-NEXT: lw a0, 56(s6)
2095 ; RV64I-WITH-FP-NEXT: sd a0, -224(s0) # 8-byte Folded Spill
2096 ; RV64I-WITH-FP-NEXT: lw a0, 60(s6)
2097 ; RV64I-WITH-FP-NEXT: sd a0, -232(s0) # 8-byte Folded Spill
2098 ; RV64I-WITH-FP-NEXT: lw a0, 64(s6)
2099 ; RV64I-WITH-FP-NEXT: sd a0, -240(s0) # 8-byte Folded Spill
2100 ; RV64I-WITH-FP-NEXT: lw a0, 68(s6)
2101 ; RV64I-WITH-FP-NEXT: sd a0, -248(s0) # 8-byte Folded Spill
2102 ; RV64I-WITH-FP-NEXT: lw a0, 72(s6)
2103 ; RV64I-WITH-FP-NEXT: sd a0, -256(s0) # 8-byte Folded Spill
2104 ; RV64I-WITH-FP-NEXT: lw a0, 76(s6)
2105 ; RV64I-WITH-FP-NEXT: sd a0, -264(s0) # 8-byte Folded Spill
2106 ; RV64I-WITH-FP-NEXT: lw a0, 80(s6)
2107 ; RV64I-WITH-FP-NEXT: sd a0, -272(s0) # 8-byte Folded Spill
2108 ; RV64I-WITH-FP-NEXT: lw a0, 84(s6)
2109 ; RV64I-WITH-FP-NEXT: sd a0, -280(s0) # 8-byte Folded Spill
2110 ; RV64I-WITH-FP-NEXT: lw a0, 88(s6)
2111 ; RV64I-WITH-FP-NEXT: sd a0, -288(s0) # 8-byte Folded Spill
2112 ; RV64I-WITH-FP-NEXT: lw s8, 92(s6)
2113 ; RV64I-WITH-FP-NEXT: lw s9, 96(s6)
2114 ; RV64I-WITH-FP-NEXT: lw s10, 100(s6)
2115 ; RV64I-WITH-FP-NEXT: lw s11, 104(s6)
2116 ; RV64I-WITH-FP-NEXT: lw s2, 108(s6)
2117 ; RV64I-WITH-FP-NEXT: lw s3, 112(s6)
2118 ; RV64I-WITH-FP-NEXT: lw s4, 116(s6)
2119 ; RV64I-WITH-FP-NEXT: lw s5, 120(s6)
2120 ; RV64I-WITH-FP-NEXT: lw s7, 124(s6)
2121 ; RV64I-WITH-FP-NEXT: call callee
2122 ; RV64I-WITH-FP-NEXT: sw s7, 124(s6)
2123 ; RV64I-WITH-FP-NEXT: sw s5, 120(s6)
2124 ; RV64I-WITH-FP-NEXT: sw s4, 116(s6)
2125 ; RV64I-WITH-FP-NEXT: sw s3, 112(s6)
2126 ; RV64I-WITH-FP-NEXT: sw s2, 108(s6)
2127 ; RV64I-WITH-FP-NEXT: sw s11, 104(s6)
2128 ; RV64I-WITH-FP-NEXT: sw s10, 100(s6)
2129 ; RV64I-WITH-FP-NEXT: sw s9, 96(s6)
2130 ; RV64I-WITH-FP-NEXT: sw s8, 92(s6)
2131 ; RV64I-WITH-FP-NEXT: ld a0, -288(s0) # 8-byte Folded Reload
2132 ; RV64I-WITH-FP-NEXT: sw a0, 88(s6)
2133 ; RV64I-WITH-FP-NEXT: ld a0, -280(s0) # 8-byte Folded Reload
2134 ; RV64I-WITH-FP-NEXT: sw a0, 84(s6)
2135 ; RV64I-WITH-FP-NEXT: ld a0, -272(s0) # 8-byte Folded Reload
2136 ; RV64I-WITH-FP-NEXT: sw a0, 80(s6)
2137 ; RV64I-WITH-FP-NEXT: ld a0, -264(s0) # 8-byte Folded Reload
2138 ; RV64I-WITH-FP-NEXT: sw a0, 76(s6)
2139 ; RV64I-WITH-FP-NEXT: ld a0, -256(s0) # 8-byte Folded Reload
2140 ; RV64I-WITH-FP-NEXT: sw a0, 72(s6)
2141 ; RV64I-WITH-FP-NEXT: ld a0, -248(s0) # 8-byte Folded Reload
2142 ; RV64I-WITH-FP-NEXT: sw a0, 68(s6)
2143 ; RV64I-WITH-FP-NEXT: ld a0, -240(s0) # 8-byte Folded Reload
2144 ; RV64I-WITH-FP-NEXT: sw a0, 64(s6)
2145 ; RV64I-WITH-FP-NEXT: ld a0, -232(s0) # 8-byte Folded Reload
2146 ; RV64I-WITH-FP-NEXT: sw a0, 60(s6)
2147 ; RV64I-WITH-FP-NEXT: ld a0, -224(s0) # 8-byte Folded Reload
2148 ; RV64I-WITH-FP-NEXT: sw a0, 56(s6)
2149 ; RV64I-WITH-FP-NEXT: ld a0, -216(s0) # 8-byte Folded Reload
2150 ; RV64I-WITH-FP-NEXT: sw a0, 52(s6)
2151 ; RV64I-WITH-FP-NEXT: ld a0, -208(s0) # 8-byte Folded Reload
2152 ; RV64I-WITH-FP-NEXT: sw a0, 48(s6)
2153 ; RV64I-WITH-FP-NEXT: ld a0, -200(s0) # 8-byte Folded Reload
2154 ; RV64I-WITH-FP-NEXT: sw a0, 44(s6)
2155 ; RV64I-WITH-FP-NEXT: ld a0, -192(s0) # 8-byte Folded Reload
2156 ; RV64I-WITH-FP-NEXT: sw a0, 40(s6)
2157 ; RV64I-WITH-FP-NEXT: ld a0, -184(s0) # 8-byte Folded Reload
2158 ; RV64I-WITH-FP-NEXT: sw a0, 36(s6)
2159 ; RV64I-WITH-FP-NEXT: ld a0, -176(s0) # 8-byte Folded Reload
2160 ; RV64I-WITH-FP-NEXT: sw a0, 32(s6)
2161 ; RV64I-WITH-FP-NEXT: ld a0, -168(s0) # 8-byte Folded Reload
2162 ; RV64I-WITH-FP-NEXT: sw a0, 28(s6)
2163 ; RV64I-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload
2164 ; RV64I-WITH-FP-NEXT: sw a0, 24(s6)
2165 ; RV64I-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload
2166 ; RV64I-WITH-FP-NEXT: sw a0, 20(s6)
2167 ; RV64I-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload
2168 ; RV64I-WITH-FP-NEXT: sw a0, 16(s6)
2169 ; RV64I-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload
2170 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+12)(s1)
2171 ; RV64I-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload
2172 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+8)(s1)
2173 ; RV64I-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload
2174 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var+4)(s1)
2175 ; RV64I-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload
2176 ; RV64I-WITH-FP-NEXT: sw a0, %lo(var)(s1)
2177 ; RV64I-WITH-FP-NEXT: ld ra, 280(sp) # 8-byte Folded Reload
2178 ; RV64I-WITH-FP-NEXT: ld s0, 272(sp) # 8-byte Folded Reload
2179 ; RV64I-WITH-FP-NEXT: ld s1, 264(sp) # 8-byte Folded Reload
2180 ; RV64I-WITH-FP-NEXT: ld s2, 256(sp) # 8-byte Folded Reload
2181 ; RV64I-WITH-FP-NEXT: ld s3, 248(sp) # 8-byte Folded Reload
2182 ; RV64I-WITH-FP-NEXT: ld s4, 240(sp) # 8-byte Folded Reload
2183 ; RV64I-WITH-FP-NEXT: ld s5, 232(sp) # 8-byte Folded Reload
2184 ; RV64I-WITH-FP-NEXT: ld s6, 224(sp) # 8-byte Folded Reload
2185 ; RV64I-WITH-FP-NEXT: ld s7, 216(sp) # 8-byte Folded Reload
2186 ; RV64I-WITH-FP-NEXT: ld s8, 208(sp) # 8-byte Folded Reload
2187 ; RV64I-WITH-FP-NEXT: ld s9, 200(sp) # 8-byte Folded Reload
2188 ; RV64I-WITH-FP-NEXT: ld s10, 192(sp) # 8-byte Folded Reload
2189 ; RV64I-WITH-FP-NEXT: ld s11, 184(sp) # 8-byte Folded Reload
2190 ; RV64I-WITH-FP-NEXT: addi sp, sp, 288
2191 ; RV64I-WITH-FP-NEXT: ret
2193 ; RV64IZCMP-LABEL: caller:
2194 ; RV64IZCMP: # %bb.0:
2195 ; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -160
2196 ; RV64IZCMP-NEXT: addi sp, sp, -128
2197 ; RV64IZCMP-NEXT: lui s0, %hi(var)
2198 ; RV64IZCMP-NEXT: lw a0, %lo(var)(s0)
2199 ; RV64IZCMP-NEXT: sd a0, 168(sp) # 8-byte Folded Spill
2200 ; RV64IZCMP-NEXT: lw a0, %lo(var+4)(s0)
2201 ; RV64IZCMP-NEXT: sd a0, 160(sp) # 8-byte Folded Spill
2202 ; RV64IZCMP-NEXT: lw a0, %lo(var+8)(s0)
2203 ; RV64IZCMP-NEXT: sd a0, 152(sp) # 8-byte Folded Spill
2204 ; RV64IZCMP-NEXT: lw a0, %lo(var+12)(s0)
2205 ; RV64IZCMP-NEXT: sd a0, 144(sp) # 8-byte Folded Spill
2206 ; RV64IZCMP-NEXT: addi s1, s0, %lo(var)
2207 ; RV64IZCMP-NEXT: lw a0, 16(s1)
2208 ; RV64IZCMP-NEXT: sd a0, 136(sp) # 8-byte Folded Spill
2209 ; RV64IZCMP-NEXT: lw a0, 20(s1)
2210 ; RV64IZCMP-NEXT: sd a0, 128(sp) # 8-byte Folded Spill
2211 ; RV64IZCMP-NEXT: lw a0, 24(s1)
2212 ; RV64IZCMP-NEXT: sd a0, 120(sp) # 8-byte Folded Spill
2213 ; RV64IZCMP-NEXT: lw a0, 28(s1)
2214 ; RV64IZCMP-NEXT: sd a0, 112(sp) # 8-byte Folded Spill
2215 ; RV64IZCMP-NEXT: lw a0, 32(s1)
2216 ; RV64IZCMP-NEXT: sd a0, 104(sp) # 8-byte Folded Spill
2217 ; RV64IZCMP-NEXT: lw a0, 36(s1)
2218 ; RV64IZCMP-NEXT: sd a0, 96(sp) # 8-byte Folded Spill
2219 ; RV64IZCMP-NEXT: lw a0, 40(s1)
2220 ; RV64IZCMP-NEXT: sd a0, 88(sp) # 8-byte Folded Spill
2221 ; RV64IZCMP-NEXT: lw a0, 44(s1)
2222 ; RV64IZCMP-NEXT: sd a0, 80(sp) # 8-byte Folded Spill
2223 ; RV64IZCMP-NEXT: lw a0, 48(s1)
2224 ; RV64IZCMP-NEXT: sd a0, 72(sp) # 8-byte Folded Spill
2225 ; RV64IZCMP-NEXT: lw a0, 52(s1)
2226 ; RV64IZCMP-NEXT: sd a0, 64(sp) # 8-byte Folded Spill
2227 ; RV64IZCMP-NEXT: lw a0, 56(s1)
2228 ; RV64IZCMP-NEXT: sd a0, 56(sp) # 8-byte Folded Spill
2229 ; RV64IZCMP-NEXT: lw a0, 60(s1)
2230 ; RV64IZCMP-NEXT: sd a0, 48(sp) # 8-byte Folded Spill
2231 ; RV64IZCMP-NEXT: lw a0, 64(s1)
2232 ; RV64IZCMP-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
2233 ; RV64IZCMP-NEXT: lw a0, 68(s1)
2234 ; RV64IZCMP-NEXT: sd a0, 32(sp) # 8-byte Folded Spill
2235 ; RV64IZCMP-NEXT: lw a0, 72(s1)
2236 ; RV64IZCMP-NEXT: sd a0, 24(sp) # 8-byte Folded Spill
2237 ; RV64IZCMP-NEXT: lw a0, 76(s1)
2238 ; RV64IZCMP-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
2239 ; RV64IZCMP-NEXT: lw a0, 80(s1)
2240 ; RV64IZCMP-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
2241 ; RV64IZCMP-NEXT: lw a0, 84(s1)
2242 ; RV64IZCMP-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
2243 ; RV64IZCMP-NEXT: lw s4, 88(s1)
2244 ; RV64IZCMP-NEXT: lw s5, 92(s1)
2245 ; RV64IZCMP-NEXT: lw s6, 96(s1)
2246 ; RV64IZCMP-NEXT: lw s7, 100(s1)
2247 ; RV64IZCMP-NEXT: lw s8, 104(s1)
2248 ; RV64IZCMP-NEXT: lw s9, 108(s1)
2249 ; RV64IZCMP-NEXT: lw s10, 112(s1)
2250 ; RV64IZCMP-NEXT: lw s11, 116(s1)
2251 ; RV64IZCMP-NEXT: lw s2, 120(s1)
2252 ; RV64IZCMP-NEXT: lw s3, 124(s1)
2253 ; RV64IZCMP-NEXT: call callee
2254 ; RV64IZCMP-NEXT: sw s3, 124(s1)
2255 ; RV64IZCMP-NEXT: sw s2, 120(s1)
2256 ; RV64IZCMP-NEXT: sw s11, 116(s1)
2257 ; RV64IZCMP-NEXT: sw s10, 112(s1)
2258 ; RV64IZCMP-NEXT: sw s9, 108(s1)
2259 ; RV64IZCMP-NEXT: sw s8, 104(s1)
2260 ; RV64IZCMP-NEXT: sw s7, 100(s1)
2261 ; RV64IZCMP-NEXT: sw s6, 96(s1)
2262 ; RV64IZCMP-NEXT: sw s5, 92(s1)
2263 ; RV64IZCMP-NEXT: sw s4, 88(s1)
2264 ; RV64IZCMP-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
2265 ; RV64IZCMP-NEXT: sw a0, 84(s1)
2266 ; RV64IZCMP-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
2267 ; RV64IZCMP-NEXT: sw a0, 80(s1)
2268 ; RV64IZCMP-NEXT: ld a0, 16(sp) # 8-byte Folded Reload
2269 ; RV64IZCMP-NEXT: sw a0, 76(s1)
2270 ; RV64IZCMP-NEXT: ld a0, 24(sp) # 8-byte Folded Reload
2271 ; RV64IZCMP-NEXT: sw a0, 72(s1)
2272 ; RV64IZCMP-NEXT: ld a0, 32(sp) # 8-byte Folded Reload
2273 ; RV64IZCMP-NEXT: sw a0, 68(s1)
2274 ; RV64IZCMP-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
2275 ; RV64IZCMP-NEXT: sw a0, 64(s1)
2276 ; RV64IZCMP-NEXT: ld a0, 48(sp) # 8-byte Folded Reload
2277 ; RV64IZCMP-NEXT: sw a0, 60(s1)
2278 ; RV64IZCMP-NEXT: ld a0, 56(sp) # 8-byte Folded Reload
2279 ; RV64IZCMP-NEXT: sw a0, 56(s1)
2280 ; RV64IZCMP-NEXT: ld a0, 64(sp) # 8-byte Folded Reload
2281 ; RV64IZCMP-NEXT: sw a0, 52(s1)
2282 ; RV64IZCMP-NEXT: ld a0, 72(sp) # 8-byte Folded Reload
2283 ; RV64IZCMP-NEXT: sw a0, 48(s1)
2284 ; RV64IZCMP-NEXT: ld a0, 80(sp) # 8-byte Folded Reload
2285 ; RV64IZCMP-NEXT: sw a0, 44(s1)
2286 ; RV64IZCMP-NEXT: ld a0, 88(sp) # 8-byte Folded Reload
2287 ; RV64IZCMP-NEXT: sw a0, 40(s1)
2288 ; RV64IZCMP-NEXT: ld a0, 96(sp) # 8-byte Folded Reload
2289 ; RV64IZCMP-NEXT: sw a0, 36(s1)
2290 ; RV64IZCMP-NEXT: ld a0, 104(sp) # 8-byte Folded Reload
2291 ; RV64IZCMP-NEXT: sw a0, 32(s1)
2292 ; RV64IZCMP-NEXT: ld a0, 112(sp) # 8-byte Folded Reload
2293 ; RV64IZCMP-NEXT: sw a0, 28(s1)
2294 ; RV64IZCMP-NEXT: ld a0, 120(sp) # 8-byte Folded Reload
2295 ; RV64IZCMP-NEXT: sw a0, 24(s1)
2296 ; RV64IZCMP-NEXT: ld a0, 128(sp) # 8-byte Folded Reload
2297 ; RV64IZCMP-NEXT: sw a0, 20(s1)
2298 ; RV64IZCMP-NEXT: ld a0, 136(sp) # 8-byte Folded Reload
2299 ; RV64IZCMP-NEXT: sw a0, 16(s1)
2300 ; RV64IZCMP-NEXT: ld a0, 144(sp) # 8-byte Folded Reload
2301 ; RV64IZCMP-NEXT: sw a0, %lo(var+12)(s0)
2302 ; RV64IZCMP-NEXT: ld a0, 152(sp) # 8-byte Folded Reload
2303 ; RV64IZCMP-NEXT: sw a0, %lo(var+8)(s0)
2304 ; RV64IZCMP-NEXT: ld a0, 160(sp) # 8-byte Folded Reload
2305 ; RV64IZCMP-NEXT: sw a0, %lo(var+4)(s0)
2306 ; RV64IZCMP-NEXT: ld a0, 168(sp) # 8-byte Folded Reload
2307 ; RV64IZCMP-NEXT: sw a0, %lo(var)(s0)
2308 ; RV64IZCMP-NEXT: addi sp, sp, 128
2309 ; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 160
2311 ; RV64IZCMP-WITH-FP-LABEL: caller:
2312 ; RV64IZCMP-WITH-FP: # %bb.0:
2313 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -288
2314 ; RV64IZCMP-WITH-FP-NEXT: sd ra, 280(sp) # 8-byte Folded Spill
2315 ; RV64IZCMP-WITH-FP-NEXT: sd s0, 272(sp) # 8-byte Folded Spill
2316 ; RV64IZCMP-WITH-FP-NEXT: sd s1, 264(sp) # 8-byte Folded Spill
2317 ; RV64IZCMP-WITH-FP-NEXT: sd s2, 256(sp) # 8-byte Folded Spill
2318 ; RV64IZCMP-WITH-FP-NEXT: sd s3, 248(sp) # 8-byte Folded Spill
2319 ; RV64IZCMP-WITH-FP-NEXT: sd s4, 240(sp) # 8-byte Folded Spill
2320 ; RV64IZCMP-WITH-FP-NEXT: sd s5, 232(sp) # 8-byte Folded Spill
2321 ; RV64IZCMP-WITH-FP-NEXT: sd s6, 224(sp) # 8-byte Folded Spill
2322 ; RV64IZCMP-WITH-FP-NEXT: sd s7, 216(sp) # 8-byte Folded Spill
2323 ; RV64IZCMP-WITH-FP-NEXT: sd s8, 208(sp) # 8-byte Folded Spill
2324 ; RV64IZCMP-WITH-FP-NEXT: sd s9, 200(sp) # 8-byte Folded Spill
2325 ; RV64IZCMP-WITH-FP-NEXT: sd s10, 192(sp) # 8-byte Folded Spill
2326 ; RV64IZCMP-WITH-FP-NEXT: sd s11, 184(sp) # 8-byte Folded Spill
2327 ; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 288
2328 ; RV64IZCMP-WITH-FP-NEXT: lui s6, %hi(var)
2329 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(s6)
2330 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill
2331 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(s6)
2332 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill
2333 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(s6)
2334 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill
2335 ; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(s6)
2336 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill
2337 ; RV64IZCMP-WITH-FP-NEXT: addi s1, s6, %lo(var)
2338 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 16(s1)
2339 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill
2340 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 20(s1)
2341 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill
2342 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 24(s1)
2343 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill
2344 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 28(s1)
2345 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -168(s0) # 8-byte Folded Spill
2346 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 32(s1)
2347 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -176(s0) # 8-byte Folded Spill
2348 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 36(s1)
2349 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -184(s0) # 8-byte Folded Spill
2350 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 40(s1)
2351 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -192(s0) # 8-byte Folded Spill
2352 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 44(s1)
2353 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -200(s0) # 8-byte Folded Spill
2354 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 48(s1)
2355 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -208(s0) # 8-byte Folded Spill
2356 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 52(s1)
2357 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -216(s0) # 8-byte Folded Spill
2358 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 56(s1)
2359 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -224(s0) # 8-byte Folded Spill
2360 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 60(s1)
2361 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -232(s0) # 8-byte Folded Spill
2362 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 64(s1)
2363 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -240(s0) # 8-byte Folded Spill
2364 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 68(s1)
2365 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -248(s0) # 8-byte Folded Spill
2366 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 72(s1)
2367 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -256(s0) # 8-byte Folded Spill
2368 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 76(s1)
2369 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -264(s0) # 8-byte Folded Spill
2370 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 80(s1)
2371 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -272(s0) # 8-byte Folded Spill
2372 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 84(s1)
2373 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -280(s0) # 8-byte Folded Spill
2374 ; RV64IZCMP-WITH-FP-NEXT: lw a0, 88(s1)
2375 ; RV64IZCMP-WITH-FP-NEXT: sd a0, -288(s0) # 8-byte Folded Spill
2376 ; RV64IZCMP-WITH-FP-NEXT: lw s8, 92(s1)
2377 ; RV64IZCMP-WITH-FP-NEXT: lw s9, 96(s1)
2378 ; RV64IZCMP-WITH-FP-NEXT: lw s10, 100(s1)
2379 ; RV64IZCMP-WITH-FP-NEXT: lw s11, 104(s1)
2380 ; RV64IZCMP-WITH-FP-NEXT: lw s2, 108(s1)
2381 ; RV64IZCMP-WITH-FP-NEXT: lw s3, 112(s1)
2382 ; RV64IZCMP-WITH-FP-NEXT: lw s4, 116(s1)
2383 ; RV64IZCMP-WITH-FP-NEXT: lw s5, 120(s1)
2384 ; RV64IZCMP-WITH-FP-NEXT: lw s7, 124(s1)
2385 ; RV64IZCMP-WITH-FP-NEXT: call callee
2386 ; RV64IZCMP-WITH-FP-NEXT: sw s7, 124(s1)
2387 ; RV64IZCMP-WITH-FP-NEXT: sw s5, 120(s1)
2388 ; RV64IZCMP-WITH-FP-NEXT: sw s4, 116(s1)
2389 ; RV64IZCMP-WITH-FP-NEXT: sw s3, 112(s1)
2390 ; RV64IZCMP-WITH-FP-NEXT: sw s2, 108(s1)
2391 ; RV64IZCMP-WITH-FP-NEXT: sw s11, 104(s1)
2392 ; RV64IZCMP-WITH-FP-NEXT: sw s10, 100(s1)
2393 ; RV64IZCMP-WITH-FP-NEXT: sw s9, 96(s1)
2394 ; RV64IZCMP-WITH-FP-NEXT: sw s8, 92(s1)
2395 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -288(s0) # 8-byte Folded Reload
2396 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 88(s1)
2397 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -280(s0) # 8-byte Folded Reload
2398 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 84(s1)
2399 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -272(s0) # 8-byte Folded Reload
2400 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 80(s1)
2401 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -264(s0) # 8-byte Folded Reload
2402 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 76(s1)
2403 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -256(s0) # 8-byte Folded Reload
2404 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 72(s1)
2405 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -248(s0) # 8-byte Folded Reload
2406 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 68(s1)
2407 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -240(s0) # 8-byte Folded Reload
2408 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 64(s1)
2409 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -232(s0) # 8-byte Folded Reload
2410 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 60(s1)
2411 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -224(s0) # 8-byte Folded Reload
2412 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 56(s1)
2413 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -216(s0) # 8-byte Folded Reload
2414 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 52(s1)
2415 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -208(s0) # 8-byte Folded Reload
2416 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 48(s1)
2417 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -200(s0) # 8-byte Folded Reload
2418 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 44(s1)
2419 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -192(s0) # 8-byte Folded Reload
2420 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 40(s1)
2421 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -184(s0) # 8-byte Folded Reload
2422 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 36(s1)
2423 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -176(s0) # 8-byte Folded Reload
2424 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 32(s1)
2425 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -168(s0) # 8-byte Folded Reload
2426 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 28(s1)
2427 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload
2428 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 24(s1)
2429 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload
2430 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 20(s1)
2431 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload
2432 ; RV64IZCMP-WITH-FP-NEXT: sw a0, 16(s1)
2433 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload
2434 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(s6)
2435 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload
2436 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(s6)
2437 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload
2438 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(s6)
2439 ; RV64IZCMP-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload
2440 ; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(s6)
2441 ; RV64IZCMP-WITH-FP-NEXT: ld ra, 280(sp) # 8-byte Folded Reload
2442 ; RV64IZCMP-WITH-FP-NEXT: ld s0, 272(sp) # 8-byte Folded Reload
2443 ; RV64IZCMP-WITH-FP-NEXT: ld s1, 264(sp) # 8-byte Folded Reload
2444 ; RV64IZCMP-WITH-FP-NEXT: ld s2, 256(sp) # 8-byte Folded Reload
2445 ; RV64IZCMP-WITH-FP-NEXT: ld s3, 248(sp) # 8-byte Folded Reload
2446 ; RV64IZCMP-WITH-FP-NEXT: ld s4, 240(sp) # 8-byte Folded Reload
2447 ; RV64IZCMP-WITH-FP-NEXT: ld s5, 232(sp) # 8-byte Folded Reload
2448 ; RV64IZCMP-WITH-FP-NEXT: ld s6, 224(sp) # 8-byte Folded Reload
2449 ; RV64IZCMP-WITH-FP-NEXT: ld s7, 216(sp) # 8-byte Folded Reload
2450 ; RV64IZCMP-WITH-FP-NEXT: ld s8, 208(sp) # 8-byte Folded Reload
2451 ; RV64IZCMP-WITH-FP-NEXT: ld s9, 200(sp) # 8-byte Folded Reload
2452 ; RV64IZCMP-WITH-FP-NEXT: ld s10, 192(sp) # 8-byte Folded Reload
2453 ; RV64IZCMP-WITH-FP-NEXT: ld s11, 184(sp) # 8-byte Folded Reload
2454 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 288
2455 ; RV64IZCMP-WITH-FP-NEXT: ret
2456 %val = load [32 x i32], ptr @var
2458 store volatile [32 x i32] %val, ptr @var
2462 ; This function tests if the stack size is correctly calculated when
2463 ; callee-saved registers are not a sequential list from $ra
2464 define void @foo() {
2466 ; RV32I: # %bb.0: # %entry
2467 ; RV32I-NEXT: addi sp, sp, -16
2468 ; RV32I-NEXT: .cfi_def_cfa_offset 16
2469 ; RV32I-NEXT: sw s4, 12(sp) # 4-byte Folded Spill
2470 ; RV32I-NEXT: .cfi_offset s4, -4
2472 ; RV32I-NEXT: li s4, 0
2473 ; RV32I-NEXT: #NO_APP
2474 ; RV32I-NEXT: lw s4, 12(sp) # 4-byte Folded Reload
2475 ; RV32I-NEXT: addi sp, sp, 16
2478 ; RV32I-ILP32E-LABEL: foo:
2479 ; RV32I-ILP32E: # %bb.0: # %entry
2480 ; RV32I-ILP32E-NEXT: #APP
2481 ; RV32I-ILP32E-NEXT: li s4, 0
2482 ; RV32I-ILP32E-NEXT: #NO_APP
2483 ; RV32I-ILP32E-NEXT: ret
2485 ; RV32I-WITH-FP-LABEL: foo:
2486 ; RV32I-WITH-FP: # %bb.0: # %entry
2487 ; RV32I-WITH-FP-NEXT: addi sp, sp, -16
2488 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 16
2489 ; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2490 ; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2491 ; RV32I-WITH-FP-NEXT: sw s4, 4(sp) # 4-byte Folded Spill
2492 ; RV32I-WITH-FP-NEXT: .cfi_offset ra, -4
2493 ; RV32I-WITH-FP-NEXT: .cfi_offset s0, -8
2494 ; RV32I-WITH-FP-NEXT: .cfi_offset s4, -12
2495 ; RV32I-WITH-FP-NEXT: addi s0, sp, 16
2496 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2497 ; RV32I-WITH-FP-NEXT: #APP
2498 ; RV32I-WITH-FP-NEXT: li s4, 0
2499 ; RV32I-WITH-FP-NEXT: #NO_APP
2500 ; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2501 ; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2502 ; RV32I-WITH-FP-NEXT: lw s4, 4(sp) # 4-byte Folded Reload
2503 ; RV32I-WITH-FP-NEXT: addi sp, sp, 16
2504 ; RV32I-WITH-FP-NEXT: ret
2506 ; RV32IZCMP-LABEL: foo:
2507 ; RV32IZCMP: # %bb.0: # %entry
2508 ; RV32IZCMP-NEXT: cm.push {ra, s0-s4}, -32
2509 ; RV32IZCMP-NEXT: .cfi_def_cfa_offset 32
2510 ; RV32IZCMP-NEXT: .cfi_offset s4, -4
2511 ; RV32IZCMP-NEXT: #APP
2512 ; RV32IZCMP-NEXT: li s4, 0
2513 ; RV32IZCMP-NEXT: #NO_APP
2514 ; RV32IZCMP-NEXT: cm.popret {ra, s0-s4}, 32
2516 ; RV32IZCMP-WITH-FP-LABEL: foo:
2517 ; RV32IZCMP-WITH-FP: # %bb.0: # %entry
2518 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -16
2519 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 16
2520 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2521 ; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2522 ; RV32IZCMP-WITH-FP-NEXT: sw s4, 4(sp) # 4-byte Folded Spill
2523 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -4
2524 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -8
2525 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s4, -12
2526 ; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16
2527 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2528 ; RV32IZCMP-WITH-FP-NEXT: #APP
2529 ; RV32IZCMP-WITH-FP-NEXT: li s4, 0
2530 ; RV32IZCMP-WITH-FP-NEXT: #NO_APP
2531 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2532 ; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2533 ; RV32IZCMP-WITH-FP-NEXT: lw s4, 4(sp) # 4-byte Folded Reload
2534 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 16
2535 ; RV32IZCMP-WITH-FP-NEXT: ret
2538 ; RV64I: # %bb.0: # %entry
2539 ; RV64I-NEXT: addi sp, sp, -16
2540 ; RV64I-NEXT: .cfi_def_cfa_offset 16
2541 ; RV64I-NEXT: sd s4, 8(sp) # 8-byte Folded Spill
2542 ; RV64I-NEXT: .cfi_offset s4, -8
2544 ; RV64I-NEXT: li s4, 0
2545 ; RV64I-NEXT: #NO_APP
2546 ; RV64I-NEXT: ld s4, 8(sp) # 8-byte Folded Reload
2547 ; RV64I-NEXT: addi sp, sp, 16
2550 ; RV64I-LP64E-LABEL: foo:
2551 ; RV64I-LP64E: # %bb.0: # %entry
2552 ; RV64I-LP64E-NEXT: #APP
2553 ; RV64I-LP64E-NEXT: li s4, 0
2554 ; RV64I-LP64E-NEXT: #NO_APP
2555 ; RV64I-LP64E-NEXT: ret
2557 ; RV64I-WITH-FP-LABEL: foo:
2558 ; RV64I-WITH-FP: # %bb.0: # %entry
2559 ; RV64I-WITH-FP-NEXT: addi sp, sp, -32
2560 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 32
2561 ; RV64I-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
2562 ; RV64I-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
2563 ; RV64I-WITH-FP-NEXT: sd s4, 8(sp) # 8-byte Folded Spill
2564 ; RV64I-WITH-FP-NEXT: .cfi_offset ra, -8
2565 ; RV64I-WITH-FP-NEXT: .cfi_offset s0, -16
2566 ; RV64I-WITH-FP-NEXT: .cfi_offset s4, -24
2567 ; RV64I-WITH-FP-NEXT: addi s0, sp, 32
2568 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2569 ; RV64I-WITH-FP-NEXT: #APP
2570 ; RV64I-WITH-FP-NEXT: li s4, 0
2571 ; RV64I-WITH-FP-NEXT: #NO_APP
2572 ; RV64I-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
2573 ; RV64I-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
2574 ; RV64I-WITH-FP-NEXT: ld s4, 8(sp) # 8-byte Folded Reload
2575 ; RV64I-WITH-FP-NEXT: addi sp, sp, 32
2576 ; RV64I-WITH-FP-NEXT: ret
2578 ; RV64IZCMP-LABEL: foo:
2579 ; RV64IZCMP: # %bb.0: # %entry
2580 ; RV64IZCMP-NEXT: cm.push {ra, s0-s4}, -48
2581 ; RV64IZCMP-NEXT: .cfi_def_cfa_offset 48
2582 ; RV64IZCMP-NEXT: .cfi_offset s4, -8
2583 ; RV64IZCMP-NEXT: #APP
2584 ; RV64IZCMP-NEXT: li s4, 0
2585 ; RV64IZCMP-NEXT: #NO_APP
2586 ; RV64IZCMP-NEXT: cm.popret {ra, s0-s4}, 48
2588 ; RV64IZCMP-WITH-FP-LABEL: foo:
2589 ; RV64IZCMP-WITH-FP: # %bb.0: # %entry
2590 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -32
2591 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 32
2592 ; RV64IZCMP-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
2593 ; RV64IZCMP-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
2594 ; RV64IZCMP-WITH-FP-NEXT: sd s4, 8(sp) # 8-byte Folded Spill
2595 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -8
2596 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -16
2597 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s4, -24
2598 ; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 32
2599 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2600 ; RV64IZCMP-WITH-FP-NEXT: #APP
2601 ; RV64IZCMP-WITH-FP-NEXT: li s4, 0
2602 ; RV64IZCMP-WITH-FP-NEXT: #NO_APP
2603 ; RV64IZCMP-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
2604 ; RV64IZCMP-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
2605 ; RV64IZCMP-WITH-FP-NEXT: ld s4, 8(sp) # 8-byte Folded Reload
2606 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 32
2607 ; RV64IZCMP-WITH-FP-NEXT: ret
2609 tail call void asm sideeffect "li s4, 0", "~{s4}"()
2613 ; Check .cfi_offset of s11 is correct for Zcmp.
2614 define void @bar() {
2616 ; RV32I: # %bb.0: # %entry
2617 ; RV32I-NEXT: addi sp, sp, -16
2618 ; RV32I-NEXT: .cfi_def_cfa_offset 16
2619 ; RV32I-NEXT: sw s11, 12(sp) # 4-byte Folded Spill
2620 ; RV32I-NEXT: .cfi_offset s11, -4
2622 ; RV32I-NEXT: li s11, 0
2623 ; RV32I-NEXT: #NO_APP
2624 ; RV32I-NEXT: lw s11, 12(sp) # 4-byte Folded Reload
2625 ; RV32I-NEXT: addi sp, sp, 16
2628 ; RV32I-ILP32E-LABEL: bar:
2629 ; RV32I-ILP32E: # %bb.0: # %entry
2630 ; RV32I-ILP32E-NEXT: #APP
2631 ; RV32I-ILP32E-NEXT: li s11, 0
2632 ; RV32I-ILP32E-NEXT: #NO_APP
2633 ; RV32I-ILP32E-NEXT: ret
2635 ; RV32I-WITH-FP-LABEL: bar:
2636 ; RV32I-WITH-FP: # %bb.0: # %entry
2637 ; RV32I-WITH-FP-NEXT: addi sp, sp, -16
2638 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 16
2639 ; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2640 ; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2641 ; RV32I-WITH-FP-NEXT: sw s11, 4(sp) # 4-byte Folded Spill
2642 ; RV32I-WITH-FP-NEXT: .cfi_offset ra, -4
2643 ; RV32I-WITH-FP-NEXT: .cfi_offset s0, -8
2644 ; RV32I-WITH-FP-NEXT: .cfi_offset s11, -12
2645 ; RV32I-WITH-FP-NEXT: addi s0, sp, 16
2646 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2647 ; RV32I-WITH-FP-NEXT: #APP
2648 ; RV32I-WITH-FP-NEXT: li s11, 0
2649 ; RV32I-WITH-FP-NEXT: #NO_APP
2650 ; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2651 ; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2652 ; RV32I-WITH-FP-NEXT: lw s11, 4(sp) # 4-byte Folded Reload
2653 ; RV32I-WITH-FP-NEXT: addi sp, sp, 16
2654 ; RV32I-WITH-FP-NEXT: ret
2656 ; RV32IZCMP-LABEL: bar:
2657 ; RV32IZCMP: # %bb.0: # %entry
2658 ; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -64
2659 ; RV32IZCMP-NEXT: .cfi_def_cfa_offset 64
2660 ; RV32IZCMP-NEXT: .cfi_offset s11, -4
2661 ; RV32IZCMP-NEXT: #APP
2662 ; RV32IZCMP-NEXT: li s11, 0
2663 ; RV32IZCMP-NEXT: #NO_APP
2664 ; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 64
2666 ; RV32IZCMP-WITH-FP-LABEL: bar:
2667 ; RV32IZCMP-WITH-FP: # %bb.0: # %entry
2668 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -16
2669 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 16
2670 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2671 ; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2672 ; RV32IZCMP-WITH-FP-NEXT: sw s11, 4(sp) # 4-byte Folded Spill
2673 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -4
2674 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -8
2675 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s11, -12
2676 ; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16
2677 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2678 ; RV32IZCMP-WITH-FP-NEXT: #APP
2679 ; RV32IZCMP-WITH-FP-NEXT: li s11, 0
2680 ; RV32IZCMP-WITH-FP-NEXT: #NO_APP
2681 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2682 ; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2683 ; RV32IZCMP-WITH-FP-NEXT: lw s11, 4(sp) # 4-byte Folded Reload
2684 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 16
2685 ; RV32IZCMP-WITH-FP-NEXT: ret
2688 ; RV64I: # %bb.0: # %entry
2689 ; RV64I-NEXT: addi sp, sp, -16
2690 ; RV64I-NEXT: .cfi_def_cfa_offset 16
2691 ; RV64I-NEXT: sd s11, 8(sp) # 8-byte Folded Spill
2692 ; RV64I-NEXT: .cfi_offset s11, -8
2694 ; RV64I-NEXT: li s11, 0
2695 ; RV64I-NEXT: #NO_APP
2696 ; RV64I-NEXT: ld s11, 8(sp) # 8-byte Folded Reload
2697 ; RV64I-NEXT: addi sp, sp, 16
2700 ; RV64I-LP64E-LABEL: bar:
2701 ; RV64I-LP64E: # %bb.0: # %entry
2702 ; RV64I-LP64E-NEXT: #APP
2703 ; RV64I-LP64E-NEXT: li s11, 0
2704 ; RV64I-LP64E-NEXT: #NO_APP
2705 ; RV64I-LP64E-NEXT: ret
2707 ; RV64I-WITH-FP-LABEL: bar:
2708 ; RV64I-WITH-FP: # %bb.0: # %entry
2709 ; RV64I-WITH-FP-NEXT: addi sp, sp, -32
2710 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 32
2711 ; RV64I-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
2712 ; RV64I-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
2713 ; RV64I-WITH-FP-NEXT: sd s11, 8(sp) # 8-byte Folded Spill
2714 ; RV64I-WITH-FP-NEXT: .cfi_offset ra, -8
2715 ; RV64I-WITH-FP-NEXT: .cfi_offset s0, -16
2716 ; RV64I-WITH-FP-NEXT: .cfi_offset s11, -24
2717 ; RV64I-WITH-FP-NEXT: addi s0, sp, 32
2718 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2719 ; RV64I-WITH-FP-NEXT: #APP
2720 ; RV64I-WITH-FP-NEXT: li s11, 0
2721 ; RV64I-WITH-FP-NEXT: #NO_APP
2722 ; RV64I-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
2723 ; RV64I-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
2724 ; RV64I-WITH-FP-NEXT: ld s11, 8(sp) # 8-byte Folded Reload
2725 ; RV64I-WITH-FP-NEXT: addi sp, sp, 32
2726 ; RV64I-WITH-FP-NEXT: ret
2728 ; RV64IZCMP-LABEL: bar:
2729 ; RV64IZCMP: # %bb.0: # %entry
2730 ; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -112
2731 ; RV64IZCMP-NEXT: .cfi_def_cfa_offset 112
2732 ; RV64IZCMP-NEXT: .cfi_offset s11, -8
2733 ; RV64IZCMP-NEXT: #APP
2734 ; RV64IZCMP-NEXT: li s11, 0
2735 ; RV64IZCMP-NEXT: #NO_APP
2736 ; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 112
2738 ; RV64IZCMP-WITH-FP-LABEL: bar:
2739 ; RV64IZCMP-WITH-FP: # %bb.0: # %entry
2740 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -32
2741 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 32
2742 ; RV64IZCMP-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
2743 ; RV64IZCMP-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
2744 ; RV64IZCMP-WITH-FP-NEXT: sd s11, 8(sp) # 8-byte Folded Spill
2745 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -8
2746 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -16
2747 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s11, -24
2748 ; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 32
2749 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0
2750 ; RV64IZCMP-WITH-FP-NEXT: #APP
2751 ; RV64IZCMP-WITH-FP-NEXT: li s11, 0
2752 ; RV64IZCMP-WITH-FP-NEXT: #NO_APP
2753 ; RV64IZCMP-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
2754 ; RV64IZCMP-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
2755 ; RV64IZCMP-WITH-FP-NEXT: ld s11, 8(sp) # 8-byte Folded Reload
2756 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 32
2757 ; RV64IZCMP-WITH-FP-NEXT: ret
2759 tail call void asm sideeffect "li s11, 0", "~{s11}"()
2763 define void @varargs(...) {
2764 ; RV32I-LABEL: varargs:
2766 ; RV32I-NEXT: addi sp, sp, -48
2767 ; RV32I-NEXT: .cfi_def_cfa_offset 48
2768 ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2769 ; RV32I-NEXT: .cfi_offset ra, -36
2770 ; RV32I-NEXT: sw a7, 44(sp)
2771 ; RV32I-NEXT: sw a6, 40(sp)
2772 ; RV32I-NEXT: sw a5, 36(sp)
2773 ; RV32I-NEXT: sw a4, 32(sp)
2774 ; RV32I-NEXT: sw a3, 28(sp)
2775 ; RV32I-NEXT: sw a2, 24(sp)
2776 ; RV32I-NEXT: sw a1, 20(sp)
2777 ; RV32I-NEXT: sw a0, 16(sp)
2778 ; RV32I-NEXT: call callee
2779 ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2780 ; RV32I-NEXT: addi sp, sp, 48
2783 ; RV32I-ILP32E-LABEL: varargs:
2784 ; RV32I-ILP32E: # %bb.0:
2785 ; RV32I-ILP32E-NEXT: addi sp, sp, -28
2786 ; RV32I-ILP32E-NEXT: .cfi_def_cfa_offset 28
2787 ; RV32I-ILP32E-NEXT: sw ra, 0(sp) # 4-byte Folded Spill
2788 ; RV32I-ILP32E-NEXT: .cfi_offset ra, -28
2789 ; RV32I-ILP32E-NEXT: sw a5, 24(sp)
2790 ; RV32I-ILP32E-NEXT: sw a4, 20(sp)
2791 ; RV32I-ILP32E-NEXT: sw a3, 16(sp)
2792 ; RV32I-ILP32E-NEXT: sw a2, 12(sp)
2793 ; RV32I-ILP32E-NEXT: sw a1, 8(sp)
2794 ; RV32I-ILP32E-NEXT: sw a0, 4(sp)
2795 ; RV32I-ILP32E-NEXT: call callee
2796 ; RV32I-ILP32E-NEXT: lw ra, 0(sp) # 4-byte Folded Reload
2797 ; RV32I-ILP32E-NEXT: addi sp, sp, 28
2798 ; RV32I-ILP32E-NEXT: ret
2800 ; RV32I-WITH-FP-LABEL: varargs:
2801 ; RV32I-WITH-FP: # %bb.0:
2802 ; RV32I-WITH-FP-NEXT: addi sp, sp, -48
2803 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 48
2804 ; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2805 ; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2806 ; RV32I-WITH-FP-NEXT: .cfi_offset ra, -36
2807 ; RV32I-WITH-FP-NEXT: .cfi_offset s0, -40
2808 ; RV32I-WITH-FP-NEXT: addi s0, sp, 16
2809 ; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 32
2810 ; RV32I-WITH-FP-NEXT: sw a7, 28(s0)
2811 ; RV32I-WITH-FP-NEXT: sw a6, 24(s0)
2812 ; RV32I-WITH-FP-NEXT: sw a5, 20(s0)
2813 ; RV32I-WITH-FP-NEXT: sw a4, 16(s0)
2814 ; RV32I-WITH-FP-NEXT: sw a3, 12(s0)
2815 ; RV32I-WITH-FP-NEXT: sw a2, 8(s0)
2816 ; RV32I-WITH-FP-NEXT: sw a1, 4(s0)
2817 ; RV32I-WITH-FP-NEXT: sw a0, 0(s0)
2818 ; RV32I-WITH-FP-NEXT: call callee
2819 ; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2820 ; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2821 ; RV32I-WITH-FP-NEXT: addi sp, sp, 48
2822 ; RV32I-WITH-FP-NEXT: ret
2824 ; RV32IZCMP-LABEL: varargs:
2825 ; RV32IZCMP: # %bb.0:
2826 ; RV32IZCMP-NEXT: addi sp, sp, -48
2827 ; RV32IZCMP-NEXT: .cfi_def_cfa_offset 48
2828 ; RV32IZCMP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2829 ; RV32IZCMP-NEXT: .cfi_offset ra, -36
2830 ; RV32IZCMP-NEXT: sw a7, 44(sp)
2831 ; RV32IZCMP-NEXT: sw a6, 40(sp)
2832 ; RV32IZCMP-NEXT: sw a5, 36(sp)
2833 ; RV32IZCMP-NEXT: sw a4, 32(sp)
2834 ; RV32IZCMP-NEXT: sw a3, 28(sp)
2835 ; RV32IZCMP-NEXT: sw a2, 24(sp)
2836 ; RV32IZCMP-NEXT: sw a1, 20(sp)
2837 ; RV32IZCMP-NEXT: sw a0, 16(sp)
2838 ; RV32IZCMP-NEXT: call callee
2839 ; RV32IZCMP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2840 ; RV32IZCMP-NEXT: addi sp, sp, 48
2841 ; RV32IZCMP-NEXT: ret
2843 ; RV32IZCMP-WITH-FP-LABEL: varargs:
2844 ; RV32IZCMP-WITH-FP: # %bb.0:
2845 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -48
2846 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 48
2847 ; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2848 ; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
2849 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -36
2850 ; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -40
2851 ; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16
2852 ; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 32
2853 ; RV32IZCMP-WITH-FP-NEXT: sw a7, 28(s0)
2854 ; RV32IZCMP-WITH-FP-NEXT: sw a6, 24(s0)
2855 ; RV32IZCMP-WITH-FP-NEXT: sw a5, 20(s0)
2856 ; RV32IZCMP-WITH-FP-NEXT: sw a4, 16(s0)
2857 ; RV32IZCMP-WITH-FP-NEXT: sw a3, 12(s0)
2858 ; RV32IZCMP-WITH-FP-NEXT: sw a2, 8(s0)
2859 ; RV32IZCMP-WITH-FP-NEXT: sw a1, 4(s0)
2860 ; RV32IZCMP-WITH-FP-NEXT: sw a0, 0(s0)
2861 ; RV32IZCMP-WITH-FP-NEXT: call callee
2862 ; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2863 ; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
2864 ; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 48
2865 ; RV32IZCMP-WITH-FP-NEXT: ret
2867 ; RV64I-LABEL: varargs:
2869 ; RV64I-NEXT: addi sp, sp, -80
2870 ; RV64I-NEXT: .cfi_def_cfa_offset 80
2871 ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2872 ; RV64I-NEXT: .cfi_offset ra, -72
2873 ; RV64I-NEXT: sd a7, 72(sp)
2874 ; RV64I-NEXT: sd a6, 64(sp)
2875 ; RV64I-NEXT: sd a5, 56(sp)
2876 ; RV64I-NEXT: sd a4, 48(sp)
2877 ; RV64I-NEXT: sd a3, 40(sp)
2878 ; RV64I-NEXT: sd a2, 32(sp)
2879 ; RV64I-NEXT: sd a1, 24(sp)
2880 ; RV64I-NEXT: sd a0, 16(sp)
2881 ; RV64I-NEXT: call callee
2882 ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2883 ; RV64I-NEXT: addi sp, sp, 80
2886 ; RV64I-LP64E-LABEL: varargs:
2887 ; RV64I-LP64E: # %bb.0:
2888 ; RV64I-LP64E-NEXT: addi sp, sp, -56
2889 ; RV64I-LP64E-NEXT: .cfi_def_cfa_offset 56
2890 ; RV64I-LP64E-NEXT: sd ra, 0(sp) # 8-byte Folded Spill
2891 ; RV64I-LP64E-NEXT: .cfi_offset ra, -56
2892 ; RV64I-LP64E-NEXT: sd a5, 48(sp)
2893 ; RV64I-LP64E-NEXT: sd a4, 40(sp)
2894 ; RV64I-LP64E-NEXT: sd a3, 32(sp)
2895 ; RV64I-LP64E-NEXT: sd a2, 24(sp)
2896 ; RV64I-LP64E-NEXT: sd a1, 16(sp)
2897 ; RV64I-LP64E-NEXT: sd a0, 8(sp)
2898 ; RV64I-LP64E-NEXT: call callee
2899 ; RV64I-LP64E-NEXT: ld ra, 0(sp) # 8-byte Folded Reload
2900 ; RV64I-LP64E-NEXT: addi sp, sp, 56
2901 ; RV64I-LP64E-NEXT: ret
2903 ; RV64I-WITH-FP-LABEL: varargs:
2904 ; RV64I-WITH-FP: # %bb.0:
2905 ; RV64I-WITH-FP-NEXT: addi sp, sp, -80
2906 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 80
2907 ; RV64I-WITH-FP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2908 ; RV64I-WITH-FP-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
2909 ; RV64I-WITH-FP-NEXT: .cfi_offset ra, -72
2910 ; RV64I-WITH-FP-NEXT: .cfi_offset s0, -80
2911 ; RV64I-WITH-FP-NEXT: addi s0, sp, 16
2912 ; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 64
2913 ; RV64I-WITH-FP-NEXT: sd a7, 56(s0)
2914 ; RV64I-WITH-FP-NEXT: sd a6, 48(s0)
2915 ; RV64I-WITH-FP-NEXT: sd a5, 40(s0)
2916 ; RV64I-WITH-FP-NEXT: sd a4, 32(s0)
2917 ; RV64I-WITH-FP-NEXT: sd a3, 24(s0)
2918 ; RV64I-WITH-FP-NEXT: sd a2, 16(s0)
2919 ; RV64I-WITH-FP-NEXT: sd a1, 8(s0)
2920 ; RV64I-WITH-FP-NEXT: sd a0, 0(s0)
2921 ; RV64I-WITH-FP-NEXT: call callee
2922 ; RV64I-WITH-FP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2923 ; RV64I-WITH-FP-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
2924 ; RV64I-WITH-FP-NEXT: addi sp, sp, 80
2925 ; RV64I-WITH-FP-NEXT: ret
2927 ; RV64IZCMP-LABEL: varargs:
2928 ; RV64IZCMP: # %bb.0:
2929 ; RV64IZCMP-NEXT: addi sp, sp, -80
2930 ; RV64IZCMP-NEXT: .cfi_def_cfa_offset 80
2931 ; RV64IZCMP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2932 ; RV64IZCMP-NEXT: .cfi_offset ra, -72
2933 ; RV64IZCMP-NEXT: sd a7, 72(sp)
2934 ; RV64IZCMP-NEXT: sd a6, 64(sp)
2935 ; RV64IZCMP-NEXT: sd a5, 56(sp)
2936 ; RV64IZCMP-NEXT: sd a4, 48(sp)
2937 ; RV64IZCMP-NEXT: sd a3, 40(sp)
2938 ; RV64IZCMP-NEXT: sd a2, 32(sp)
2939 ; RV64IZCMP-NEXT: sd a1, 24(sp)
2940 ; RV64IZCMP-NEXT: sd a0, 16(sp)
2941 ; RV64IZCMP-NEXT: call callee
2942 ; RV64IZCMP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2943 ; RV64IZCMP-NEXT: addi sp, sp, 80
2944 ; RV64IZCMP-NEXT: ret
2946 ; RV64IZCMP-WITH-FP-LABEL: varargs:
2947 ; RV64IZCMP-WITH-FP: # %bb.0:
2948 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -80
2949 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 80
2950 ; RV64IZCMP-WITH-FP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2951 ; RV64IZCMP-WITH-FP-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
2952 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -72
2953 ; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -80
2954 ; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 16
2955 ; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 64
2956 ; RV64IZCMP-WITH-FP-NEXT: sd a7, 56(s0)
2957 ; RV64IZCMP-WITH-FP-NEXT: sd a6, 48(s0)
2958 ; RV64IZCMP-WITH-FP-NEXT: sd a5, 40(s0)
2959 ; RV64IZCMP-WITH-FP-NEXT: sd a4, 32(s0)
2960 ; RV64IZCMP-WITH-FP-NEXT: sd a3, 24(s0)
2961 ; RV64IZCMP-WITH-FP-NEXT: sd a2, 16(s0)
2962 ; RV64IZCMP-WITH-FP-NEXT: sd a1, 8(s0)
2963 ; RV64IZCMP-WITH-FP-NEXT: sd a0, 0(s0)
2964 ; RV64IZCMP-WITH-FP-NEXT: call callee
2965 ; RV64IZCMP-WITH-FP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2966 ; RV64IZCMP-WITH-FP-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
2967 ; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 80
2968 ; RV64IZCMP-WITH-FP-NEXT: ret