Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / RISCV / callee-saved-fpr32s.ll
blob7111316931f19b7cdbf493b416f118750668d253
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+f -verify-machineinstrs < %s \
3 ; RUN:   | FileCheck %s -check-prefix=ILP32
4 ; RUN: llc -mtriple=riscv64 -mattr=+f -verify-machineinstrs < %s \
5 ; RUN:   | FileCheck %s -check-prefix=LP64
6 ; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs < %s \
7 ; RUN:   | FileCheck %s -check-prefix=ILP32F
8 ; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs < %s \
9 ; RUN:   | FileCheck %s -check-prefix=LP64F
10 ; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs < %s \
11 ; RUN:   | FileCheck %s -check-prefix=ILP32D
12 ; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs < %s \
13 ; RUN:   | FileCheck %s -check-prefix=LP64D
15 @var = global [32 x float] zeroinitializer
17 ; All floating point registers are temporaries for the ilp32 and lp64 ABIs.
18 ; fs0-fs11 are callee-saved for the ilp32f, ilp32d, lp64f, and lp64d ABIs.
20 ; This function tests that RISCVRegisterInfo::getCalleeSavedRegs returns
21 ; something appropriate.
23 define void @callee() nounwind {
24 ; ILP32-LABEL: callee:
25 ; ILP32:       # %bb.0:
26 ; ILP32-NEXT:    lui a0, %hi(var)
27 ; ILP32-NEXT:    flw fa5, %lo(var)(a0)
28 ; ILP32-NEXT:    flw fa4, %lo(var+4)(a0)
29 ; ILP32-NEXT:    flw fa3, %lo(var+8)(a0)
30 ; ILP32-NEXT:    flw fa2, %lo(var+12)(a0)
31 ; ILP32-NEXT:    addi a1, a0, %lo(var)
32 ; ILP32-NEXT:    flw fa1, 16(a1)
33 ; ILP32-NEXT:    flw fa0, 20(a1)
34 ; ILP32-NEXT:    flw ft0, 24(a1)
35 ; ILP32-NEXT:    flw ft1, 28(a1)
36 ; ILP32-NEXT:    flw ft2, 32(a1)
37 ; ILP32-NEXT:    flw ft3, 36(a1)
38 ; ILP32-NEXT:    flw ft4, 40(a1)
39 ; ILP32-NEXT:    flw ft5, 44(a1)
40 ; ILP32-NEXT:    flw ft6, 48(a1)
41 ; ILP32-NEXT:    flw ft7, 52(a1)
42 ; ILP32-NEXT:    flw fa6, 56(a1)
43 ; ILP32-NEXT:    flw fa7, 60(a1)
44 ; ILP32-NEXT:    flw ft8, 64(a1)
45 ; ILP32-NEXT:    flw ft9, 68(a1)
46 ; ILP32-NEXT:    flw ft10, 72(a1)
47 ; ILP32-NEXT:    flw ft11, 76(a1)
48 ; ILP32-NEXT:    flw fs0, 80(a1)
49 ; ILP32-NEXT:    flw fs1, 84(a1)
50 ; ILP32-NEXT:    flw fs2, 88(a1)
51 ; ILP32-NEXT:    flw fs3, 92(a1)
52 ; ILP32-NEXT:    flw fs4, 96(a1)
53 ; ILP32-NEXT:    flw fs5, 100(a1)
54 ; ILP32-NEXT:    flw fs6, 104(a1)
55 ; ILP32-NEXT:    flw fs7, 108(a1)
56 ; ILP32-NEXT:    flw fs8, 124(a1)
57 ; ILP32-NEXT:    flw fs9, 120(a1)
58 ; ILP32-NEXT:    flw fs10, 116(a1)
59 ; ILP32-NEXT:    flw fs11, 112(a1)
60 ; ILP32-NEXT:    fsw fs8, 124(a1)
61 ; ILP32-NEXT:    fsw fs9, 120(a1)
62 ; ILP32-NEXT:    fsw fs10, 116(a1)
63 ; ILP32-NEXT:    fsw fs11, 112(a1)
64 ; ILP32-NEXT:    fsw fs7, 108(a1)
65 ; ILP32-NEXT:    fsw fs6, 104(a1)
66 ; ILP32-NEXT:    fsw fs5, 100(a1)
67 ; ILP32-NEXT:    fsw fs4, 96(a1)
68 ; ILP32-NEXT:    fsw fs3, 92(a1)
69 ; ILP32-NEXT:    fsw fs2, 88(a1)
70 ; ILP32-NEXT:    fsw fs1, 84(a1)
71 ; ILP32-NEXT:    fsw fs0, 80(a1)
72 ; ILP32-NEXT:    fsw ft11, 76(a1)
73 ; ILP32-NEXT:    fsw ft10, 72(a1)
74 ; ILP32-NEXT:    fsw ft9, 68(a1)
75 ; ILP32-NEXT:    fsw ft8, 64(a1)
76 ; ILP32-NEXT:    fsw fa7, 60(a1)
77 ; ILP32-NEXT:    fsw fa6, 56(a1)
78 ; ILP32-NEXT:    fsw ft7, 52(a1)
79 ; ILP32-NEXT:    fsw ft6, 48(a1)
80 ; ILP32-NEXT:    fsw ft5, 44(a1)
81 ; ILP32-NEXT:    fsw ft4, 40(a1)
82 ; ILP32-NEXT:    fsw ft3, 36(a1)
83 ; ILP32-NEXT:    fsw ft2, 32(a1)
84 ; ILP32-NEXT:    fsw ft1, 28(a1)
85 ; ILP32-NEXT:    fsw ft0, 24(a1)
86 ; ILP32-NEXT:    fsw fa0, 20(a1)
87 ; ILP32-NEXT:    fsw fa1, 16(a1)
88 ; ILP32-NEXT:    fsw fa2, %lo(var+12)(a0)
89 ; ILP32-NEXT:    fsw fa3, %lo(var+8)(a0)
90 ; ILP32-NEXT:    fsw fa4, %lo(var+4)(a0)
91 ; ILP32-NEXT:    fsw fa5, %lo(var)(a0)
92 ; ILP32-NEXT:    ret
94 ; LP64-LABEL: callee:
95 ; LP64:       # %bb.0:
96 ; LP64-NEXT:    lui a0, %hi(var)
97 ; LP64-NEXT:    flw fa5, %lo(var)(a0)
98 ; LP64-NEXT:    flw fa4, %lo(var+4)(a0)
99 ; LP64-NEXT:    flw fa3, %lo(var+8)(a0)
100 ; LP64-NEXT:    flw fa2, %lo(var+12)(a0)
101 ; LP64-NEXT:    addi a1, a0, %lo(var)
102 ; LP64-NEXT:    flw fa1, 16(a1)
103 ; LP64-NEXT:    flw fa0, 20(a1)
104 ; LP64-NEXT:    flw ft0, 24(a1)
105 ; LP64-NEXT:    flw ft1, 28(a1)
106 ; LP64-NEXT:    flw ft2, 32(a1)
107 ; LP64-NEXT:    flw ft3, 36(a1)
108 ; LP64-NEXT:    flw ft4, 40(a1)
109 ; LP64-NEXT:    flw ft5, 44(a1)
110 ; LP64-NEXT:    flw ft6, 48(a1)
111 ; LP64-NEXT:    flw ft7, 52(a1)
112 ; LP64-NEXT:    flw fa6, 56(a1)
113 ; LP64-NEXT:    flw fa7, 60(a1)
114 ; LP64-NEXT:    flw ft8, 64(a1)
115 ; LP64-NEXT:    flw ft9, 68(a1)
116 ; LP64-NEXT:    flw ft10, 72(a1)
117 ; LP64-NEXT:    flw ft11, 76(a1)
118 ; LP64-NEXT:    flw fs0, 80(a1)
119 ; LP64-NEXT:    flw fs1, 84(a1)
120 ; LP64-NEXT:    flw fs2, 88(a1)
121 ; LP64-NEXT:    flw fs3, 92(a1)
122 ; LP64-NEXT:    flw fs4, 96(a1)
123 ; LP64-NEXT:    flw fs5, 100(a1)
124 ; LP64-NEXT:    flw fs6, 104(a1)
125 ; LP64-NEXT:    flw fs7, 108(a1)
126 ; LP64-NEXT:    flw fs8, 124(a1)
127 ; LP64-NEXT:    flw fs9, 120(a1)
128 ; LP64-NEXT:    flw fs10, 116(a1)
129 ; LP64-NEXT:    flw fs11, 112(a1)
130 ; LP64-NEXT:    fsw fs8, 124(a1)
131 ; LP64-NEXT:    fsw fs9, 120(a1)
132 ; LP64-NEXT:    fsw fs10, 116(a1)
133 ; LP64-NEXT:    fsw fs11, 112(a1)
134 ; LP64-NEXT:    fsw fs7, 108(a1)
135 ; LP64-NEXT:    fsw fs6, 104(a1)
136 ; LP64-NEXT:    fsw fs5, 100(a1)
137 ; LP64-NEXT:    fsw fs4, 96(a1)
138 ; LP64-NEXT:    fsw fs3, 92(a1)
139 ; LP64-NEXT:    fsw fs2, 88(a1)
140 ; LP64-NEXT:    fsw fs1, 84(a1)
141 ; LP64-NEXT:    fsw fs0, 80(a1)
142 ; LP64-NEXT:    fsw ft11, 76(a1)
143 ; LP64-NEXT:    fsw ft10, 72(a1)
144 ; LP64-NEXT:    fsw ft9, 68(a1)
145 ; LP64-NEXT:    fsw ft8, 64(a1)
146 ; LP64-NEXT:    fsw fa7, 60(a1)
147 ; LP64-NEXT:    fsw fa6, 56(a1)
148 ; LP64-NEXT:    fsw ft7, 52(a1)
149 ; LP64-NEXT:    fsw ft6, 48(a1)
150 ; LP64-NEXT:    fsw ft5, 44(a1)
151 ; LP64-NEXT:    fsw ft4, 40(a1)
152 ; LP64-NEXT:    fsw ft3, 36(a1)
153 ; LP64-NEXT:    fsw ft2, 32(a1)
154 ; LP64-NEXT:    fsw ft1, 28(a1)
155 ; LP64-NEXT:    fsw ft0, 24(a1)
156 ; LP64-NEXT:    fsw fa0, 20(a1)
157 ; LP64-NEXT:    fsw fa1, 16(a1)
158 ; LP64-NEXT:    fsw fa2, %lo(var+12)(a0)
159 ; LP64-NEXT:    fsw fa3, %lo(var+8)(a0)
160 ; LP64-NEXT:    fsw fa4, %lo(var+4)(a0)
161 ; LP64-NEXT:    fsw fa5, %lo(var)(a0)
162 ; LP64-NEXT:    ret
164 ; ILP32F-LABEL: callee:
165 ; ILP32F:       # %bb.0:
166 ; ILP32F-NEXT:    addi sp, sp, -48
167 ; ILP32F-NEXT:    fsw fs0, 44(sp) # 4-byte Folded Spill
168 ; ILP32F-NEXT:    fsw fs1, 40(sp) # 4-byte Folded Spill
169 ; ILP32F-NEXT:    fsw fs2, 36(sp) # 4-byte Folded Spill
170 ; ILP32F-NEXT:    fsw fs3, 32(sp) # 4-byte Folded Spill
171 ; ILP32F-NEXT:    fsw fs4, 28(sp) # 4-byte Folded Spill
172 ; ILP32F-NEXT:    fsw fs5, 24(sp) # 4-byte Folded Spill
173 ; ILP32F-NEXT:    fsw fs6, 20(sp) # 4-byte Folded Spill
174 ; ILP32F-NEXT:    fsw fs7, 16(sp) # 4-byte Folded Spill
175 ; ILP32F-NEXT:    fsw fs8, 12(sp) # 4-byte Folded Spill
176 ; ILP32F-NEXT:    fsw fs9, 8(sp) # 4-byte Folded Spill
177 ; ILP32F-NEXT:    fsw fs10, 4(sp) # 4-byte Folded Spill
178 ; ILP32F-NEXT:    fsw fs11, 0(sp) # 4-byte Folded Spill
179 ; ILP32F-NEXT:    lui a0, %hi(var)
180 ; ILP32F-NEXT:    flw fa5, %lo(var)(a0)
181 ; ILP32F-NEXT:    flw fa4, %lo(var+4)(a0)
182 ; ILP32F-NEXT:    flw fa3, %lo(var+8)(a0)
183 ; ILP32F-NEXT:    flw fa2, %lo(var+12)(a0)
184 ; ILP32F-NEXT:    addi a1, a0, %lo(var)
185 ; ILP32F-NEXT:    flw fa1, 16(a1)
186 ; ILP32F-NEXT:    flw fa0, 20(a1)
187 ; ILP32F-NEXT:    flw ft0, 24(a1)
188 ; ILP32F-NEXT:    flw ft1, 28(a1)
189 ; ILP32F-NEXT:    flw ft2, 32(a1)
190 ; ILP32F-NEXT:    flw ft3, 36(a1)
191 ; ILP32F-NEXT:    flw ft4, 40(a1)
192 ; ILP32F-NEXT:    flw ft5, 44(a1)
193 ; ILP32F-NEXT:    flw ft6, 48(a1)
194 ; ILP32F-NEXT:    flw ft7, 52(a1)
195 ; ILP32F-NEXT:    flw fa6, 56(a1)
196 ; ILP32F-NEXT:    flw fa7, 60(a1)
197 ; ILP32F-NEXT:    flw ft8, 64(a1)
198 ; ILP32F-NEXT:    flw ft9, 68(a1)
199 ; ILP32F-NEXT:    flw ft10, 72(a1)
200 ; ILP32F-NEXT:    flw ft11, 76(a1)
201 ; ILP32F-NEXT:    flw fs0, 80(a1)
202 ; ILP32F-NEXT:    flw fs1, 84(a1)
203 ; ILP32F-NEXT:    flw fs2, 88(a1)
204 ; ILP32F-NEXT:    flw fs3, 92(a1)
205 ; ILP32F-NEXT:    flw fs4, 96(a1)
206 ; ILP32F-NEXT:    flw fs5, 100(a1)
207 ; ILP32F-NEXT:    flw fs6, 104(a1)
208 ; ILP32F-NEXT:    flw fs7, 108(a1)
209 ; ILP32F-NEXT:    flw fs8, 124(a1)
210 ; ILP32F-NEXT:    flw fs9, 120(a1)
211 ; ILP32F-NEXT:    flw fs10, 116(a1)
212 ; ILP32F-NEXT:    flw fs11, 112(a1)
213 ; ILP32F-NEXT:    fsw fs8, 124(a1)
214 ; ILP32F-NEXT:    fsw fs9, 120(a1)
215 ; ILP32F-NEXT:    fsw fs10, 116(a1)
216 ; ILP32F-NEXT:    fsw fs11, 112(a1)
217 ; ILP32F-NEXT:    fsw fs7, 108(a1)
218 ; ILP32F-NEXT:    fsw fs6, 104(a1)
219 ; ILP32F-NEXT:    fsw fs5, 100(a1)
220 ; ILP32F-NEXT:    fsw fs4, 96(a1)
221 ; ILP32F-NEXT:    fsw fs3, 92(a1)
222 ; ILP32F-NEXT:    fsw fs2, 88(a1)
223 ; ILP32F-NEXT:    fsw fs1, 84(a1)
224 ; ILP32F-NEXT:    fsw fs0, 80(a1)
225 ; ILP32F-NEXT:    fsw ft11, 76(a1)
226 ; ILP32F-NEXT:    fsw ft10, 72(a1)
227 ; ILP32F-NEXT:    fsw ft9, 68(a1)
228 ; ILP32F-NEXT:    fsw ft8, 64(a1)
229 ; ILP32F-NEXT:    fsw fa7, 60(a1)
230 ; ILP32F-NEXT:    fsw fa6, 56(a1)
231 ; ILP32F-NEXT:    fsw ft7, 52(a1)
232 ; ILP32F-NEXT:    fsw ft6, 48(a1)
233 ; ILP32F-NEXT:    fsw ft5, 44(a1)
234 ; ILP32F-NEXT:    fsw ft4, 40(a1)
235 ; ILP32F-NEXT:    fsw ft3, 36(a1)
236 ; ILP32F-NEXT:    fsw ft2, 32(a1)
237 ; ILP32F-NEXT:    fsw ft1, 28(a1)
238 ; ILP32F-NEXT:    fsw ft0, 24(a1)
239 ; ILP32F-NEXT:    fsw fa0, 20(a1)
240 ; ILP32F-NEXT:    fsw fa1, 16(a1)
241 ; ILP32F-NEXT:    fsw fa2, %lo(var+12)(a0)
242 ; ILP32F-NEXT:    fsw fa3, %lo(var+8)(a0)
243 ; ILP32F-NEXT:    fsw fa4, %lo(var+4)(a0)
244 ; ILP32F-NEXT:    fsw fa5, %lo(var)(a0)
245 ; ILP32F-NEXT:    flw fs0, 44(sp) # 4-byte Folded Reload
246 ; ILP32F-NEXT:    flw fs1, 40(sp) # 4-byte Folded Reload
247 ; ILP32F-NEXT:    flw fs2, 36(sp) # 4-byte Folded Reload
248 ; ILP32F-NEXT:    flw fs3, 32(sp) # 4-byte Folded Reload
249 ; ILP32F-NEXT:    flw fs4, 28(sp) # 4-byte Folded Reload
250 ; ILP32F-NEXT:    flw fs5, 24(sp) # 4-byte Folded Reload
251 ; ILP32F-NEXT:    flw fs6, 20(sp) # 4-byte Folded Reload
252 ; ILP32F-NEXT:    flw fs7, 16(sp) # 4-byte Folded Reload
253 ; ILP32F-NEXT:    flw fs8, 12(sp) # 4-byte Folded Reload
254 ; ILP32F-NEXT:    flw fs9, 8(sp) # 4-byte Folded Reload
255 ; ILP32F-NEXT:    flw fs10, 4(sp) # 4-byte Folded Reload
256 ; ILP32F-NEXT:    flw fs11, 0(sp) # 4-byte Folded Reload
257 ; ILP32F-NEXT:    addi sp, sp, 48
258 ; ILP32F-NEXT:    ret
260 ; LP64F-LABEL: callee:
261 ; LP64F:       # %bb.0:
262 ; LP64F-NEXT:    addi sp, sp, -48
263 ; LP64F-NEXT:    fsw fs0, 44(sp) # 4-byte Folded Spill
264 ; LP64F-NEXT:    fsw fs1, 40(sp) # 4-byte Folded Spill
265 ; LP64F-NEXT:    fsw fs2, 36(sp) # 4-byte Folded Spill
266 ; LP64F-NEXT:    fsw fs3, 32(sp) # 4-byte Folded Spill
267 ; LP64F-NEXT:    fsw fs4, 28(sp) # 4-byte Folded Spill
268 ; LP64F-NEXT:    fsw fs5, 24(sp) # 4-byte Folded Spill
269 ; LP64F-NEXT:    fsw fs6, 20(sp) # 4-byte Folded Spill
270 ; LP64F-NEXT:    fsw fs7, 16(sp) # 4-byte Folded Spill
271 ; LP64F-NEXT:    fsw fs8, 12(sp) # 4-byte Folded Spill
272 ; LP64F-NEXT:    fsw fs9, 8(sp) # 4-byte Folded Spill
273 ; LP64F-NEXT:    fsw fs10, 4(sp) # 4-byte Folded Spill
274 ; LP64F-NEXT:    fsw fs11, 0(sp) # 4-byte Folded Spill
275 ; LP64F-NEXT:    lui a0, %hi(var)
276 ; LP64F-NEXT:    flw fa5, %lo(var)(a0)
277 ; LP64F-NEXT:    flw fa4, %lo(var+4)(a0)
278 ; LP64F-NEXT:    flw fa3, %lo(var+8)(a0)
279 ; LP64F-NEXT:    flw fa2, %lo(var+12)(a0)
280 ; LP64F-NEXT:    addi a1, a0, %lo(var)
281 ; LP64F-NEXT:    flw fa1, 16(a1)
282 ; LP64F-NEXT:    flw fa0, 20(a1)
283 ; LP64F-NEXT:    flw ft0, 24(a1)
284 ; LP64F-NEXT:    flw ft1, 28(a1)
285 ; LP64F-NEXT:    flw ft2, 32(a1)
286 ; LP64F-NEXT:    flw ft3, 36(a1)
287 ; LP64F-NEXT:    flw ft4, 40(a1)
288 ; LP64F-NEXT:    flw ft5, 44(a1)
289 ; LP64F-NEXT:    flw ft6, 48(a1)
290 ; LP64F-NEXT:    flw ft7, 52(a1)
291 ; LP64F-NEXT:    flw fa6, 56(a1)
292 ; LP64F-NEXT:    flw fa7, 60(a1)
293 ; LP64F-NEXT:    flw ft8, 64(a1)
294 ; LP64F-NEXT:    flw ft9, 68(a1)
295 ; LP64F-NEXT:    flw ft10, 72(a1)
296 ; LP64F-NEXT:    flw ft11, 76(a1)
297 ; LP64F-NEXT:    flw fs0, 80(a1)
298 ; LP64F-NEXT:    flw fs1, 84(a1)
299 ; LP64F-NEXT:    flw fs2, 88(a1)
300 ; LP64F-NEXT:    flw fs3, 92(a1)
301 ; LP64F-NEXT:    flw fs4, 96(a1)
302 ; LP64F-NEXT:    flw fs5, 100(a1)
303 ; LP64F-NEXT:    flw fs6, 104(a1)
304 ; LP64F-NEXT:    flw fs7, 108(a1)
305 ; LP64F-NEXT:    flw fs8, 124(a1)
306 ; LP64F-NEXT:    flw fs9, 120(a1)
307 ; LP64F-NEXT:    flw fs10, 116(a1)
308 ; LP64F-NEXT:    flw fs11, 112(a1)
309 ; LP64F-NEXT:    fsw fs8, 124(a1)
310 ; LP64F-NEXT:    fsw fs9, 120(a1)
311 ; LP64F-NEXT:    fsw fs10, 116(a1)
312 ; LP64F-NEXT:    fsw fs11, 112(a1)
313 ; LP64F-NEXT:    fsw fs7, 108(a1)
314 ; LP64F-NEXT:    fsw fs6, 104(a1)
315 ; LP64F-NEXT:    fsw fs5, 100(a1)
316 ; LP64F-NEXT:    fsw fs4, 96(a1)
317 ; LP64F-NEXT:    fsw fs3, 92(a1)
318 ; LP64F-NEXT:    fsw fs2, 88(a1)
319 ; LP64F-NEXT:    fsw fs1, 84(a1)
320 ; LP64F-NEXT:    fsw fs0, 80(a1)
321 ; LP64F-NEXT:    fsw ft11, 76(a1)
322 ; LP64F-NEXT:    fsw ft10, 72(a1)
323 ; LP64F-NEXT:    fsw ft9, 68(a1)
324 ; LP64F-NEXT:    fsw ft8, 64(a1)
325 ; LP64F-NEXT:    fsw fa7, 60(a1)
326 ; LP64F-NEXT:    fsw fa6, 56(a1)
327 ; LP64F-NEXT:    fsw ft7, 52(a1)
328 ; LP64F-NEXT:    fsw ft6, 48(a1)
329 ; LP64F-NEXT:    fsw ft5, 44(a1)
330 ; LP64F-NEXT:    fsw ft4, 40(a1)
331 ; LP64F-NEXT:    fsw ft3, 36(a1)
332 ; LP64F-NEXT:    fsw ft2, 32(a1)
333 ; LP64F-NEXT:    fsw ft1, 28(a1)
334 ; LP64F-NEXT:    fsw ft0, 24(a1)
335 ; LP64F-NEXT:    fsw fa0, 20(a1)
336 ; LP64F-NEXT:    fsw fa1, 16(a1)
337 ; LP64F-NEXT:    fsw fa2, %lo(var+12)(a0)
338 ; LP64F-NEXT:    fsw fa3, %lo(var+8)(a0)
339 ; LP64F-NEXT:    fsw fa4, %lo(var+4)(a0)
340 ; LP64F-NEXT:    fsw fa5, %lo(var)(a0)
341 ; LP64F-NEXT:    flw fs0, 44(sp) # 4-byte Folded Reload
342 ; LP64F-NEXT:    flw fs1, 40(sp) # 4-byte Folded Reload
343 ; LP64F-NEXT:    flw fs2, 36(sp) # 4-byte Folded Reload
344 ; LP64F-NEXT:    flw fs3, 32(sp) # 4-byte Folded Reload
345 ; LP64F-NEXT:    flw fs4, 28(sp) # 4-byte Folded Reload
346 ; LP64F-NEXT:    flw fs5, 24(sp) # 4-byte Folded Reload
347 ; LP64F-NEXT:    flw fs6, 20(sp) # 4-byte Folded Reload
348 ; LP64F-NEXT:    flw fs7, 16(sp) # 4-byte Folded Reload
349 ; LP64F-NEXT:    flw fs8, 12(sp) # 4-byte Folded Reload
350 ; LP64F-NEXT:    flw fs9, 8(sp) # 4-byte Folded Reload
351 ; LP64F-NEXT:    flw fs10, 4(sp) # 4-byte Folded Reload
352 ; LP64F-NEXT:    flw fs11, 0(sp) # 4-byte Folded Reload
353 ; LP64F-NEXT:    addi sp, sp, 48
354 ; LP64F-NEXT:    ret
356 ; ILP32D-LABEL: callee:
357 ; ILP32D:       # %bb.0:
358 ; ILP32D-NEXT:    addi sp, sp, -96
359 ; ILP32D-NEXT:    fsd fs0, 88(sp) # 8-byte Folded Spill
360 ; ILP32D-NEXT:    fsd fs1, 80(sp) # 8-byte Folded Spill
361 ; ILP32D-NEXT:    fsd fs2, 72(sp) # 8-byte Folded Spill
362 ; ILP32D-NEXT:    fsd fs3, 64(sp) # 8-byte Folded Spill
363 ; ILP32D-NEXT:    fsd fs4, 56(sp) # 8-byte Folded Spill
364 ; ILP32D-NEXT:    fsd fs5, 48(sp) # 8-byte Folded Spill
365 ; ILP32D-NEXT:    fsd fs6, 40(sp) # 8-byte Folded Spill
366 ; ILP32D-NEXT:    fsd fs7, 32(sp) # 8-byte Folded Spill
367 ; ILP32D-NEXT:    fsd fs8, 24(sp) # 8-byte Folded Spill
368 ; ILP32D-NEXT:    fsd fs9, 16(sp) # 8-byte Folded Spill
369 ; ILP32D-NEXT:    fsd fs10, 8(sp) # 8-byte Folded Spill
370 ; ILP32D-NEXT:    fsd fs11, 0(sp) # 8-byte Folded Spill
371 ; ILP32D-NEXT:    lui a0, %hi(var)
372 ; ILP32D-NEXT:    flw fa5, %lo(var)(a0)
373 ; ILP32D-NEXT:    flw fa4, %lo(var+4)(a0)
374 ; ILP32D-NEXT:    flw fa3, %lo(var+8)(a0)
375 ; ILP32D-NEXT:    flw fa2, %lo(var+12)(a0)
376 ; ILP32D-NEXT:    addi a1, a0, %lo(var)
377 ; ILP32D-NEXT:    flw fa1, 16(a1)
378 ; ILP32D-NEXT:    flw fa0, 20(a1)
379 ; ILP32D-NEXT:    flw ft0, 24(a1)
380 ; ILP32D-NEXT:    flw ft1, 28(a1)
381 ; ILP32D-NEXT:    flw ft2, 32(a1)
382 ; ILP32D-NEXT:    flw ft3, 36(a1)
383 ; ILP32D-NEXT:    flw ft4, 40(a1)
384 ; ILP32D-NEXT:    flw ft5, 44(a1)
385 ; ILP32D-NEXT:    flw ft6, 48(a1)
386 ; ILP32D-NEXT:    flw ft7, 52(a1)
387 ; ILP32D-NEXT:    flw fa6, 56(a1)
388 ; ILP32D-NEXT:    flw fa7, 60(a1)
389 ; ILP32D-NEXT:    flw ft8, 64(a1)
390 ; ILP32D-NEXT:    flw ft9, 68(a1)
391 ; ILP32D-NEXT:    flw ft10, 72(a1)
392 ; ILP32D-NEXT:    flw ft11, 76(a1)
393 ; ILP32D-NEXT:    flw fs0, 80(a1)
394 ; ILP32D-NEXT:    flw fs1, 84(a1)
395 ; ILP32D-NEXT:    flw fs2, 88(a1)
396 ; ILP32D-NEXT:    flw fs3, 92(a1)
397 ; ILP32D-NEXT:    flw fs4, 96(a1)
398 ; ILP32D-NEXT:    flw fs5, 100(a1)
399 ; ILP32D-NEXT:    flw fs6, 104(a1)
400 ; ILP32D-NEXT:    flw fs7, 108(a1)
401 ; ILP32D-NEXT:    flw fs8, 124(a1)
402 ; ILP32D-NEXT:    flw fs9, 120(a1)
403 ; ILP32D-NEXT:    flw fs10, 116(a1)
404 ; ILP32D-NEXT:    flw fs11, 112(a1)
405 ; ILP32D-NEXT:    fsw fs8, 124(a1)
406 ; ILP32D-NEXT:    fsw fs9, 120(a1)
407 ; ILP32D-NEXT:    fsw fs10, 116(a1)
408 ; ILP32D-NEXT:    fsw fs11, 112(a1)
409 ; ILP32D-NEXT:    fsw fs7, 108(a1)
410 ; ILP32D-NEXT:    fsw fs6, 104(a1)
411 ; ILP32D-NEXT:    fsw fs5, 100(a1)
412 ; ILP32D-NEXT:    fsw fs4, 96(a1)
413 ; ILP32D-NEXT:    fsw fs3, 92(a1)
414 ; ILP32D-NEXT:    fsw fs2, 88(a1)
415 ; ILP32D-NEXT:    fsw fs1, 84(a1)
416 ; ILP32D-NEXT:    fsw fs0, 80(a1)
417 ; ILP32D-NEXT:    fsw ft11, 76(a1)
418 ; ILP32D-NEXT:    fsw ft10, 72(a1)
419 ; ILP32D-NEXT:    fsw ft9, 68(a1)
420 ; ILP32D-NEXT:    fsw ft8, 64(a1)
421 ; ILP32D-NEXT:    fsw fa7, 60(a1)
422 ; ILP32D-NEXT:    fsw fa6, 56(a1)
423 ; ILP32D-NEXT:    fsw ft7, 52(a1)
424 ; ILP32D-NEXT:    fsw ft6, 48(a1)
425 ; ILP32D-NEXT:    fsw ft5, 44(a1)
426 ; ILP32D-NEXT:    fsw ft4, 40(a1)
427 ; ILP32D-NEXT:    fsw ft3, 36(a1)
428 ; ILP32D-NEXT:    fsw ft2, 32(a1)
429 ; ILP32D-NEXT:    fsw ft1, 28(a1)
430 ; ILP32D-NEXT:    fsw ft0, 24(a1)
431 ; ILP32D-NEXT:    fsw fa0, 20(a1)
432 ; ILP32D-NEXT:    fsw fa1, 16(a1)
433 ; ILP32D-NEXT:    fsw fa2, %lo(var+12)(a0)
434 ; ILP32D-NEXT:    fsw fa3, %lo(var+8)(a0)
435 ; ILP32D-NEXT:    fsw fa4, %lo(var+4)(a0)
436 ; ILP32D-NEXT:    fsw fa5, %lo(var)(a0)
437 ; ILP32D-NEXT:    fld fs0, 88(sp) # 8-byte Folded Reload
438 ; ILP32D-NEXT:    fld fs1, 80(sp) # 8-byte Folded Reload
439 ; ILP32D-NEXT:    fld fs2, 72(sp) # 8-byte Folded Reload
440 ; ILP32D-NEXT:    fld fs3, 64(sp) # 8-byte Folded Reload
441 ; ILP32D-NEXT:    fld fs4, 56(sp) # 8-byte Folded Reload
442 ; ILP32D-NEXT:    fld fs5, 48(sp) # 8-byte Folded Reload
443 ; ILP32D-NEXT:    fld fs6, 40(sp) # 8-byte Folded Reload
444 ; ILP32D-NEXT:    fld fs7, 32(sp) # 8-byte Folded Reload
445 ; ILP32D-NEXT:    fld fs8, 24(sp) # 8-byte Folded Reload
446 ; ILP32D-NEXT:    fld fs9, 16(sp) # 8-byte Folded Reload
447 ; ILP32D-NEXT:    fld fs10, 8(sp) # 8-byte Folded Reload
448 ; ILP32D-NEXT:    fld fs11, 0(sp) # 8-byte Folded Reload
449 ; ILP32D-NEXT:    addi sp, sp, 96
450 ; ILP32D-NEXT:    ret
452 ; LP64D-LABEL: callee:
453 ; LP64D:       # %bb.0:
454 ; LP64D-NEXT:    addi sp, sp, -96
455 ; LP64D-NEXT:    fsd fs0, 88(sp) # 8-byte Folded Spill
456 ; LP64D-NEXT:    fsd fs1, 80(sp) # 8-byte Folded Spill
457 ; LP64D-NEXT:    fsd fs2, 72(sp) # 8-byte Folded Spill
458 ; LP64D-NEXT:    fsd fs3, 64(sp) # 8-byte Folded Spill
459 ; LP64D-NEXT:    fsd fs4, 56(sp) # 8-byte Folded Spill
460 ; LP64D-NEXT:    fsd fs5, 48(sp) # 8-byte Folded Spill
461 ; LP64D-NEXT:    fsd fs6, 40(sp) # 8-byte Folded Spill
462 ; LP64D-NEXT:    fsd fs7, 32(sp) # 8-byte Folded Spill
463 ; LP64D-NEXT:    fsd fs8, 24(sp) # 8-byte Folded Spill
464 ; LP64D-NEXT:    fsd fs9, 16(sp) # 8-byte Folded Spill
465 ; LP64D-NEXT:    fsd fs10, 8(sp) # 8-byte Folded Spill
466 ; LP64D-NEXT:    fsd fs11, 0(sp) # 8-byte Folded Spill
467 ; LP64D-NEXT:    lui a0, %hi(var)
468 ; LP64D-NEXT:    flw fa5, %lo(var)(a0)
469 ; LP64D-NEXT:    flw fa4, %lo(var+4)(a0)
470 ; LP64D-NEXT:    flw fa3, %lo(var+8)(a0)
471 ; LP64D-NEXT:    flw fa2, %lo(var+12)(a0)
472 ; LP64D-NEXT:    addi a1, a0, %lo(var)
473 ; LP64D-NEXT:    flw fa1, 16(a1)
474 ; LP64D-NEXT:    flw fa0, 20(a1)
475 ; LP64D-NEXT:    flw ft0, 24(a1)
476 ; LP64D-NEXT:    flw ft1, 28(a1)
477 ; LP64D-NEXT:    flw ft2, 32(a1)
478 ; LP64D-NEXT:    flw ft3, 36(a1)
479 ; LP64D-NEXT:    flw ft4, 40(a1)
480 ; LP64D-NEXT:    flw ft5, 44(a1)
481 ; LP64D-NEXT:    flw ft6, 48(a1)
482 ; LP64D-NEXT:    flw ft7, 52(a1)
483 ; LP64D-NEXT:    flw fa6, 56(a1)
484 ; LP64D-NEXT:    flw fa7, 60(a1)
485 ; LP64D-NEXT:    flw ft8, 64(a1)
486 ; LP64D-NEXT:    flw ft9, 68(a1)
487 ; LP64D-NEXT:    flw ft10, 72(a1)
488 ; LP64D-NEXT:    flw ft11, 76(a1)
489 ; LP64D-NEXT:    flw fs0, 80(a1)
490 ; LP64D-NEXT:    flw fs1, 84(a1)
491 ; LP64D-NEXT:    flw fs2, 88(a1)
492 ; LP64D-NEXT:    flw fs3, 92(a1)
493 ; LP64D-NEXT:    flw fs4, 96(a1)
494 ; LP64D-NEXT:    flw fs5, 100(a1)
495 ; LP64D-NEXT:    flw fs6, 104(a1)
496 ; LP64D-NEXT:    flw fs7, 108(a1)
497 ; LP64D-NEXT:    flw fs8, 124(a1)
498 ; LP64D-NEXT:    flw fs9, 120(a1)
499 ; LP64D-NEXT:    flw fs10, 116(a1)
500 ; LP64D-NEXT:    flw fs11, 112(a1)
501 ; LP64D-NEXT:    fsw fs8, 124(a1)
502 ; LP64D-NEXT:    fsw fs9, 120(a1)
503 ; LP64D-NEXT:    fsw fs10, 116(a1)
504 ; LP64D-NEXT:    fsw fs11, 112(a1)
505 ; LP64D-NEXT:    fsw fs7, 108(a1)
506 ; LP64D-NEXT:    fsw fs6, 104(a1)
507 ; LP64D-NEXT:    fsw fs5, 100(a1)
508 ; LP64D-NEXT:    fsw fs4, 96(a1)
509 ; LP64D-NEXT:    fsw fs3, 92(a1)
510 ; LP64D-NEXT:    fsw fs2, 88(a1)
511 ; LP64D-NEXT:    fsw fs1, 84(a1)
512 ; LP64D-NEXT:    fsw fs0, 80(a1)
513 ; LP64D-NEXT:    fsw ft11, 76(a1)
514 ; LP64D-NEXT:    fsw ft10, 72(a1)
515 ; LP64D-NEXT:    fsw ft9, 68(a1)
516 ; LP64D-NEXT:    fsw ft8, 64(a1)
517 ; LP64D-NEXT:    fsw fa7, 60(a1)
518 ; LP64D-NEXT:    fsw fa6, 56(a1)
519 ; LP64D-NEXT:    fsw ft7, 52(a1)
520 ; LP64D-NEXT:    fsw ft6, 48(a1)
521 ; LP64D-NEXT:    fsw ft5, 44(a1)
522 ; LP64D-NEXT:    fsw ft4, 40(a1)
523 ; LP64D-NEXT:    fsw ft3, 36(a1)
524 ; LP64D-NEXT:    fsw ft2, 32(a1)
525 ; LP64D-NEXT:    fsw ft1, 28(a1)
526 ; LP64D-NEXT:    fsw ft0, 24(a1)
527 ; LP64D-NEXT:    fsw fa0, 20(a1)
528 ; LP64D-NEXT:    fsw fa1, 16(a1)
529 ; LP64D-NEXT:    fsw fa2, %lo(var+12)(a0)
530 ; LP64D-NEXT:    fsw fa3, %lo(var+8)(a0)
531 ; LP64D-NEXT:    fsw fa4, %lo(var+4)(a0)
532 ; LP64D-NEXT:    fsw fa5, %lo(var)(a0)
533 ; LP64D-NEXT:    fld fs0, 88(sp) # 8-byte Folded Reload
534 ; LP64D-NEXT:    fld fs1, 80(sp) # 8-byte Folded Reload
535 ; LP64D-NEXT:    fld fs2, 72(sp) # 8-byte Folded Reload
536 ; LP64D-NEXT:    fld fs3, 64(sp) # 8-byte Folded Reload
537 ; LP64D-NEXT:    fld fs4, 56(sp) # 8-byte Folded Reload
538 ; LP64D-NEXT:    fld fs5, 48(sp) # 8-byte Folded Reload
539 ; LP64D-NEXT:    fld fs6, 40(sp) # 8-byte Folded Reload
540 ; LP64D-NEXT:    fld fs7, 32(sp) # 8-byte Folded Reload
541 ; LP64D-NEXT:    fld fs8, 24(sp) # 8-byte Folded Reload
542 ; LP64D-NEXT:    fld fs9, 16(sp) # 8-byte Folded Reload
543 ; LP64D-NEXT:    fld fs10, 8(sp) # 8-byte Folded Reload
544 ; LP64D-NEXT:    fld fs11, 0(sp) # 8-byte Folded Reload
545 ; LP64D-NEXT:    addi sp, sp, 96
546 ; LP64D-NEXT:    ret
547   %val = load [32 x float], ptr @var
548   store volatile [32 x float] %val, ptr @var
549   ret void
552 ; This function tests that RISCVRegisterInfo::getCallPreservedMask returns
553 ; something appropriate.
555 ; For the soft float ABIs, no floating point registers are preserved, and
556 ; codegen will use only ft0 in the body of caller. For the 'f' and 'd ABIs,
557 ; fs0-fs11 are preserved across calls.
559 define void @caller() nounwind {
560 ; ILP32-LABEL: caller:
561 ; ILP32:       # %bb.0:
562 ; ILP32-NEXT:    addi sp, sp, -144
563 ; ILP32-NEXT:    sw ra, 140(sp) # 4-byte Folded Spill
564 ; ILP32-NEXT:    sw s0, 136(sp) # 4-byte Folded Spill
565 ; ILP32-NEXT:    sw s1, 132(sp) # 4-byte Folded Spill
566 ; ILP32-NEXT:    lui s0, %hi(var)
567 ; ILP32-NEXT:    flw fa5, %lo(var)(s0)
568 ; ILP32-NEXT:    fsw fa5, 128(sp) # 4-byte Folded Spill
569 ; ILP32-NEXT:    flw fa5, %lo(var+4)(s0)
570 ; ILP32-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
571 ; ILP32-NEXT:    flw fa5, %lo(var+8)(s0)
572 ; ILP32-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
573 ; ILP32-NEXT:    flw fa5, %lo(var+12)(s0)
574 ; ILP32-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
575 ; ILP32-NEXT:    addi s1, s0, %lo(var)
576 ; ILP32-NEXT:    flw fa5, 16(s1)
577 ; ILP32-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
578 ; ILP32-NEXT:    flw fa5, 20(s1)
579 ; ILP32-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
580 ; ILP32-NEXT:    flw fa5, 24(s1)
581 ; ILP32-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
582 ; ILP32-NEXT:    flw fa5, 28(s1)
583 ; ILP32-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
584 ; ILP32-NEXT:    flw fa5, 32(s1)
585 ; ILP32-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
586 ; ILP32-NEXT:    flw fa5, 36(s1)
587 ; ILP32-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
588 ; ILP32-NEXT:    flw fa5, 40(s1)
589 ; ILP32-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
590 ; ILP32-NEXT:    flw fa5, 44(s1)
591 ; ILP32-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
592 ; ILP32-NEXT:    flw fa5, 48(s1)
593 ; ILP32-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
594 ; ILP32-NEXT:    flw fa5, 52(s1)
595 ; ILP32-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
596 ; ILP32-NEXT:    flw fa5, 56(s1)
597 ; ILP32-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
598 ; ILP32-NEXT:    flw fa5, 60(s1)
599 ; ILP32-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
600 ; ILP32-NEXT:    flw fa5, 64(s1)
601 ; ILP32-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
602 ; ILP32-NEXT:    flw fa5, 68(s1)
603 ; ILP32-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
604 ; ILP32-NEXT:    flw fa5, 72(s1)
605 ; ILP32-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
606 ; ILP32-NEXT:    flw fa5, 76(s1)
607 ; ILP32-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
608 ; ILP32-NEXT:    flw fa5, 80(s1)
609 ; ILP32-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
610 ; ILP32-NEXT:    flw fa5, 84(s1)
611 ; ILP32-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
612 ; ILP32-NEXT:    flw fa5, 88(s1)
613 ; ILP32-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
614 ; ILP32-NEXT:    flw fa5, 92(s1)
615 ; ILP32-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
616 ; ILP32-NEXT:    flw fa5, 96(s1)
617 ; ILP32-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
618 ; ILP32-NEXT:    flw fa5, 100(s1)
619 ; ILP32-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
620 ; ILP32-NEXT:    flw fa5, 104(s1)
621 ; ILP32-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
622 ; ILP32-NEXT:    flw fa5, 108(s1)
623 ; ILP32-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
624 ; ILP32-NEXT:    flw fa5, 112(s1)
625 ; ILP32-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
626 ; ILP32-NEXT:    flw fa5, 116(s1)
627 ; ILP32-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
628 ; ILP32-NEXT:    flw fa5, 120(s1)
629 ; ILP32-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
630 ; ILP32-NEXT:    flw fa5, 124(s1)
631 ; ILP32-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
632 ; ILP32-NEXT:    call callee@plt
633 ; ILP32-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
634 ; ILP32-NEXT:    fsw fa5, 124(s1)
635 ; ILP32-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
636 ; ILP32-NEXT:    fsw fa5, 120(s1)
637 ; ILP32-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
638 ; ILP32-NEXT:    fsw fa5, 116(s1)
639 ; ILP32-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
640 ; ILP32-NEXT:    fsw fa5, 112(s1)
641 ; ILP32-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
642 ; ILP32-NEXT:    fsw fa5, 108(s1)
643 ; ILP32-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
644 ; ILP32-NEXT:    fsw fa5, 104(s1)
645 ; ILP32-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
646 ; ILP32-NEXT:    fsw fa5, 100(s1)
647 ; ILP32-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
648 ; ILP32-NEXT:    fsw fa5, 96(s1)
649 ; ILP32-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
650 ; ILP32-NEXT:    fsw fa5, 92(s1)
651 ; ILP32-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
652 ; ILP32-NEXT:    fsw fa5, 88(s1)
653 ; ILP32-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
654 ; ILP32-NEXT:    fsw fa5, 84(s1)
655 ; ILP32-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
656 ; ILP32-NEXT:    fsw fa5, 80(s1)
657 ; ILP32-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
658 ; ILP32-NEXT:    fsw fa5, 76(s1)
659 ; ILP32-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
660 ; ILP32-NEXT:    fsw fa5, 72(s1)
661 ; ILP32-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
662 ; ILP32-NEXT:    fsw fa5, 68(s1)
663 ; ILP32-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
664 ; ILP32-NEXT:    fsw fa5, 64(s1)
665 ; ILP32-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
666 ; ILP32-NEXT:    fsw fa5, 60(s1)
667 ; ILP32-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
668 ; ILP32-NEXT:    fsw fa5, 56(s1)
669 ; ILP32-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
670 ; ILP32-NEXT:    fsw fa5, 52(s1)
671 ; ILP32-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
672 ; ILP32-NEXT:    fsw fa5, 48(s1)
673 ; ILP32-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
674 ; ILP32-NEXT:    fsw fa5, 44(s1)
675 ; ILP32-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
676 ; ILP32-NEXT:    fsw fa5, 40(s1)
677 ; ILP32-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
678 ; ILP32-NEXT:    fsw fa5, 36(s1)
679 ; ILP32-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
680 ; ILP32-NEXT:    fsw fa5, 32(s1)
681 ; ILP32-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
682 ; ILP32-NEXT:    fsw fa5, 28(s1)
683 ; ILP32-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
684 ; ILP32-NEXT:    fsw fa5, 24(s1)
685 ; ILP32-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
686 ; ILP32-NEXT:    fsw fa5, 20(s1)
687 ; ILP32-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
688 ; ILP32-NEXT:    fsw fa5, 16(s1)
689 ; ILP32-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
690 ; ILP32-NEXT:    fsw fa5, %lo(var+12)(s0)
691 ; ILP32-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
692 ; ILP32-NEXT:    fsw fa5, %lo(var+8)(s0)
693 ; ILP32-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
694 ; ILP32-NEXT:    fsw fa5, %lo(var+4)(s0)
695 ; ILP32-NEXT:    flw fa5, 128(sp) # 4-byte Folded Reload
696 ; ILP32-NEXT:    fsw fa5, %lo(var)(s0)
697 ; ILP32-NEXT:    lw ra, 140(sp) # 4-byte Folded Reload
698 ; ILP32-NEXT:    lw s0, 136(sp) # 4-byte Folded Reload
699 ; ILP32-NEXT:    lw s1, 132(sp) # 4-byte Folded Reload
700 ; ILP32-NEXT:    addi sp, sp, 144
701 ; ILP32-NEXT:    ret
703 ; LP64-LABEL: caller:
704 ; LP64:       # %bb.0:
705 ; LP64-NEXT:    addi sp, sp, -160
706 ; LP64-NEXT:    sd ra, 152(sp) # 8-byte Folded Spill
707 ; LP64-NEXT:    sd s0, 144(sp) # 8-byte Folded Spill
708 ; LP64-NEXT:    sd s1, 136(sp) # 8-byte Folded Spill
709 ; LP64-NEXT:    lui s0, %hi(var)
710 ; LP64-NEXT:    flw fa5, %lo(var)(s0)
711 ; LP64-NEXT:    fsw fa5, 132(sp) # 4-byte Folded Spill
712 ; LP64-NEXT:    flw fa5, %lo(var+4)(s0)
713 ; LP64-NEXT:    fsw fa5, 128(sp) # 4-byte Folded Spill
714 ; LP64-NEXT:    flw fa5, %lo(var+8)(s0)
715 ; LP64-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
716 ; LP64-NEXT:    flw fa5, %lo(var+12)(s0)
717 ; LP64-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
718 ; LP64-NEXT:    addi s1, s0, %lo(var)
719 ; LP64-NEXT:    flw fa5, 16(s1)
720 ; LP64-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
721 ; LP64-NEXT:    flw fa5, 20(s1)
722 ; LP64-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
723 ; LP64-NEXT:    flw fa5, 24(s1)
724 ; LP64-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
725 ; LP64-NEXT:    flw fa5, 28(s1)
726 ; LP64-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
727 ; LP64-NEXT:    flw fa5, 32(s1)
728 ; LP64-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
729 ; LP64-NEXT:    flw fa5, 36(s1)
730 ; LP64-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
731 ; LP64-NEXT:    flw fa5, 40(s1)
732 ; LP64-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
733 ; LP64-NEXT:    flw fa5, 44(s1)
734 ; LP64-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
735 ; LP64-NEXT:    flw fa5, 48(s1)
736 ; LP64-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
737 ; LP64-NEXT:    flw fa5, 52(s1)
738 ; LP64-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
739 ; LP64-NEXT:    flw fa5, 56(s1)
740 ; LP64-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
741 ; LP64-NEXT:    flw fa5, 60(s1)
742 ; LP64-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
743 ; LP64-NEXT:    flw fa5, 64(s1)
744 ; LP64-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
745 ; LP64-NEXT:    flw fa5, 68(s1)
746 ; LP64-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
747 ; LP64-NEXT:    flw fa5, 72(s1)
748 ; LP64-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
749 ; LP64-NEXT:    flw fa5, 76(s1)
750 ; LP64-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
751 ; LP64-NEXT:    flw fa5, 80(s1)
752 ; LP64-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
753 ; LP64-NEXT:    flw fa5, 84(s1)
754 ; LP64-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
755 ; LP64-NEXT:    flw fa5, 88(s1)
756 ; LP64-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
757 ; LP64-NEXT:    flw fa5, 92(s1)
758 ; LP64-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
759 ; LP64-NEXT:    flw fa5, 96(s1)
760 ; LP64-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
761 ; LP64-NEXT:    flw fa5, 100(s1)
762 ; LP64-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
763 ; LP64-NEXT:    flw fa5, 104(s1)
764 ; LP64-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
765 ; LP64-NEXT:    flw fa5, 108(s1)
766 ; LP64-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
767 ; LP64-NEXT:    flw fa5, 112(s1)
768 ; LP64-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
769 ; LP64-NEXT:    flw fa5, 116(s1)
770 ; LP64-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
771 ; LP64-NEXT:    flw fa5, 120(s1)
772 ; LP64-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
773 ; LP64-NEXT:    flw fa5, 124(s1)
774 ; LP64-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
775 ; LP64-NEXT:    call callee@plt
776 ; LP64-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
777 ; LP64-NEXT:    fsw fa5, 124(s1)
778 ; LP64-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
779 ; LP64-NEXT:    fsw fa5, 120(s1)
780 ; LP64-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
781 ; LP64-NEXT:    fsw fa5, 116(s1)
782 ; LP64-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
783 ; LP64-NEXT:    fsw fa5, 112(s1)
784 ; LP64-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
785 ; LP64-NEXT:    fsw fa5, 108(s1)
786 ; LP64-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
787 ; LP64-NEXT:    fsw fa5, 104(s1)
788 ; LP64-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
789 ; LP64-NEXT:    fsw fa5, 100(s1)
790 ; LP64-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
791 ; LP64-NEXT:    fsw fa5, 96(s1)
792 ; LP64-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
793 ; LP64-NEXT:    fsw fa5, 92(s1)
794 ; LP64-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
795 ; LP64-NEXT:    fsw fa5, 88(s1)
796 ; LP64-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
797 ; LP64-NEXT:    fsw fa5, 84(s1)
798 ; LP64-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
799 ; LP64-NEXT:    fsw fa5, 80(s1)
800 ; LP64-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
801 ; LP64-NEXT:    fsw fa5, 76(s1)
802 ; LP64-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
803 ; LP64-NEXT:    fsw fa5, 72(s1)
804 ; LP64-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
805 ; LP64-NEXT:    fsw fa5, 68(s1)
806 ; LP64-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
807 ; LP64-NEXT:    fsw fa5, 64(s1)
808 ; LP64-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
809 ; LP64-NEXT:    fsw fa5, 60(s1)
810 ; LP64-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
811 ; LP64-NEXT:    fsw fa5, 56(s1)
812 ; LP64-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
813 ; LP64-NEXT:    fsw fa5, 52(s1)
814 ; LP64-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
815 ; LP64-NEXT:    fsw fa5, 48(s1)
816 ; LP64-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
817 ; LP64-NEXT:    fsw fa5, 44(s1)
818 ; LP64-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
819 ; LP64-NEXT:    fsw fa5, 40(s1)
820 ; LP64-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
821 ; LP64-NEXT:    fsw fa5, 36(s1)
822 ; LP64-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
823 ; LP64-NEXT:    fsw fa5, 32(s1)
824 ; LP64-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
825 ; LP64-NEXT:    fsw fa5, 28(s1)
826 ; LP64-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
827 ; LP64-NEXT:    fsw fa5, 24(s1)
828 ; LP64-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
829 ; LP64-NEXT:    fsw fa5, 20(s1)
830 ; LP64-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
831 ; LP64-NEXT:    fsw fa5, 16(s1)
832 ; LP64-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
833 ; LP64-NEXT:    fsw fa5, %lo(var+12)(s0)
834 ; LP64-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
835 ; LP64-NEXT:    fsw fa5, %lo(var+8)(s0)
836 ; LP64-NEXT:    flw fa5, 128(sp) # 4-byte Folded Reload
837 ; LP64-NEXT:    fsw fa5, %lo(var+4)(s0)
838 ; LP64-NEXT:    flw fa5, 132(sp) # 4-byte Folded Reload
839 ; LP64-NEXT:    fsw fa5, %lo(var)(s0)
840 ; LP64-NEXT:    ld ra, 152(sp) # 8-byte Folded Reload
841 ; LP64-NEXT:    ld s0, 144(sp) # 8-byte Folded Reload
842 ; LP64-NEXT:    ld s1, 136(sp) # 8-byte Folded Reload
843 ; LP64-NEXT:    addi sp, sp, 160
844 ; LP64-NEXT:    ret
846 ; ILP32F-LABEL: caller:
847 ; ILP32F:       # %bb.0:
848 ; ILP32F-NEXT:    addi sp, sp, -144
849 ; ILP32F-NEXT:    sw ra, 140(sp) # 4-byte Folded Spill
850 ; ILP32F-NEXT:    sw s0, 136(sp) # 4-byte Folded Spill
851 ; ILP32F-NEXT:    sw s1, 132(sp) # 4-byte Folded Spill
852 ; ILP32F-NEXT:    fsw fs0, 128(sp) # 4-byte Folded Spill
853 ; ILP32F-NEXT:    fsw fs1, 124(sp) # 4-byte Folded Spill
854 ; ILP32F-NEXT:    fsw fs2, 120(sp) # 4-byte Folded Spill
855 ; ILP32F-NEXT:    fsw fs3, 116(sp) # 4-byte Folded Spill
856 ; ILP32F-NEXT:    fsw fs4, 112(sp) # 4-byte Folded Spill
857 ; ILP32F-NEXT:    fsw fs5, 108(sp) # 4-byte Folded Spill
858 ; ILP32F-NEXT:    fsw fs6, 104(sp) # 4-byte Folded Spill
859 ; ILP32F-NEXT:    fsw fs7, 100(sp) # 4-byte Folded Spill
860 ; ILP32F-NEXT:    fsw fs8, 96(sp) # 4-byte Folded Spill
861 ; ILP32F-NEXT:    fsw fs9, 92(sp) # 4-byte Folded Spill
862 ; ILP32F-NEXT:    fsw fs10, 88(sp) # 4-byte Folded Spill
863 ; ILP32F-NEXT:    fsw fs11, 84(sp) # 4-byte Folded Spill
864 ; ILP32F-NEXT:    lui s0, %hi(var)
865 ; ILP32F-NEXT:    flw fa5, %lo(var)(s0)
866 ; ILP32F-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
867 ; ILP32F-NEXT:    flw fa5, %lo(var+4)(s0)
868 ; ILP32F-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
869 ; ILP32F-NEXT:    flw fa5, %lo(var+8)(s0)
870 ; ILP32F-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
871 ; ILP32F-NEXT:    flw fa5, %lo(var+12)(s0)
872 ; ILP32F-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
873 ; ILP32F-NEXT:    addi s1, s0, %lo(var)
874 ; ILP32F-NEXT:    flw fa5, 16(s1)
875 ; ILP32F-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
876 ; ILP32F-NEXT:    flw fa5, 20(s1)
877 ; ILP32F-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
878 ; ILP32F-NEXT:    flw fa5, 24(s1)
879 ; ILP32F-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
880 ; ILP32F-NEXT:    flw fa5, 28(s1)
881 ; ILP32F-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
882 ; ILP32F-NEXT:    flw fa5, 32(s1)
883 ; ILP32F-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
884 ; ILP32F-NEXT:    flw fa5, 36(s1)
885 ; ILP32F-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
886 ; ILP32F-NEXT:    flw fa5, 40(s1)
887 ; ILP32F-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
888 ; ILP32F-NEXT:    flw fa5, 44(s1)
889 ; ILP32F-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
890 ; ILP32F-NEXT:    flw fa5, 48(s1)
891 ; ILP32F-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
892 ; ILP32F-NEXT:    flw fa5, 52(s1)
893 ; ILP32F-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
894 ; ILP32F-NEXT:    flw fa5, 56(s1)
895 ; ILP32F-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
896 ; ILP32F-NEXT:    flw fa5, 60(s1)
897 ; ILP32F-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
898 ; ILP32F-NEXT:    flw fa5, 64(s1)
899 ; ILP32F-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
900 ; ILP32F-NEXT:    flw fa5, 68(s1)
901 ; ILP32F-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
902 ; ILP32F-NEXT:    flw fa5, 72(s1)
903 ; ILP32F-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
904 ; ILP32F-NEXT:    flw fa5, 76(s1)
905 ; ILP32F-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
906 ; ILP32F-NEXT:    flw fs8, 80(s1)
907 ; ILP32F-NEXT:    flw fs9, 84(s1)
908 ; ILP32F-NEXT:    flw fs10, 88(s1)
909 ; ILP32F-NEXT:    flw fs11, 92(s1)
910 ; ILP32F-NEXT:    flw fs0, 96(s1)
911 ; ILP32F-NEXT:    flw fs1, 100(s1)
912 ; ILP32F-NEXT:    flw fs2, 104(s1)
913 ; ILP32F-NEXT:    flw fs3, 108(s1)
914 ; ILP32F-NEXT:    flw fs4, 112(s1)
915 ; ILP32F-NEXT:    flw fs5, 116(s1)
916 ; ILP32F-NEXT:    flw fs6, 120(s1)
917 ; ILP32F-NEXT:    flw fs7, 124(s1)
918 ; ILP32F-NEXT:    call callee@plt
919 ; ILP32F-NEXT:    fsw fs7, 124(s1)
920 ; ILP32F-NEXT:    fsw fs6, 120(s1)
921 ; ILP32F-NEXT:    fsw fs5, 116(s1)
922 ; ILP32F-NEXT:    fsw fs4, 112(s1)
923 ; ILP32F-NEXT:    fsw fs3, 108(s1)
924 ; ILP32F-NEXT:    fsw fs2, 104(s1)
925 ; ILP32F-NEXT:    fsw fs1, 100(s1)
926 ; ILP32F-NEXT:    fsw fs0, 96(s1)
927 ; ILP32F-NEXT:    fsw fs11, 92(s1)
928 ; ILP32F-NEXT:    fsw fs10, 88(s1)
929 ; ILP32F-NEXT:    fsw fs9, 84(s1)
930 ; ILP32F-NEXT:    fsw fs8, 80(s1)
931 ; ILP32F-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
932 ; ILP32F-NEXT:    fsw fa5, 76(s1)
933 ; ILP32F-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
934 ; ILP32F-NEXT:    fsw fa5, 72(s1)
935 ; ILP32F-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
936 ; ILP32F-NEXT:    fsw fa5, 68(s1)
937 ; ILP32F-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
938 ; ILP32F-NEXT:    fsw fa5, 64(s1)
939 ; ILP32F-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
940 ; ILP32F-NEXT:    fsw fa5, 60(s1)
941 ; ILP32F-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
942 ; ILP32F-NEXT:    fsw fa5, 56(s1)
943 ; ILP32F-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
944 ; ILP32F-NEXT:    fsw fa5, 52(s1)
945 ; ILP32F-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
946 ; ILP32F-NEXT:    fsw fa5, 48(s1)
947 ; ILP32F-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
948 ; ILP32F-NEXT:    fsw fa5, 44(s1)
949 ; ILP32F-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
950 ; ILP32F-NEXT:    fsw fa5, 40(s1)
951 ; ILP32F-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
952 ; ILP32F-NEXT:    fsw fa5, 36(s1)
953 ; ILP32F-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
954 ; ILP32F-NEXT:    fsw fa5, 32(s1)
955 ; ILP32F-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
956 ; ILP32F-NEXT:    fsw fa5, 28(s1)
957 ; ILP32F-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
958 ; ILP32F-NEXT:    fsw fa5, 24(s1)
959 ; ILP32F-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
960 ; ILP32F-NEXT:    fsw fa5, 20(s1)
961 ; ILP32F-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
962 ; ILP32F-NEXT:    fsw fa5, 16(s1)
963 ; ILP32F-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
964 ; ILP32F-NEXT:    fsw fa5, %lo(var+12)(s0)
965 ; ILP32F-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
966 ; ILP32F-NEXT:    fsw fa5, %lo(var+8)(s0)
967 ; ILP32F-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
968 ; ILP32F-NEXT:    fsw fa5, %lo(var+4)(s0)
969 ; ILP32F-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
970 ; ILP32F-NEXT:    fsw fa5, %lo(var)(s0)
971 ; ILP32F-NEXT:    lw ra, 140(sp) # 4-byte Folded Reload
972 ; ILP32F-NEXT:    lw s0, 136(sp) # 4-byte Folded Reload
973 ; ILP32F-NEXT:    lw s1, 132(sp) # 4-byte Folded Reload
974 ; ILP32F-NEXT:    flw fs0, 128(sp) # 4-byte Folded Reload
975 ; ILP32F-NEXT:    flw fs1, 124(sp) # 4-byte Folded Reload
976 ; ILP32F-NEXT:    flw fs2, 120(sp) # 4-byte Folded Reload
977 ; ILP32F-NEXT:    flw fs3, 116(sp) # 4-byte Folded Reload
978 ; ILP32F-NEXT:    flw fs4, 112(sp) # 4-byte Folded Reload
979 ; ILP32F-NEXT:    flw fs5, 108(sp) # 4-byte Folded Reload
980 ; ILP32F-NEXT:    flw fs6, 104(sp) # 4-byte Folded Reload
981 ; ILP32F-NEXT:    flw fs7, 100(sp) # 4-byte Folded Reload
982 ; ILP32F-NEXT:    flw fs8, 96(sp) # 4-byte Folded Reload
983 ; ILP32F-NEXT:    flw fs9, 92(sp) # 4-byte Folded Reload
984 ; ILP32F-NEXT:    flw fs10, 88(sp) # 4-byte Folded Reload
985 ; ILP32F-NEXT:    flw fs11, 84(sp) # 4-byte Folded Reload
986 ; ILP32F-NEXT:    addi sp, sp, 144
987 ; ILP32F-NEXT:    ret
989 ; LP64F-LABEL: caller:
990 ; LP64F:       # %bb.0:
991 ; LP64F-NEXT:    addi sp, sp, -160
992 ; LP64F-NEXT:    sd ra, 152(sp) # 8-byte Folded Spill
993 ; LP64F-NEXT:    sd s0, 144(sp) # 8-byte Folded Spill
994 ; LP64F-NEXT:    sd s1, 136(sp) # 8-byte Folded Spill
995 ; LP64F-NEXT:    fsw fs0, 132(sp) # 4-byte Folded Spill
996 ; LP64F-NEXT:    fsw fs1, 128(sp) # 4-byte Folded Spill
997 ; LP64F-NEXT:    fsw fs2, 124(sp) # 4-byte Folded Spill
998 ; LP64F-NEXT:    fsw fs3, 120(sp) # 4-byte Folded Spill
999 ; LP64F-NEXT:    fsw fs4, 116(sp) # 4-byte Folded Spill
1000 ; LP64F-NEXT:    fsw fs5, 112(sp) # 4-byte Folded Spill
1001 ; LP64F-NEXT:    fsw fs6, 108(sp) # 4-byte Folded Spill
1002 ; LP64F-NEXT:    fsw fs7, 104(sp) # 4-byte Folded Spill
1003 ; LP64F-NEXT:    fsw fs8, 100(sp) # 4-byte Folded Spill
1004 ; LP64F-NEXT:    fsw fs9, 96(sp) # 4-byte Folded Spill
1005 ; LP64F-NEXT:    fsw fs10, 92(sp) # 4-byte Folded Spill
1006 ; LP64F-NEXT:    fsw fs11, 88(sp) # 4-byte Folded Spill
1007 ; LP64F-NEXT:    lui s0, %hi(var)
1008 ; LP64F-NEXT:    flw fa5, %lo(var)(s0)
1009 ; LP64F-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1010 ; LP64F-NEXT:    flw fa5, %lo(var+4)(s0)
1011 ; LP64F-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1012 ; LP64F-NEXT:    flw fa5, %lo(var+8)(s0)
1013 ; LP64F-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1014 ; LP64F-NEXT:    flw fa5, %lo(var+12)(s0)
1015 ; LP64F-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1016 ; LP64F-NEXT:    addi s1, s0, %lo(var)
1017 ; LP64F-NEXT:    flw fa5, 16(s1)
1018 ; LP64F-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1019 ; LP64F-NEXT:    flw fa5, 20(s1)
1020 ; LP64F-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1021 ; LP64F-NEXT:    flw fa5, 24(s1)
1022 ; LP64F-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1023 ; LP64F-NEXT:    flw fa5, 28(s1)
1024 ; LP64F-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1025 ; LP64F-NEXT:    flw fa5, 32(s1)
1026 ; LP64F-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1027 ; LP64F-NEXT:    flw fa5, 36(s1)
1028 ; LP64F-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1029 ; LP64F-NEXT:    flw fa5, 40(s1)
1030 ; LP64F-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1031 ; LP64F-NEXT:    flw fa5, 44(s1)
1032 ; LP64F-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1033 ; LP64F-NEXT:    flw fa5, 48(s1)
1034 ; LP64F-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1035 ; LP64F-NEXT:    flw fa5, 52(s1)
1036 ; LP64F-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1037 ; LP64F-NEXT:    flw fa5, 56(s1)
1038 ; LP64F-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1039 ; LP64F-NEXT:    flw fa5, 60(s1)
1040 ; LP64F-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1041 ; LP64F-NEXT:    flw fa5, 64(s1)
1042 ; LP64F-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1043 ; LP64F-NEXT:    flw fa5, 68(s1)
1044 ; LP64F-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1045 ; LP64F-NEXT:    flw fa5, 72(s1)
1046 ; LP64F-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1047 ; LP64F-NEXT:    flw fa5, 76(s1)
1048 ; LP64F-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1049 ; LP64F-NEXT:    flw fs8, 80(s1)
1050 ; LP64F-NEXT:    flw fs9, 84(s1)
1051 ; LP64F-NEXT:    flw fs10, 88(s1)
1052 ; LP64F-NEXT:    flw fs11, 92(s1)
1053 ; LP64F-NEXT:    flw fs0, 96(s1)
1054 ; LP64F-NEXT:    flw fs1, 100(s1)
1055 ; LP64F-NEXT:    flw fs2, 104(s1)
1056 ; LP64F-NEXT:    flw fs3, 108(s1)
1057 ; LP64F-NEXT:    flw fs4, 112(s1)
1058 ; LP64F-NEXT:    flw fs5, 116(s1)
1059 ; LP64F-NEXT:    flw fs6, 120(s1)
1060 ; LP64F-NEXT:    flw fs7, 124(s1)
1061 ; LP64F-NEXT:    call callee@plt
1062 ; LP64F-NEXT:    fsw fs7, 124(s1)
1063 ; LP64F-NEXT:    fsw fs6, 120(s1)
1064 ; LP64F-NEXT:    fsw fs5, 116(s1)
1065 ; LP64F-NEXT:    fsw fs4, 112(s1)
1066 ; LP64F-NEXT:    fsw fs3, 108(s1)
1067 ; LP64F-NEXT:    fsw fs2, 104(s1)
1068 ; LP64F-NEXT:    fsw fs1, 100(s1)
1069 ; LP64F-NEXT:    fsw fs0, 96(s1)
1070 ; LP64F-NEXT:    fsw fs11, 92(s1)
1071 ; LP64F-NEXT:    fsw fs10, 88(s1)
1072 ; LP64F-NEXT:    fsw fs9, 84(s1)
1073 ; LP64F-NEXT:    fsw fs8, 80(s1)
1074 ; LP64F-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1075 ; LP64F-NEXT:    fsw fa5, 76(s1)
1076 ; LP64F-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1077 ; LP64F-NEXT:    fsw fa5, 72(s1)
1078 ; LP64F-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1079 ; LP64F-NEXT:    fsw fa5, 68(s1)
1080 ; LP64F-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1081 ; LP64F-NEXT:    fsw fa5, 64(s1)
1082 ; LP64F-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1083 ; LP64F-NEXT:    fsw fa5, 60(s1)
1084 ; LP64F-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1085 ; LP64F-NEXT:    fsw fa5, 56(s1)
1086 ; LP64F-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1087 ; LP64F-NEXT:    fsw fa5, 52(s1)
1088 ; LP64F-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1089 ; LP64F-NEXT:    fsw fa5, 48(s1)
1090 ; LP64F-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1091 ; LP64F-NEXT:    fsw fa5, 44(s1)
1092 ; LP64F-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1093 ; LP64F-NEXT:    fsw fa5, 40(s1)
1094 ; LP64F-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1095 ; LP64F-NEXT:    fsw fa5, 36(s1)
1096 ; LP64F-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1097 ; LP64F-NEXT:    fsw fa5, 32(s1)
1098 ; LP64F-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1099 ; LP64F-NEXT:    fsw fa5, 28(s1)
1100 ; LP64F-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1101 ; LP64F-NEXT:    fsw fa5, 24(s1)
1102 ; LP64F-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1103 ; LP64F-NEXT:    fsw fa5, 20(s1)
1104 ; LP64F-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1105 ; LP64F-NEXT:    fsw fa5, 16(s1)
1106 ; LP64F-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1107 ; LP64F-NEXT:    fsw fa5, %lo(var+12)(s0)
1108 ; LP64F-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1109 ; LP64F-NEXT:    fsw fa5, %lo(var+8)(s0)
1110 ; LP64F-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1111 ; LP64F-NEXT:    fsw fa5, %lo(var+4)(s0)
1112 ; LP64F-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1113 ; LP64F-NEXT:    fsw fa5, %lo(var)(s0)
1114 ; LP64F-NEXT:    ld ra, 152(sp) # 8-byte Folded Reload
1115 ; LP64F-NEXT:    ld s0, 144(sp) # 8-byte Folded Reload
1116 ; LP64F-NEXT:    ld s1, 136(sp) # 8-byte Folded Reload
1117 ; LP64F-NEXT:    flw fs0, 132(sp) # 4-byte Folded Reload
1118 ; LP64F-NEXT:    flw fs1, 128(sp) # 4-byte Folded Reload
1119 ; LP64F-NEXT:    flw fs2, 124(sp) # 4-byte Folded Reload
1120 ; LP64F-NEXT:    flw fs3, 120(sp) # 4-byte Folded Reload
1121 ; LP64F-NEXT:    flw fs4, 116(sp) # 4-byte Folded Reload
1122 ; LP64F-NEXT:    flw fs5, 112(sp) # 4-byte Folded Reload
1123 ; LP64F-NEXT:    flw fs6, 108(sp) # 4-byte Folded Reload
1124 ; LP64F-NEXT:    flw fs7, 104(sp) # 4-byte Folded Reload
1125 ; LP64F-NEXT:    flw fs8, 100(sp) # 4-byte Folded Reload
1126 ; LP64F-NEXT:    flw fs9, 96(sp) # 4-byte Folded Reload
1127 ; LP64F-NEXT:    flw fs10, 92(sp) # 4-byte Folded Reload
1128 ; LP64F-NEXT:    flw fs11, 88(sp) # 4-byte Folded Reload
1129 ; LP64F-NEXT:    addi sp, sp, 160
1130 ; LP64F-NEXT:    ret
1132 ; ILP32D-LABEL: caller:
1133 ; ILP32D:       # %bb.0:
1134 ; ILP32D-NEXT:    addi sp, sp, -192
1135 ; ILP32D-NEXT:    sw ra, 188(sp) # 4-byte Folded Spill
1136 ; ILP32D-NEXT:    sw s0, 184(sp) # 4-byte Folded Spill
1137 ; ILP32D-NEXT:    sw s1, 180(sp) # 4-byte Folded Spill
1138 ; ILP32D-NEXT:    fsd fs0, 168(sp) # 8-byte Folded Spill
1139 ; ILP32D-NEXT:    fsd fs1, 160(sp) # 8-byte Folded Spill
1140 ; ILP32D-NEXT:    fsd fs2, 152(sp) # 8-byte Folded Spill
1141 ; ILP32D-NEXT:    fsd fs3, 144(sp) # 8-byte Folded Spill
1142 ; ILP32D-NEXT:    fsd fs4, 136(sp) # 8-byte Folded Spill
1143 ; ILP32D-NEXT:    fsd fs5, 128(sp) # 8-byte Folded Spill
1144 ; ILP32D-NEXT:    fsd fs6, 120(sp) # 8-byte Folded Spill
1145 ; ILP32D-NEXT:    fsd fs7, 112(sp) # 8-byte Folded Spill
1146 ; ILP32D-NEXT:    fsd fs8, 104(sp) # 8-byte Folded Spill
1147 ; ILP32D-NEXT:    fsd fs9, 96(sp) # 8-byte Folded Spill
1148 ; ILP32D-NEXT:    fsd fs10, 88(sp) # 8-byte Folded Spill
1149 ; ILP32D-NEXT:    fsd fs11, 80(sp) # 8-byte Folded Spill
1150 ; ILP32D-NEXT:    lui s0, %hi(var)
1151 ; ILP32D-NEXT:    flw fa5, %lo(var)(s0)
1152 ; ILP32D-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1153 ; ILP32D-NEXT:    flw fa5, %lo(var+4)(s0)
1154 ; ILP32D-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1155 ; ILP32D-NEXT:    flw fa5, %lo(var+8)(s0)
1156 ; ILP32D-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1157 ; ILP32D-NEXT:    flw fa5, %lo(var+12)(s0)
1158 ; ILP32D-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1159 ; ILP32D-NEXT:    addi s1, s0, %lo(var)
1160 ; ILP32D-NEXT:    flw fa5, 16(s1)
1161 ; ILP32D-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1162 ; ILP32D-NEXT:    flw fa5, 20(s1)
1163 ; ILP32D-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1164 ; ILP32D-NEXT:    flw fa5, 24(s1)
1165 ; ILP32D-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1166 ; ILP32D-NEXT:    flw fa5, 28(s1)
1167 ; ILP32D-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1168 ; ILP32D-NEXT:    flw fa5, 32(s1)
1169 ; ILP32D-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1170 ; ILP32D-NEXT:    flw fa5, 36(s1)
1171 ; ILP32D-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1172 ; ILP32D-NEXT:    flw fa5, 40(s1)
1173 ; ILP32D-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1174 ; ILP32D-NEXT:    flw fa5, 44(s1)
1175 ; ILP32D-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1176 ; ILP32D-NEXT:    flw fa5, 48(s1)
1177 ; ILP32D-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1178 ; ILP32D-NEXT:    flw fa5, 52(s1)
1179 ; ILP32D-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1180 ; ILP32D-NEXT:    flw fa5, 56(s1)
1181 ; ILP32D-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1182 ; ILP32D-NEXT:    flw fa5, 60(s1)
1183 ; ILP32D-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1184 ; ILP32D-NEXT:    flw fa5, 64(s1)
1185 ; ILP32D-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1186 ; ILP32D-NEXT:    flw fa5, 68(s1)
1187 ; ILP32D-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1188 ; ILP32D-NEXT:    flw fa5, 72(s1)
1189 ; ILP32D-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
1190 ; ILP32D-NEXT:    flw fa5, 76(s1)
1191 ; ILP32D-NEXT:    fsw fa5, 0(sp) # 4-byte Folded Spill
1192 ; ILP32D-NEXT:    flw fs8, 80(s1)
1193 ; ILP32D-NEXT:    flw fs9, 84(s1)
1194 ; ILP32D-NEXT:    flw fs10, 88(s1)
1195 ; ILP32D-NEXT:    flw fs11, 92(s1)
1196 ; ILP32D-NEXT:    flw fs0, 96(s1)
1197 ; ILP32D-NEXT:    flw fs1, 100(s1)
1198 ; ILP32D-NEXT:    flw fs2, 104(s1)
1199 ; ILP32D-NEXT:    flw fs3, 108(s1)
1200 ; ILP32D-NEXT:    flw fs4, 112(s1)
1201 ; ILP32D-NEXT:    flw fs5, 116(s1)
1202 ; ILP32D-NEXT:    flw fs6, 120(s1)
1203 ; ILP32D-NEXT:    flw fs7, 124(s1)
1204 ; ILP32D-NEXT:    call callee@plt
1205 ; ILP32D-NEXT:    fsw fs7, 124(s1)
1206 ; ILP32D-NEXT:    fsw fs6, 120(s1)
1207 ; ILP32D-NEXT:    fsw fs5, 116(s1)
1208 ; ILP32D-NEXT:    fsw fs4, 112(s1)
1209 ; ILP32D-NEXT:    fsw fs3, 108(s1)
1210 ; ILP32D-NEXT:    fsw fs2, 104(s1)
1211 ; ILP32D-NEXT:    fsw fs1, 100(s1)
1212 ; ILP32D-NEXT:    fsw fs0, 96(s1)
1213 ; ILP32D-NEXT:    fsw fs11, 92(s1)
1214 ; ILP32D-NEXT:    fsw fs10, 88(s1)
1215 ; ILP32D-NEXT:    fsw fs9, 84(s1)
1216 ; ILP32D-NEXT:    fsw fs8, 80(s1)
1217 ; ILP32D-NEXT:    flw fa5, 0(sp) # 4-byte Folded Reload
1218 ; ILP32D-NEXT:    fsw fa5, 76(s1)
1219 ; ILP32D-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
1220 ; ILP32D-NEXT:    fsw fa5, 72(s1)
1221 ; ILP32D-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1222 ; ILP32D-NEXT:    fsw fa5, 68(s1)
1223 ; ILP32D-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1224 ; ILP32D-NEXT:    fsw fa5, 64(s1)
1225 ; ILP32D-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1226 ; ILP32D-NEXT:    fsw fa5, 60(s1)
1227 ; ILP32D-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1228 ; ILP32D-NEXT:    fsw fa5, 56(s1)
1229 ; ILP32D-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1230 ; ILP32D-NEXT:    fsw fa5, 52(s1)
1231 ; ILP32D-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1232 ; ILP32D-NEXT:    fsw fa5, 48(s1)
1233 ; ILP32D-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1234 ; ILP32D-NEXT:    fsw fa5, 44(s1)
1235 ; ILP32D-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1236 ; ILP32D-NEXT:    fsw fa5, 40(s1)
1237 ; ILP32D-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1238 ; ILP32D-NEXT:    fsw fa5, 36(s1)
1239 ; ILP32D-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1240 ; ILP32D-NEXT:    fsw fa5, 32(s1)
1241 ; ILP32D-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1242 ; ILP32D-NEXT:    fsw fa5, 28(s1)
1243 ; ILP32D-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1244 ; ILP32D-NEXT:    fsw fa5, 24(s1)
1245 ; ILP32D-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1246 ; ILP32D-NEXT:    fsw fa5, 20(s1)
1247 ; ILP32D-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1248 ; ILP32D-NEXT:    fsw fa5, 16(s1)
1249 ; ILP32D-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1250 ; ILP32D-NEXT:    fsw fa5, %lo(var+12)(s0)
1251 ; ILP32D-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1252 ; ILP32D-NEXT:    fsw fa5, %lo(var+8)(s0)
1253 ; ILP32D-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1254 ; ILP32D-NEXT:    fsw fa5, %lo(var+4)(s0)
1255 ; ILP32D-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1256 ; ILP32D-NEXT:    fsw fa5, %lo(var)(s0)
1257 ; ILP32D-NEXT:    lw ra, 188(sp) # 4-byte Folded Reload
1258 ; ILP32D-NEXT:    lw s0, 184(sp) # 4-byte Folded Reload
1259 ; ILP32D-NEXT:    lw s1, 180(sp) # 4-byte Folded Reload
1260 ; ILP32D-NEXT:    fld fs0, 168(sp) # 8-byte Folded Reload
1261 ; ILP32D-NEXT:    fld fs1, 160(sp) # 8-byte Folded Reload
1262 ; ILP32D-NEXT:    fld fs2, 152(sp) # 8-byte Folded Reload
1263 ; ILP32D-NEXT:    fld fs3, 144(sp) # 8-byte Folded Reload
1264 ; ILP32D-NEXT:    fld fs4, 136(sp) # 8-byte Folded Reload
1265 ; ILP32D-NEXT:    fld fs5, 128(sp) # 8-byte Folded Reload
1266 ; ILP32D-NEXT:    fld fs6, 120(sp) # 8-byte Folded Reload
1267 ; ILP32D-NEXT:    fld fs7, 112(sp) # 8-byte Folded Reload
1268 ; ILP32D-NEXT:    fld fs8, 104(sp) # 8-byte Folded Reload
1269 ; ILP32D-NEXT:    fld fs9, 96(sp) # 8-byte Folded Reload
1270 ; ILP32D-NEXT:    fld fs10, 88(sp) # 8-byte Folded Reload
1271 ; ILP32D-NEXT:    fld fs11, 80(sp) # 8-byte Folded Reload
1272 ; ILP32D-NEXT:    addi sp, sp, 192
1273 ; ILP32D-NEXT:    ret
1275 ; LP64D-LABEL: caller:
1276 ; LP64D:       # %bb.0:
1277 ; LP64D-NEXT:    addi sp, sp, -208
1278 ; LP64D-NEXT:    sd ra, 200(sp) # 8-byte Folded Spill
1279 ; LP64D-NEXT:    sd s0, 192(sp) # 8-byte Folded Spill
1280 ; LP64D-NEXT:    sd s1, 184(sp) # 8-byte Folded Spill
1281 ; LP64D-NEXT:    fsd fs0, 176(sp) # 8-byte Folded Spill
1282 ; LP64D-NEXT:    fsd fs1, 168(sp) # 8-byte Folded Spill
1283 ; LP64D-NEXT:    fsd fs2, 160(sp) # 8-byte Folded Spill
1284 ; LP64D-NEXT:    fsd fs3, 152(sp) # 8-byte Folded Spill
1285 ; LP64D-NEXT:    fsd fs4, 144(sp) # 8-byte Folded Spill
1286 ; LP64D-NEXT:    fsd fs5, 136(sp) # 8-byte Folded Spill
1287 ; LP64D-NEXT:    fsd fs6, 128(sp) # 8-byte Folded Spill
1288 ; LP64D-NEXT:    fsd fs7, 120(sp) # 8-byte Folded Spill
1289 ; LP64D-NEXT:    fsd fs8, 112(sp) # 8-byte Folded Spill
1290 ; LP64D-NEXT:    fsd fs9, 104(sp) # 8-byte Folded Spill
1291 ; LP64D-NEXT:    fsd fs10, 96(sp) # 8-byte Folded Spill
1292 ; LP64D-NEXT:    fsd fs11, 88(sp) # 8-byte Folded Spill
1293 ; LP64D-NEXT:    lui s0, %hi(var)
1294 ; LP64D-NEXT:    flw fa5, %lo(var)(s0)
1295 ; LP64D-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1296 ; LP64D-NEXT:    flw fa5, %lo(var+4)(s0)
1297 ; LP64D-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1298 ; LP64D-NEXT:    flw fa5, %lo(var+8)(s0)
1299 ; LP64D-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1300 ; LP64D-NEXT:    flw fa5, %lo(var+12)(s0)
1301 ; LP64D-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1302 ; LP64D-NEXT:    addi s1, s0, %lo(var)
1303 ; LP64D-NEXT:    flw fa5, 16(s1)
1304 ; LP64D-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1305 ; LP64D-NEXT:    flw fa5, 20(s1)
1306 ; LP64D-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1307 ; LP64D-NEXT:    flw fa5, 24(s1)
1308 ; LP64D-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1309 ; LP64D-NEXT:    flw fa5, 28(s1)
1310 ; LP64D-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1311 ; LP64D-NEXT:    flw fa5, 32(s1)
1312 ; LP64D-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1313 ; LP64D-NEXT:    flw fa5, 36(s1)
1314 ; LP64D-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1315 ; LP64D-NEXT:    flw fa5, 40(s1)
1316 ; LP64D-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1317 ; LP64D-NEXT:    flw fa5, 44(s1)
1318 ; LP64D-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1319 ; LP64D-NEXT:    flw fa5, 48(s1)
1320 ; LP64D-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1321 ; LP64D-NEXT:    flw fa5, 52(s1)
1322 ; LP64D-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1323 ; LP64D-NEXT:    flw fa5, 56(s1)
1324 ; LP64D-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1325 ; LP64D-NEXT:    flw fa5, 60(s1)
1326 ; LP64D-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1327 ; LP64D-NEXT:    flw fa5, 64(s1)
1328 ; LP64D-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1329 ; LP64D-NEXT:    flw fa5, 68(s1)
1330 ; LP64D-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1331 ; LP64D-NEXT:    flw fa5, 72(s1)
1332 ; LP64D-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1333 ; LP64D-NEXT:    flw fa5, 76(s1)
1334 ; LP64D-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1335 ; LP64D-NEXT:    flw fs8, 80(s1)
1336 ; LP64D-NEXT:    flw fs9, 84(s1)
1337 ; LP64D-NEXT:    flw fs10, 88(s1)
1338 ; LP64D-NEXT:    flw fs11, 92(s1)
1339 ; LP64D-NEXT:    flw fs0, 96(s1)
1340 ; LP64D-NEXT:    flw fs1, 100(s1)
1341 ; LP64D-NEXT:    flw fs2, 104(s1)
1342 ; LP64D-NEXT:    flw fs3, 108(s1)
1343 ; LP64D-NEXT:    flw fs4, 112(s1)
1344 ; LP64D-NEXT:    flw fs5, 116(s1)
1345 ; LP64D-NEXT:    flw fs6, 120(s1)
1346 ; LP64D-NEXT:    flw fs7, 124(s1)
1347 ; LP64D-NEXT:    call callee@plt
1348 ; LP64D-NEXT:    fsw fs7, 124(s1)
1349 ; LP64D-NEXT:    fsw fs6, 120(s1)
1350 ; LP64D-NEXT:    fsw fs5, 116(s1)
1351 ; LP64D-NEXT:    fsw fs4, 112(s1)
1352 ; LP64D-NEXT:    fsw fs3, 108(s1)
1353 ; LP64D-NEXT:    fsw fs2, 104(s1)
1354 ; LP64D-NEXT:    fsw fs1, 100(s1)
1355 ; LP64D-NEXT:    fsw fs0, 96(s1)
1356 ; LP64D-NEXT:    fsw fs11, 92(s1)
1357 ; LP64D-NEXT:    fsw fs10, 88(s1)
1358 ; LP64D-NEXT:    fsw fs9, 84(s1)
1359 ; LP64D-NEXT:    fsw fs8, 80(s1)
1360 ; LP64D-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1361 ; LP64D-NEXT:    fsw fa5, 76(s1)
1362 ; LP64D-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1363 ; LP64D-NEXT:    fsw fa5, 72(s1)
1364 ; LP64D-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1365 ; LP64D-NEXT:    fsw fa5, 68(s1)
1366 ; LP64D-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1367 ; LP64D-NEXT:    fsw fa5, 64(s1)
1368 ; LP64D-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1369 ; LP64D-NEXT:    fsw fa5, 60(s1)
1370 ; LP64D-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1371 ; LP64D-NEXT:    fsw fa5, 56(s1)
1372 ; LP64D-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1373 ; LP64D-NEXT:    fsw fa5, 52(s1)
1374 ; LP64D-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1375 ; LP64D-NEXT:    fsw fa5, 48(s1)
1376 ; LP64D-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1377 ; LP64D-NEXT:    fsw fa5, 44(s1)
1378 ; LP64D-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1379 ; LP64D-NEXT:    fsw fa5, 40(s1)
1380 ; LP64D-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1381 ; LP64D-NEXT:    fsw fa5, 36(s1)
1382 ; LP64D-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1383 ; LP64D-NEXT:    fsw fa5, 32(s1)
1384 ; LP64D-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1385 ; LP64D-NEXT:    fsw fa5, 28(s1)
1386 ; LP64D-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1387 ; LP64D-NEXT:    fsw fa5, 24(s1)
1388 ; LP64D-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1389 ; LP64D-NEXT:    fsw fa5, 20(s1)
1390 ; LP64D-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1391 ; LP64D-NEXT:    fsw fa5, 16(s1)
1392 ; LP64D-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1393 ; LP64D-NEXT:    fsw fa5, %lo(var+12)(s0)
1394 ; LP64D-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1395 ; LP64D-NEXT:    fsw fa5, %lo(var+8)(s0)
1396 ; LP64D-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1397 ; LP64D-NEXT:    fsw fa5, %lo(var+4)(s0)
1398 ; LP64D-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1399 ; LP64D-NEXT:    fsw fa5, %lo(var)(s0)
1400 ; LP64D-NEXT:    ld ra, 200(sp) # 8-byte Folded Reload
1401 ; LP64D-NEXT:    ld s0, 192(sp) # 8-byte Folded Reload
1402 ; LP64D-NEXT:    ld s1, 184(sp) # 8-byte Folded Reload
1403 ; LP64D-NEXT:    fld fs0, 176(sp) # 8-byte Folded Reload
1404 ; LP64D-NEXT:    fld fs1, 168(sp) # 8-byte Folded Reload
1405 ; LP64D-NEXT:    fld fs2, 160(sp) # 8-byte Folded Reload
1406 ; LP64D-NEXT:    fld fs3, 152(sp) # 8-byte Folded Reload
1407 ; LP64D-NEXT:    fld fs4, 144(sp) # 8-byte Folded Reload
1408 ; LP64D-NEXT:    fld fs5, 136(sp) # 8-byte Folded Reload
1409 ; LP64D-NEXT:    fld fs6, 128(sp) # 8-byte Folded Reload
1410 ; LP64D-NEXT:    fld fs7, 120(sp) # 8-byte Folded Reload
1411 ; LP64D-NEXT:    fld fs8, 112(sp) # 8-byte Folded Reload
1412 ; LP64D-NEXT:    fld fs9, 104(sp) # 8-byte Folded Reload
1413 ; LP64D-NEXT:    fld fs10, 96(sp) # 8-byte Folded Reload
1414 ; LP64D-NEXT:    fld fs11, 88(sp) # 8-byte Folded Reload
1415 ; LP64D-NEXT:    addi sp, sp, 208
1416 ; LP64D-NEXT:    ret
1417   %val = load [32 x float], ptr @var
1418   call void @callee()
1419   store volatile [32 x float] %val, ptr @var
1420   ret void