xref: /llvm-project/llvm/test/CodeGen/RISCV/callee-saved-fpr32s.ll (revision 14c4f28ec109ec84158d60a74d3d1b7bfa411c77)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32 -verify-machineinstrs < %s \
3; RUN:   | FileCheck %s -check-prefix=ILP32
4; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32e -verify-machineinstrs < %s \
5; RUN:   | FileCheck %s -check-prefix=ILP32E
6; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64 -verify-machineinstrs < %s \
7; RUN:   | FileCheck %s -check-prefix=LP64
8; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64e -verify-machineinstrs < %s \
9; RUN:   | FileCheck %s -check-prefix=LP64E
10; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs < %s \
11; RUN:   | FileCheck %s -check-prefix=ILP32F
12; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs < %s \
13; RUN:   | FileCheck %s -check-prefix=LP64F
14; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs < %s \
15; RUN:   | FileCheck %s -check-prefix=ILP32D
16; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs < %s \
17; RUN:   | FileCheck %s -check-prefix=LP64D
18
19@var = global [32 x float] zeroinitializer
20
21; All floating point registers are temporaries for the ilp32, ilp32e, lp64e and lp64
22; ABIs. fs0-fs11 are callee-saved for the ilp32f, ilp32d, lp64f, and lp64d ABIs.
23
24; This function tests that RISCVRegisterInfo::getCalleeSavedRegs returns
25; something appropriate.
26
27define void @callee() nounwind {
28; ILP32-LABEL: callee:
29; ILP32:       # %bb.0:
30; ILP32-NEXT:    lui a0, %hi(var)
31; ILP32-NEXT:    flw fa5, %lo(var)(a0)
32; ILP32-NEXT:    flw fa4, %lo(var+4)(a0)
33; ILP32-NEXT:    flw fa3, %lo(var+8)(a0)
34; ILP32-NEXT:    flw fa2, %lo(var+12)(a0)
35; ILP32-NEXT:    addi a1, a0, %lo(var)
36; ILP32-NEXT:    flw fa1, 16(a1)
37; ILP32-NEXT:    flw fa0, 20(a1)
38; ILP32-NEXT:    flw ft0, 24(a1)
39; ILP32-NEXT:    flw ft1, 28(a1)
40; ILP32-NEXT:    flw ft2, 32(a1)
41; ILP32-NEXT:    flw ft3, 36(a1)
42; ILP32-NEXT:    flw ft4, 40(a1)
43; ILP32-NEXT:    flw ft5, 44(a1)
44; ILP32-NEXT:    flw ft6, 48(a1)
45; ILP32-NEXT:    flw ft7, 52(a1)
46; ILP32-NEXT:    flw fa6, 56(a1)
47; ILP32-NEXT:    flw fa7, 60(a1)
48; ILP32-NEXT:    flw ft8, 64(a1)
49; ILP32-NEXT:    flw ft9, 68(a1)
50; ILP32-NEXT:    flw ft10, 72(a1)
51; ILP32-NEXT:    flw ft11, 76(a1)
52; ILP32-NEXT:    flw fs0, 80(a1)
53; ILP32-NEXT:    flw fs1, 84(a1)
54; ILP32-NEXT:    flw fs2, 88(a1)
55; ILP32-NEXT:    flw fs3, 92(a1)
56; ILP32-NEXT:    flw fs4, 112(a1)
57; ILP32-NEXT:    flw fs5, 116(a1)
58; ILP32-NEXT:    flw fs6, 120(a1)
59; ILP32-NEXT:    flw fs7, 124(a1)
60; ILP32-NEXT:    flw fs8, 96(a1)
61; ILP32-NEXT:    flw fs9, 100(a1)
62; ILP32-NEXT:    flw fs10, 104(a1)
63; ILP32-NEXT:    flw fs11, 108(a1)
64; ILP32-NEXT:    fsw fs7, 124(a1)
65; ILP32-NEXT:    fsw fs6, 120(a1)
66; ILP32-NEXT:    fsw fs5, 116(a1)
67; ILP32-NEXT:    fsw fs4, 112(a1)
68; ILP32-NEXT:    fsw fs11, 108(a1)
69; ILP32-NEXT:    fsw fs10, 104(a1)
70; ILP32-NEXT:    fsw fs9, 100(a1)
71; ILP32-NEXT:    fsw fs8, 96(a1)
72; ILP32-NEXT:    fsw fs3, 92(a1)
73; ILP32-NEXT:    fsw fs2, 88(a1)
74; ILP32-NEXT:    fsw fs1, 84(a1)
75; ILP32-NEXT:    fsw fs0, 80(a1)
76; ILP32-NEXT:    fsw ft11, 76(a1)
77; ILP32-NEXT:    fsw ft10, 72(a1)
78; ILP32-NEXT:    fsw ft9, 68(a1)
79; ILP32-NEXT:    fsw ft8, 64(a1)
80; ILP32-NEXT:    fsw fa7, 60(a1)
81; ILP32-NEXT:    fsw fa6, 56(a1)
82; ILP32-NEXT:    fsw ft7, 52(a1)
83; ILP32-NEXT:    fsw ft6, 48(a1)
84; ILP32-NEXT:    fsw ft5, 44(a1)
85; ILP32-NEXT:    fsw ft4, 40(a1)
86; ILP32-NEXT:    fsw ft3, 36(a1)
87; ILP32-NEXT:    fsw ft2, 32(a1)
88; ILP32-NEXT:    fsw ft1, 28(a1)
89; ILP32-NEXT:    fsw ft0, 24(a1)
90; ILP32-NEXT:    fsw fa0, 20(a1)
91; ILP32-NEXT:    fsw fa1, 16(a1)
92; ILP32-NEXT:    fsw fa2, %lo(var+12)(a0)
93; ILP32-NEXT:    fsw fa3, %lo(var+8)(a0)
94; ILP32-NEXT:    fsw fa4, %lo(var+4)(a0)
95; ILP32-NEXT:    fsw fa5, %lo(var)(a0)
96; ILP32-NEXT:    ret
97;
98; ILP32E-LABEL: callee:
99; ILP32E:       # %bb.0:
100; ILP32E-NEXT:    lui a0, %hi(var)
101; ILP32E-NEXT:    flw fa5, %lo(var)(a0)
102; ILP32E-NEXT:    flw fa4, %lo(var+4)(a0)
103; ILP32E-NEXT:    flw fa3, %lo(var+8)(a0)
104; ILP32E-NEXT:    flw fa2, %lo(var+12)(a0)
105; ILP32E-NEXT:    addi a1, a0, %lo(var)
106; ILP32E-NEXT:    flw fa1, 16(a1)
107; ILP32E-NEXT:    flw fa0, 20(a1)
108; ILP32E-NEXT:    flw ft0, 24(a1)
109; ILP32E-NEXT:    flw ft1, 28(a1)
110; ILP32E-NEXT:    flw ft2, 32(a1)
111; ILP32E-NEXT:    flw ft3, 36(a1)
112; ILP32E-NEXT:    flw ft4, 40(a1)
113; ILP32E-NEXT:    flw ft5, 44(a1)
114; ILP32E-NEXT:    flw ft6, 48(a1)
115; ILP32E-NEXT:    flw ft7, 52(a1)
116; ILP32E-NEXT:    flw fa6, 56(a1)
117; ILP32E-NEXT:    flw fa7, 60(a1)
118; ILP32E-NEXT:    flw ft8, 64(a1)
119; ILP32E-NEXT:    flw ft9, 68(a1)
120; ILP32E-NEXT:    flw ft10, 72(a1)
121; ILP32E-NEXT:    flw ft11, 76(a1)
122; ILP32E-NEXT:    flw fs0, 80(a1)
123; ILP32E-NEXT:    flw fs1, 84(a1)
124; ILP32E-NEXT:    flw fs2, 88(a1)
125; ILP32E-NEXT:    flw fs3, 92(a1)
126; ILP32E-NEXT:    flw fs4, 112(a1)
127; ILP32E-NEXT:    flw fs5, 116(a1)
128; ILP32E-NEXT:    flw fs6, 120(a1)
129; ILP32E-NEXT:    flw fs7, 124(a1)
130; ILP32E-NEXT:    flw fs8, 96(a1)
131; ILP32E-NEXT:    flw fs9, 100(a1)
132; ILP32E-NEXT:    flw fs10, 104(a1)
133; ILP32E-NEXT:    flw fs11, 108(a1)
134; ILP32E-NEXT:    fsw fs7, 124(a1)
135; ILP32E-NEXT:    fsw fs6, 120(a1)
136; ILP32E-NEXT:    fsw fs5, 116(a1)
137; ILP32E-NEXT:    fsw fs4, 112(a1)
138; ILP32E-NEXT:    fsw fs11, 108(a1)
139; ILP32E-NEXT:    fsw fs10, 104(a1)
140; ILP32E-NEXT:    fsw fs9, 100(a1)
141; ILP32E-NEXT:    fsw fs8, 96(a1)
142; ILP32E-NEXT:    fsw fs3, 92(a1)
143; ILP32E-NEXT:    fsw fs2, 88(a1)
144; ILP32E-NEXT:    fsw fs1, 84(a1)
145; ILP32E-NEXT:    fsw fs0, 80(a1)
146; ILP32E-NEXT:    fsw ft11, 76(a1)
147; ILP32E-NEXT:    fsw ft10, 72(a1)
148; ILP32E-NEXT:    fsw ft9, 68(a1)
149; ILP32E-NEXT:    fsw ft8, 64(a1)
150; ILP32E-NEXT:    fsw fa7, 60(a1)
151; ILP32E-NEXT:    fsw fa6, 56(a1)
152; ILP32E-NEXT:    fsw ft7, 52(a1)
153; ILP32E-NEXT:    fsw ft6, 48(a1)
154; ILP32E-NEXT:    fsw ft5, 44(a1)
155; ILP32E-NEXT:    fsw ft4, 40(a1)
156; ILP32E-NEXT:    fsw ft3, 36(a1)
157; ILP32E-NEXT:    fsw ft2, 32(a1)
158; ILP32E-NEXT:    fsw ft1, 28(a1)
159; ILP32E-NEXT:    fsw ft0, 24(a1)
160; ILP32E-NEXT:    fsw fa0, 20(a1)
161; ILP32E-NEXT:    fsw fa1, 16(a1)
162; ILP32E-NEXT:    fsw fa2, %lo(var+12)(a0)
163; ILP32E-NEXT:    fsw fa3, %lo(var+8)(a0)
164; ILP32E-NEXT:    fsw fa4, %lo(var+4)(a0)
165; ILP32E-NEXT:    fsw fa5, %lo(var)(a0)
166; ILP32E-NEXT:    ret
167;
168; LP64-LABEL: callee:
169; LP64:       # %bb.0:
170; LP64-NEXT:    lui a0, %hi(var)
171; LP64-NEXT:    flw fa5, %lo(var)(a0)
172; LP64-NEXT:    flw fa4, %lo(var+4)(a0)
173; LP64-NEXT:    flw fa3, %lo(var+8)(a0)
174; LP64-NEXT:    flw fa2, %lo(var+12)(a0)
175; LP64-NEXT:    addi a1, a0, %lo(var)
176; LP64-NEXT:    flw fa1, 16(a1)
177; LP64-NEXT:    flw fa0, 20(a1)
178; LP64-NEXT:    flw ft0, 24(a1)
179; LP64-NEXT:    flw ft1, 28(a1)
180; LP64-NEXT:    flw ft2, 32(a1)
181; LP64-NEXT:    flw ft3, 36(a1)
182; LP64-NEXT:    flw ft4, 40(a1)
183; LP64-NEXT:    flw ft5, 44(a1)
184; LP64-NEXT:    flw ft6, 48(a1)
185; LP64-NEXT:    flw ft7, 52(a1)
186; LP64-NEXT:    flw fa6, 56(a1)
187; LP64-NEXT:    flw fa7, 60(a1)
188; LP64-NEXT:    flw ft8, 64(a1)
189; LP64-NEXT:    flw ft9, 68(a1)
190; LP64-NEXT:    flw ft10, 72(a1)
191; LP64-NEXT:    flw ft11, 76(a1)
192; LP64-NEXT:    flw fs0, 80(a1)
193; LP64-NEXT:    flw fs1, 84(a1)
194; LP64-NEXT:    flw fs2, 88(a1)
195; LP64-NEXT:    flw fs3, 92(a1)
196; LP64-NEXT:    flw fs4, 112(a1)
197; LP64-NEXT:    flw fs5, 116(a1)
198; LP64-NEXT:    flw fs6, 120(a1)
199; LP64-NEXT:    flw fs7, 124(a1)
200; LP64-NEXT:    flw fs8, 96(a1)
201; LP64-NEXT:    flw fs9, 100(a1)
202; LP64-NEXT:    flw fs10, 104(a1)
203; LP64-NEXT:    flw fs11, 108(a1)
204; LP64-NEXT:    fsw fs7, 124(a1)
205; LP64-NEXT:    fsw fs6, 120(a1)
206; LP64-NEXT:    fsw fs5, 116(a1)
207; LP64-NEXT:    fsw fs4, 112(a1)
208; LP64-NEXT:    fsw fs11, 108(a1)
209; LP64-NEXT:    fsw fs10, 104(a1)
210; LP64-NEXT:    fsw fs9, 100(a1)
211; LP64-NEXT:    fsw fs8, 96(a1)
212; LP64-NEXT:    fsw fs3, 92(a1)
213; LP64-NEXT:    fsw fs2, 88(a1)
214; LP64-NEXT:    fsw fs1, 84(a1)
215; LP64-NEXT:    fsw fs0, 80(a1)
216; LP64-NEXT:    fsw ft11, 76(a1)
217; LP64-NEXT:    fsw ft10, 72(a1)
218; LP64-NEXT:    fsw ft9, 68(a1)
219; LP64-NEXT:    fsw ft8, 64(a1)
220; LP64-NEXT:    fsw fa7, 60(a1)
221; LP64-NEXT:    fsw fa6, 56(a1)
222; LP64-NEXT:    fsw ft7, 52(a1)
223; LP64-NEXT:    fsw ft6, 48(a1)
224; LP64-NEXT:    fsw ft5, 44(a1)
225; LP64-NEXT:    fsw ft4, 40(a1)
226; LP64-NEXT:    fsw ft3, 36(a1)
227; LP64-NEXT:    fsw ft2, 32(a1)
228; LP64-NEXT:    fsw ft1, 28(a1)
229; LP64-NEXT:    fsw ft0, 24(a1)
230; LP64-NEXT:    fsw fa0, 20(a1)
231; LP64-NEXT:    fsw fa1, 16(a1)
232; LP64-NEXT:    fsw fa2, %lo(var+12)(a0)
233; LP64-NEXT:    fsw fa3, %lo(var+8)(a0)
234; LP64-NEXT:    fsw fa4, %lo(var+4)(a0)
235; LP64-NEXT:    fsw fa5, %lo(var)(a0)
236; LP64-NEXT:    ret
237;
238; LP64E-LABEL: callee:
239; LP64E:       # %bb.0:
240; LP64E-NEXT:    lui a0, %hi(var)
241; LP64E-NEXT:    flw fa5, %lo(var)(a0)
242; LP64E-NEXT:    flw fa4, %lo(var+4)(a0)
243; LP64E-NEXT:    flw fa3, %lo(var+8)(a0)
244; LP64E-NEXT:    flw fa2, %lo(var+12)(a0)
245; LP64E-NEXT:    addi a1, a0, %lo(var)
246; LP64E-NEXT:    flw fa1, 16(a1)
247; LP64E-NEXT:    flw fa0, 20(a1)
248; LP64E-NEXT:    flw ft0, 24(a1)
249; LP64E-NEXT:    flw ft1, 28(a1)
250; LP64E-NEXT:    flw ft2, 32(a1)
251; LP64E-NEXT:    flw ft3, 36(a1)
252; LP64E-NEXT:    flw ft4, 40(a1)
253; LP64E-NEXT:    flw ft5, 44(a1)
254; LP64E-NEXT:    flw ft6, 48(a1)
255; LP64E-NEXT:    flw ft7, 52(a1)
256; LP64E-NEXT:    flw fa6, 56(a1)
257; LP64E-NEXT:    flw fa7, 60(a1)
258; LP64E-NEXT:    flw ft8, 64(a1)
259; LP64E-NEXT:    flw ft9, 68(a1)
260; LP64E-NEXT:    flw ft10, 72(a1)
261; LP64E-NEXT:    flw ft11, 76(a1)
262; LP64E-NEXT:    flw fs0, 80(a1)
263; LP64E-NEXT:    flw fs1, 84(a1)
264; LP64E-NEXT:    flw fs2, 88(a1)
265; LP64E-NEXT:    flw fs3, 92(a1)
266; LP64E-NEXT:    flw fs4, 112(a1)
267; LP64E-NEXT:    flw fs5, 116(a1)
268; LP64E-NEXT:    flw fs6, 120(a1)
269; LP64E-NEXT:    flw fs7, 124(a1)
270; LP64E-NEXT:    flw fs8, 96(a1)
271; LP64E-NEXT:    flw fs9, 100(a1)
272; LP64E-NEXT:    flw fs10, 104(a1)
273; LP64E-NEXT:    flw fs11, 108(a1)
274; LP64E-NEXT:    fsw fs7, 124(a1)
275; LP64E-NEXT:    fsw fs6, 120(a1)
276; LP64E-NEXT:    fsw fs5, 116(a1)
277; LP64E-NEXT:    fsw fs4, 112(a1)
278; LP64E-NEXT:    fsw fs11, 108(a1)
279; LP64E-NEXT:    fsw fs10, 104(a1)
280; LP64E-NEXT:    fsw fs9, 100(a1)
281; LP64E-NEXT:    fsw fs8, 96(a1)
282; LP64E-NEXT:    fsw fs3, 92(a1)
283; LP64E-NEXT:    fsw fs2, 88(a1)
284; LP64E-NEXT:    fsw fs1, 84(a1)
285; LP64E-NEXT:    fsw fs0, 80(a1)
286; LP64E-NEXT:    fsw ft11, 76(a1)
287; LP64E-NEXT:    fsw ft10, 72(a1)
288; LP64E-NEXT:    fsw ft9, 68(a1)
289; LP64E-NEXT:    fsw ft8, 64(a1)
290; LP64E-NEXT:    fsw fa7, 60(a1)
291; LP64E-NEXT:    fsw fa6, 56(a1)
292; LP64E-NEXT:    fsw ft7, 52(a1)
293; LP64E-NEXT:    fsw ft6, 48(a1)
294; LP64E-NEXT:    fsw ft5, 44(a1)
295; LP64E-NEXT:    fsw ft4, 40(a1)
296; LP64E-NEXT:    fsw ft3, 36(a1)
297; LP64E-NEXT:    fsw ft2, 32(a1)
298; LP64E-NEXT:    fsw ft1, 28(a1)
299; LP64E-NEXT:    fsw ft0, 24(a1)
300; LP64E-NEXT:    fsw fa0, 20(a1)
301; LP64E-NEXT:    fsw fa1, 16(a1)
302; LP64E-NEXT:    fsw fa2, %lo(var+12)(a0)
303; LP64E-NEXT:    fsw fa3, %lo(var+8)(a0)
304; LP64E-NEXT:    fsw fa4, %lo(var+4)(a0)
305; LP64E-NEXT:    fsw fa5, %lo(var)(a0)
306; LP64E-NEXT:    ret
307;
308; ILP32F-LABEL: callee:
309; ILP32F:       # %bb.0:
310; ILP32F-NEXT:    addi sp, sp, -48
311; ILP32F-NEXT:    fsw fs0, 44(sp) # 4-byte Folded Spill
312; ILP32F-NEXT:    fsw fs1, 40(sp) # 4-byte Folded Spill
313; ILP32F-NEXT:    fsw fs2, 36(sp) # 4-byte Folded Spill
314; ILP32F-NEXT:    fsw fs3, 32(sp) # 4-byte Folded Spill
315; ILP32F-NEXT:    fsw fs4, 28(sp) # 4-byte Folded Spill
316; ILP32F-NEXT:    fsw fs5, 24(sp) # 4-byte Folded Spill
317; ILP32F-NEXT:    fsw fs6, 20(sp) # 4-byte Folded Spill
318; ILP32F-NEXT:    fsw fs7, 16(sp) # 4-byte Folded Spill
319; ILP32F-NEXT:    fsw fs8, 12(sp) # 4-byte Folded Spill
320; ILP32F-NEXT:    fsw fs9, 8(sp) # 4-byte Folded Spill
321; ILP32F-NEXT:    fsw fs10, 4(sp) # 4-byte Folded Spill
322; ILP32F-NEXT:    fsw fs11, 0(sp) # 4-byte Folded Spill
323; ILP32F-NEXT:    lui a0, %hi(var)
324; ILP32F-NEXT:    flw fa5, %lo(var)(a0)
325; ILP32F-NEXT:    flw fa4, %lo(var+4)(a0)
326; ILP32F-NEXT:    flw fa3, %lo(var+8)(a0)
327; ILP32F-NEXT:    flw fa2, %lo(var+12)(a0)
328; ILP32F-NEXT:    addi a1, a0, %lo(var)
329; ILP32F-NEXT:    flw fa1, 16(a1)
330; ILP32F-NEXT:    flw fa0, 20(a1)
331; ILP32F-NEXT:    flw ft0, 24(a1)
332; ILP32F-NEXT:    flw ft1, 28(a1)
333; ILP32F-NEXT:    flw ft2, 32(a1)
334; ILP32F-NEXT:    flw ft3, 36(a1)
335; ILP32F-NEXT:    flw ft4, 40(a1)
336; ILP32F-NEXT:    flw ft5, 44(a1)
337; ILP32F-NEXT:    flw ft6, 48(a1)
338; ILP32F-NEXT:    flw ft7, 52(a1)
339; ILP32F-NEXT:    flw fa6, 56(a1)
340; ILP32F-NEXT:    flw fa7, 60(a1)
341; ILP32F-NEXT:    flw ft8, 64(a1)
342; ILP32F-NEXT:    flw ft9, 68(a1)
343; ILP32F-NEXT:    flw ft10, 72(a1)
344; ILP32F-NEXT:    flw ft11, 76(a1)
345; ILP32F-NEXT:    flw fs0, 80(a1)
346; ILP32F-NEXT:    flw fs1, 84(a1)
347; ILP32F-NEXT:    flw fs2, 88(a1)
348; ILP32F-NEXT:    flw fs3, 92(a1)
349; ILP32F-NEXT:    flw fs4, 112(a1)
350; ILP32F-NEXT:    flw fs5, 116(a1)
351; ILP32F-NEXT:    flw fs6, 120(a1)
352; ILP32F-NEXT:    flw fs7, 124(a1)
353; ILP32F-NEXT:    flw fs8, 96(a1)
354; ILP32F-NEXT:    flw fs9, 100(a1)
355; ILP32F-NEXT:    flw fs10, 104(a1)
356; ILP32F-NEXT:    flw fs11, 108(a1)
357; ILP32F-NEXT:    fsw fs7, 124(a1)
358; ILP32F-NEXT:    fsw fs6, 120(a1)
359; ILP32F-NEXT:    fsw fs5, 116(a1)
360; ILP32F-NEXT:    fsw fs4, 112(a1)
361; ILP32F-NEXT:    fsw fs11, 108(a1)
362; ILP32F-NEXT:    fsw fs10, 104(a1)
363; ILP32F-NEXT:    fsw fs9, 100(a1)
364; ILP32F-NEXT:    fsw fs8, 96(a1)
365; ILP32F-NEXT:    fsw fs3, 92(a1)
366; ILP32F-NEXT:    fsw fs2, 88(a1)
367; ILP32F-NEXT:    fsw fs1, 84(a1)
368; ILP32F-NEXT:    fsw fs0, 80(a1)
369; ILP32F-NEXT:    fsw ft11, 76(a1)
370; ILP32F-NEXT:    fsw ft10, 72(a1)
371; ILP32F-NEXT:    fsw ft9, 68(a1)
372; ILP32F-NEXT:    fsw ft8, 64(a1)
373; ILP32F-NEXT:    fsw fa7, 60(a1)
374; ILP32F-NEXT:    fsw fa6, 56(a1)
375; ILP32F-NEXT:    fsw ft7, 52(a1)
376; ILP32F-NEXT:    fsw ft6, 48(a1)
377; ILP32F-NEXT:    fsw ft5, 44(a1)
378; ILP32F-NEXT:    fsw ft4, 40(a1)
379; ILP32F-NEXT:    fsw ft3, 36(a1)
380; ILP32F-NEXT:    fsw ft2, 32(a1)
381; ILP32F-NEXT:    fsw ft1, 28(a1)
382; ILP32F-NEXT:    fsw ft0, 24(a1)
383; ILP32F-NEXT:    fsw fa0, 20(a1)
384; ILP32F-NEXT:    fsw fa1, 16(a1)
385; ILP32F-NEXT:    fsw fa2, %lo(var+12)(a0)
386; ILP32F-NEXT:    fsw fa3, %lo(var+8)(a0)
387; ILP32F-NEXT:    fsw fa4, %lo(var+4)(a0)
388; ILP32F-NEXT:    fsw fa5, %lo(var)(a0)
389; ILP32F-NEXT:    flw fs0, 44(sp) # 4-byte Folded Reload
390; ILP32F-NEXT:    flw fs1, 40(sp) # 4-byte Folded Reload
391; ILP32F-NEXT:    flw fs2, 36(sp) # 4-byte Folded Reload
392; ILP32F-NEXT:    flw fs3, 32(sp) # 4-byte Folded Reload
393; ILP32F-NEXT:    flw fs4, 28(sp) # 4-byte Folded Reload
394; ILP32F-NEXT:    flw fs5, 24(sp) # 4-byte Folded Reload
395; ILP32F-NEXT:    flw fs6, 20(sp) # 4-byte Folded Reload
396; ILP32F-NEXT:    flw fs7, 16(sp) # 4-byte Folded Reload
397; ILP32F-NEXT:    flw fs8, 12(sp) # 4-byte Folded Reload
398; ILP32F-NEXT:    flw fs9, 8(sp) # 4-byte Folded Reload
399; ILP32F-NEXT:    flw fs10, 4(sp) # 4-byte Folded Reload
400; ILP32F-NEXT:    flw fs11, 0(sp) # 4-byte Folded Reload
401; ILP32F-NEXT:    addi sp, sp, 48
402; ILP32F-NEXT:    ret
403;
404; LP64F-LABEL: callee:
405; LP64F:       # %bb.0:
406; LP64F-NEXT:    addi sp, sp, -48
407; LP64F-NEXT:    fsw fs0, 44(sp) # 4-byte Folded Spill
408; LP64F-NEXT:    fsw fs1, 40(sp) # 4-byte Folded Spill
409; LP64F-NEXT:    fsw fs2, 36(sp) # 4-byte Folded Spill
410; LP64F-NEXT:    fsw fs3, 32(sp) # 4-byte Folded Spill
411; LP64F-NEXT:    fsw fs4, 28(sp) # 4-byte Folded Spill
412; LP64F-NEXT:    fsw fs5, 24(sp) # 4-byte Folded Spill
413; LP64F-NEXT:    fsw fs6, 20(sp) # 4-byte Folded Spill
414; LP64F-NEXT:    fsw fs7, 16(sp) # 4-byte Folded Spill
415; LP64F-NEXT:    fsw fs8, 12(sp) # 4-byte Folded Spill
416; LP64F-NEXT:    fsw fs9, 8(sp) # 4-byte Folded Spill
417; LP64F-NEXT:    fsw fs10, 4(sp) # 4-byte Folded Spill
418; LP64F-NEXT:    fsw fs11, 0(sp) # 4-byte Folded Spill
419; LP64F-NEXT:    lui a0, %hi(var)
420; LP64F-NEXT:    flw fa5, %lo(var)(a0)
421; LP64F-NEXT:    flw fa4, %lo(var+4)(a0)
422; LP64F-NEXT:    flw fa3, %lo(var+8)(a0)
423; LP64F-NEXT:    flw fa2, %lo(var+12)(a0)
424; LP64F-NEXT:    addi a1, a0, %lo(var)
425; LP64F-NEXT:    flw fa1, 16(a1)
426; LP64F-NEXT:    flw fa0, 20(a1)
427; LP64F-NEXT:    flw ft0, 24(a1)
428; LP64F-NEXT:    flw ft1, 28(a1)
429; LP64F-NEXT:    flw ft2, 32(a1)
430; LP64F-NEXT:    flw ft3, 36(a1)
431; LP64F-NEXT:    flw ft4, 40(a1)
432; LP64F-NEXT:    flw ft5, 44(a1)
433; LP64F-NEXT:    flw ft6, 48(a1)
434; LP64F-NEXT:    flw ft7, 52(a1)
435; LP64F-NEXT:    flw fa6, 56(a1)
436; LP64F-NEXT:    flw fa7, 60(a1)
437; LP64F-NEXT:    flw ft8, 64(a1)
438; LP64F-NEXT:    flw ft9, 68(a1)
439; LP64F-NEXT:    flw ft10, 72(a1)
440; LP64F-NEXT:    flw ft11, 76(a1)
441; LP64F-NEXT:    flw fs0, 80(a1)
442; LP64F-NEXT:    flw fs1, 84(a1)
443; LP64F-NEXT:    flw fs2, 88(a1)
444; LP64F-NEXT:    flw fs3, 92(a1)
445; LP64F-NEXT:    flw fs4, 112(a1)
446; LP64F-NEXT:    flw fs5, 116(a1)
447; LP64F-NEXT:    flw fs6, 120(a1)
448; LP64F-NEXT:    flw fs7, 124(a1)
449; LP64F-NEXT:    flw fs8, 96(a1)
450; LP64F-NEXT:    flw fs9, 100(a1)
451; LP64F-NEXT:    flw fs10, 104(a1)
452; LP64F-NEXT:    flw fs11, 108(a1)
453; LP64F-NEXT:    fsw fs7, 124(a1)
454; LP64F-NEXT:    fsw fs6, 120(a1)
455; LP64F-NEXT:    fsw fs5, 116(a1)
456; LP64F-NEXT:    fsw fs4, 112(a1)
457; LP64F-NEXT:    fsw fs11, 108(a1)
458; LP64F-NEXT:    fsw fs10, 104(a1)
459; LP64F-NEXT:    fsw fs9, 100(a1)
460; LP64F-NEXT:    fsw fs8, 96(a1)
461; LP64F-NEXT:    fsw fs3, 92(a1)
462; LP64F-NEXT:    fsw fs2, 88(a1)
463; LP64F-NEXT:    fsw fs1, 84(a1)
464; LP64F-NEXT:    fsw fs0, 80(a1)
465; LP64F-NEXT:    fsw ft11, 76(a1)
466; LP64F-NEXT:    fsw ft10, 72(a1)
467; LP64F-NEXT:    fsw ft9, 68(a1)
468; LP64F-NEXT:    fsw ft8, 64(a1)
469; LP64F-NEXT:    fsw fa7, 60(a1)
470; LP64F-NEXT:    fsw fa6, 56(a1)
471; LP64F-NEXT:    fsw ft7, 52(a1)
472; LP64F-NEXT:    fsw ft6, 48(a1)
473; LP64F-NEXT:    fsw ft5, 44(a1)
474; LP64F-NEXT:    fsw ft4, 40(a1)
475; LP64F-NEXT:    fsw ft3, 36(a1)
476; LP64F-NEXT:    fsw ft2, 32(a1)
477; LP64F-NEXT:    fsw ft1, 28(a1)
478; LP64F-NEXT:    fsw ft0, 24(a1)
479; LP64F-NEXT:    fsw fa0, 20(a1)
480; LP64F-NEXT:    fsw fa1, 16(a1)
481; LP64F-NEXT:    fsw fa2, %lo(var+12)(a0)
482; LP64F-NEXT:    fsw fa3, %lo(var+8)(a0)
483; LP64F-NEXT:    fsw fa4, %lo(var+4)(a0)
484; LP64F-NEXT:    fsw fa5, %lo(var)(a0)
485; LP64F-NEXT:    flw fs0, 44(sp) # 4-byte Folded Reload
486; LP64F-NEXT:    flw fs1, 40(sp) # 4-byte Folded Reload
487; LP64F-NEXT:    flw fs2, 36(sp) # 4-byte Folded Reload
488; LP64F-NEXT:    flw fs3, 32(sp) # 4-byte Folded Reload
489; LP64F-NEXT:    flw fs4, 28(sp) # 4-byte Folded Reload
490; LP64F-NEXT:    flw fs5, 24(sp) # 4-byte Folded Reload
491; LP64F-NEXT:    flw fs6, 20(sp) # 4-byte Folded Reload
492; LP64F-NEXT:    flw fs7, 16(sp) # 4-byte Folded Reload
493; LP64F-NEXT:    flw fs8, 12(sp) # 4-byte Folded Reload
494; LP64F-NEXT:    flw fs9, 8(sp) # 4-byte Folded Reload
495; LP64F-NEXT:    flw fs10, 4(sp) # 4-byte Folded Reload
496; LP64F-NEXT:    flw fs11, 0(sp) # 4-byte Folded Reload
497; LP64F-NEXT:    addi sp, sp, 48
498; LP64F-NEXT:    ret
499;
500; ILP32D-LABEL: callee:
501; ILP32D:       # %bb.0:
502; ILP32D-NEXT:    addi sp, sp, -96
503; ILP32D-NEXT:    fsd fs0, 88(sp) # 8-byte Folded Spill
504; ILP32D-NEXT:    fsd fs1, 80(sp) # 8-byte Folded Spill
505; ILP32D-NEXT:    fsd fs2, 72(sp) # 8-byte Folded Spill
506; ILP32D-NEXT:    fsd fs3, 64(sp) # 8-byte Folded Spill
507; ILP32D-NEXT:    fsd fs4, 56(sp) # 8-byte Folded Spill
508; ILP32D-NEXT:    fsd fs5, 48(sp) # 8-byte Folded Spill
509; ILP32D-NEXT:    fsd fs6, 40(sp) # 8-byte Folded Spill
510; ILP32D-NEXT:    fsd fs7, 32(sp) # 8-byte Folded Spill
511; ILP32D-NEXT:    fsd fs8, 24(sp) # 8-byte Folded Spill
512; ILP32D-NEXT:    fsd fs9, 16(sp) # 8-byte Folded Spill
513; ILP32D-NEXT:    fsd fs10, 8(sp) # 8-byte Folded Spill
514; ILP32D-NEXT:    fsd fs11, 0(sp) # 8-byte Folded Spill
515; ILP32D-NEXT:    lui a0, %hi(var)
516; ILP32D-NEXT:    flw fa5, %lo(var)(a0)
517; ILP32D-NEXT:    flw fa4, %lo(var+4)(a0)
518; ILP32D-NEXT:    flw fa3, %lo(var+8)(a0)
519; ILP32D-NEXT:    flw fa2, %lo(var+12)(a0)
520; ILP32D-NEXT:    addi a1, a0, %lo(var)
521; ILP32D-NEXT:    flw fa1, 16(a1)
522; ILP32D-NEXT:    flw fa0, 20(a1)
523; ILP32D-NEXT:    flw ft0, 24(a1)
524; ILP32D-NEXT:    flw ft1, 28(a1)
525; ILP32D-NEXT:    flw ft2, 32(a1)
526; ILP32D-NEXT:    flw ft3, 36(a1)
527; ILP32D-NEXT:    flw ft4, 40(a1)
528; ILP32D-NEXT:    flw ft5, 44(a1)
529; ILP32D-NEXT:    flw ft6, 48(a1)
530; ILP32D-NEXT:    flw ft7, 52(a1)
531; ILP32D-NEXT:    flw fa6, 56(a1)
532; ILP32D-NEXT:    flw fa7, 60(a1)
533; ILP32D-NEXT:    flw ft8, 64(a1)
534; ILP32D-NEXT:    flw ft9, 68(a1)
535; ILP32D-NEXT:    flw ft10, 72(a1)
536; ILP32D-NEXT:    flw ft11, 76(a1)
537; ILP32D-NEXT:    flw fs0, 80(a1)
538; ILP32D-NEXT:    flw fs1, 84(a1)
539; ILP32D-NEXT:    flw fs2, 88(a1)
540; ILP32D-NEXT:    flw fs3, 92(a1)
541; ILP32D-NEXT:    flw fs4, 112(a1)
542; ILP32D-NEXT:    flw fs5, 116(a1)
543; ILP32D-NEXT:    flw fs6, 120(a1)
544; ILP32D-NEXT:    flw fs7, 124(a1)
545; ILP32D-NEXT:    flw fs8, 96(a1)
546; ILP32D-NEXT:    flw fs9, 100(a1)
547; ILP32D-NEXT:    flw fs10, 104(a1)
548; ILP32D-NEXT:    flw fs11, 108(a1)
549; ILP32D-NEXT:    fsw fs7, 124(a1)
550; ILP32D-NEXT:    fsw fs6, 120(a1)
551; ILP32D-NEXT:    fsw fs5, 116(a1)
552; ILP32D-NEXT:    fsw fs4, 112(a1)
553; ILP32D-NEXT:    fsw fs11, 108(a1)
554; ILP32D-NEXT:    fsw fs10, 104(a1)
555; ILP32D-NEXT:    fsw fs9, 100(a1)
556; ILP32D-NEXT:    fsw fs8, 96(a1)
557; ILP32D-NEXT:    fsw fs3, 92(a1)
558; ILP32D-NEXT:    fsw fs2, 88(a1)
559; ILP32D-NEXT:    fsw fs1, 84(a1)
560; ILP32D-NEXT:    fsw fs0, 80(a1)
561; ILP32D-NEXT:    fsw ft11, 76(a1)
562; ILP32D-NEXT:    fsw ft10, 72(a1)
563; ILP32D-NEXT:    fsw ft9, 68(a1)
564; ILP32D-NEXT:    fsw ft8, 64(a1)
565; ILP32D-NEXT:    fsw fa7, 60(a1)
566; ILP32D-NEXT:    fsw fa6, 56(a1)
567; ILP32D-NEXT:    fsw ft7, 52(a1)
568; ILP32D-NEXT:    fsw ft6, 48(a1)
569; ILP32D-NEXT:    fsw ft5, 44(a1)
570; ILP32D-NEXT:    fsw ft4, 40(a1)
571; ILP32D-NEXT:    fsw ft3, 36(a1)
572; ILP32D-NEXT:    fsw ft2, 32(a1)
573; ILP32D-NEXT:    fsw ft1, 28(a1)
574; ILP32D-NEXT:    fsw ft0, 24(a1)
575; ILP32D-NEXT:    fsw fa0, 20(a1)
576; ILP32D-NEXT:    fsw fa1, 16(a1)
577; ILP32D-NEXT:    fsw fa2, %lo(var+12)(a0)
578; ILP32D-NEXT:    fsw fa3, %lo(var+8)(a0)
579; ILP32D-NEXT:    fsw fa4, %lo(var+4)(a0)
580; ILP32D-NEXT:    fsw fa5, %lo(var)(a0)
581; ILP32D-NEXT:    fld fs0, 88(sp) # 8-byte Folded Reload
582; ILP32D-NEXT:    fld fs1, 80(sp) # 8-byte Folded Reload
583; ILP32D-NEXT:    fld fs2, 72(sp) # 8-byte Folded Reload
584; ILP32D-NEXT:    fld fs3, 64(sp) # 8-byte Folded Reload
585; ILP32D-NEXT:    fld fs4, 56(sp) # 8-byte Folded Reload
586; ILP32D-NEXT:    fld fs5, 48(sp) # 8-byte Folded Reload
587; ILP32D-NEXT:    fld fs6, 40(sp) # 8-byte Folded Reload
588; ILP32D-NEXT:    fld fs7, 32(sp) # 8-byte Folded Reload
589; ILP32D-NEXT:    fld fs8, 24(sp) # 8-byte Folded Reload
590; ILP32D-NEXT:    fld fs9, 16(sp) # 8-byte Folded Reload
591; ILP32D-NEXT:    fld fs10, 8(sp) # 8-byte Folded Reload
592; ILP32D-NEXT:    fld fs11, 0(sp) # 8-byte Folded Reload
593; ILP32D-NEXT:    addi sp, sp, 96
594; ILP32D-NEXT:    ret
595;
596; LP64D-LABEL: callee:
597; LP64D:       # %bb.0:
598; LP64D-NEXT:    addi sp, sp, -96
599; LP64D-NEXT:    fsd fs0, 88(sp) # 8-byte Folded Spill
600; LP64D-NEXT:    fsd fs1, 80(sp) # 8-byte Folded Spill
601; LP64D-NEXT:    fsd fs2, 72(sp) # 8-byte Folded Spill
602; LP64D-NEXT:    fsd fs3, 64(sp) # 8-byte Folded Spill
603; LP64D-NEXT:    fsd fs4, 56(sp) # 8-byte Folded Spill
604; LP64D-NEXT:    fsd fs5, 48(sp) # 8-byte Folded Spill
605; LP64D-NEXT:    fsd fs6, 40(sp) # 8-byte Folded Spill
606; LP64D-NEXT:    fsd fs7, 32(sp) # 8-byte Folded Spill
607; LP64D-NEXT:    fsd fs8, 24(sp) # 8-byte Folded Spill
608; LP64D-NEXT:    fsd fs9, 16(sp) # 8-byte Folded Spill
609; LP64D-NEXT:    fsd fs10, 8(sp) # 8-byte Folded Spill
610; LP64D-NEXT:    fsd fs11, 0(sp) # 8-byte Folded Spill
611; LP64D-NEXT:    lui a0, %hi(var)
612; LP64D-NEXT:    flw fa5, %lo(var)(a0)
613; LP64D-NEXT:    flw fa4, %lo(var+4)(a0)
614; LP64D-NEXT:    flw fa3, %lo(var+8)(a0)
615; LP64D-NEXT:    flw fa2, %lo(var+12)(a0)
616; LP64D-NEXT:    addi a1, a0, %lo(var)
617; LP64D-NEXT:    flw fa1, 16(a1)
618; LP64D-NEXT:    flw fa0, 20(a1)
619; LP64D-NEXT:    flw ft0, 24(a1)
620; LP64D-NEXT:    flw ft1, 28(a1)
621; LP64D-NEXT:    flw ft2, 32(a1)
622; LP64D-NEXT:    flw ft3, 36(a1)
623; LP64D-NEXT:    flw ft4, 40(a1)
624; LP64D-NEXT:    flw ft5, 44(a1)
625; LP64D-NEXT:    flw ft6, 48(a1)
626; LP64D-NEXT:    flw ft7, 52(a1)
627; LP64D-NEXT:    flw fa6, 56(a1)
628; LP64D-NEXT:    flw fa7, 60(a1)
629; LP64D-NEXT:    flw ft8, 64(a1)
630; LP64D-NEXT:    flw ft9, 68(a1)
631; LP64D-NEXT:    flw ft10, 72(a1)
632; LP64D-NEXT:    flw ft11, 76(a1)
633; LP64D-NEXT:    flw fs0, 80(a1)
634; LP64D-NEXT:    flw fs1, 84(a1)
635; LP64D-NEXT:    flw fs2, 88(a1)
636; LP64D-NEXT:    flw fs3, 92(a1)
637; LP64D-NEXT:    flw fs4, 112(a1)
638; LP64D-NEXT:    flw fs5, 116(a1)
639; LP64D-NEXT:    flw fs6, 120(a1)
640; LP64D-NEXT:    flw fs7, 124(a1)
641; LP64D-NEXT:    flw fs8, 96(a1)
642; LP64D-NEXT:    flw fs9, 100(a1)
643; LP64D-NEXT:    flw fs10, 104(a1)
644; LP64D-NEXT:    flw fs11, 108(a1)
645; LP64D-NEXT:    fsw fs7, 124(a1)
646; LP64D-NEXT:    fsw fs6, 120(a1)
647; LP64D-NEXT:    fsw fs5, 116(a1)
648; LP64D-NEXT:    fsw fs4, 112(a1)
649; LP64D-NEXT:    fsw fs11, 108(a1)
650; LP64D-NEXT:    fsw fs10, 104(a1)
651; LP64D-NEXT:    fsw fs9, 100(a1)
652; LP64D-NEXT:    fsw fs8, 96(a1)
653; LP64D-NEXT:    fsw fs3, 92(a1)
654; LP64D-NEXT:    fsw fs2, 88(a1)
655; LP64D-NEXT:    fsw fs1, 84(a1)
656; LP64D-NEXT:    fsw fs0, 80(a1)
657; LP64D-NEXT:    fsw ft11, 76(a1)
658; LP64D-NEXT:    fsw ft10, 72(a1)
659; LP64D-NEXT:    fsw ft9, 68(a1)
660; LP64D-NEXT:    fsw ft8, 64(a1)
661; LP64D-NEXT:    fsw fa7, 60(a1)
662; LP64D-NEXT:    fsw fa6, 56(a1)
663; LP64D-NEXT:    fsw ft7, 52(a1)
664; LP64D-NEXT:    fsw ft6, 48(a1)
665; LP64D-NEXT:    fsw ft5, 44(a1)
666; LP64D-NEXT:    fsw ft4, 40(a1)
667; LP64D-NEXT:    fsw ft3, 36(a1)
668; LP64D-NEXT:    fsw ft2, 32(a1)
669; LP64D-NEXT:    fsw ft1, 28(a1)
670; LP64D-NEXT:    fsw ft0, 24(a1)
671; LP64D-NEXT:    fsw fa0, 20(a1)
672; LP64D-NEXT:    fsw fa1, 16(a1)
673; LP64D-NEXT:    fsw fa2, %lo(var+12)(a0)
674; LP64D-NEXT:    fsw fa3, %lo(var+8)(a0)
675; LP64D-NEXT:    fsw fa4, %lo(var+4)(a0)
676; LP64D-NEXT:    fsw fa5, %lo(var)(a0)
677; LP64D-NEXT:    fld fs0, 88(sp) # 8-byte Folded Reload
678; LP64D-NEXT:    fld fs1, 80(sp) # 8-byte Folded Reload
679; LP64D-NEXT:    fld fs2, 72(sp) # 8-byte Folded Reload
680; LP64D-NEXT:    fld fs3, 64(sp) # 8-byte Folded Reload
681; LP64D-NEXT:    fld fs4, 56(sp) # 8-byte Folded Reload
682; LP64D-NEXT:    fld fs5, 48(sp) # 8-byte Folded Reload
683; LP64D-NEXT:    fld fs6, 40(sp) # 8-byte Folded Reload
684; LP64D-NEXT:    fld fs7, 32(sp) # 8-byte Folded Reload
685; LP64D-NEXT:    fld fs8, 24(sp) # 8-byte Folded Reload
686; LP64D-NEXT:    fld fs9, 16(sp) # 8-byte Folded Reload
687; LP64D-NEXT:    fld fs10, 8(sp) # 8-byte Folded Reload
688; LP64D-NEXT:    fld fs11, 0(sp) # 8-byte Folded Reload
689; LP64D-NEXT:    addi sp, sp, 96
690; LP64D-NEXT:    ret
691  %val = load [32 x float], ptr @var
692  store volatile [32 x float] %val, ptr @var
693  ret void
694}
695
696; This function tests that RISCVRegisterInfo::getCallPreservedMask returns
697; something appropriate.
698;
699; For the soft float ABIs, no floating point registers are preserved, and
700; codegen will use only ft0 in the body of caller. For the 'f' and 'd ABIs,
701; fs0-fs11 are preserved across calls.
702
703define void @caller() nounwind {
704; ILP32-LABEL: caller:
705; ILP32:       # %bb.0:
706; ILP32-NEXT:    addi sp, sp, -144
707; ILP32-NEXT:    sw ra, 140(sp) # 4-byte Folded Spill
708; ILP32-NEXT:    sw s0, 136(sp) # 4-byte Folded Spill
709; ILP32-NEXT:    sw s1, 132(sp) # 4-byte Folded Spill
710; ILP32-NEXT:    lui s0, %hi(var)
711; ILP32-NEXT:    flw fa5, %lo(var)(s0)
712; ILP32-NEXT:    fsw fa5, 128(sp) # 4-byte Folded Spill
713; ILP32-NEXT:    flw fa5, %lo(var+4)(s0)
714; ILP32-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
715; ILP32-NEXT:    flw fa5, %lo(var+8)(s0)
716; ILP32-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
717; ILP32-NEXT:    flw fa5, %lo(var+12)(s0)
718; ILP32-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
719; ILP32-NEXT:    addi s1, s0, %lo(var)
720; ILP32-NEXT:    flw fa5, 16(s1)
721; ILP32-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
722; ILP32-NEXT:    flw fa5, 20(s1)
723; ILP32-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
724; ILP32-NEXT:    flw fa5, 24(s1)
725; ILP32-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
726; ILP32-NEXT:    flw fa5, 28(s1)
727; ILP32-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
728; ILP32-NEXT:    flw fa5, 32(s1)
729; ILP32-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
730; ILP32-NEXT:    flw fa5, 36(s1)
731; ILP32-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
732; ILP32-NEXT:    flw fa5, 40(s1)
733; ILP32-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
734; ILP32-NEXT:    flw fa5, 44(s1)
735; ILP32-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
736; ILP32-NEXT:    flw fa5, 48(s1)
737; ILP32-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
738; ILP32-NEXT:    flw fa5, 52(s1)
739; ILP32-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
740; ILP32-NEXT:    flw fa5, 56(s1)
741; ILP32-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
742; ILP32-NEXT:    flw fa5, 60(s1)
743; ILP32-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
744; ILP32-NEXT:    flw fa5, 64(s1)
745; ILP32-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
746; ILP32-NEXT:    flw fa5, 68(s1)
747; ILP32-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
748; ILP32-NEXT:    flw fa5, 72(s1)
749; ILP32-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
750; ILP32-NEXT:    flw fa5, 76(s1)
751; ILP32-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
752; ILP32-NEXT:    flw fa5, 80(s1)
753; ILP32-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
754; ILP32-NEXT:    flw fa5, 84(s1)
755; ILP32-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
756; ILP32-NEXT:    flw fa5, 88(s1)
757; ILP32-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
758; ILP32-NEXT:    flw fa5, 92(s1)
759; ILP32-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
760; ILP32-NEXT:    flw fa5, 96(s1)
761; ILP32-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
762; ILP32-NEXT:    flw fa5, 100(s1)
763; ILP32-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
764; ILP32-NEXT:    flw fa5, 104(s1)
765; ILP32-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
766; ILP32-NEXT:    flw fa5, 108(s1)
767; ILP32-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
768; ILP32-NEXT:    flw fa5, 112(s1)
769; ILP32-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
770; ILP32-NEXT:    flw fa5, 116(s1)
771; ILP32-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
772; ILP32-NEXT:    flw fa5, 120(s1)
773; ILP32-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
774; ILP32-NEXT:    flw fa5, 124(s1)
775; ILP32-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
776; ILP32-NEXT:    call callee
777; ILP32-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
778; ILP32-NEXT:    fsw fa5, 124(s1)
779; ILP32-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
780; ILP32-NEXT:    fsw fa5, 120(s1)
781; ILP32-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
782; ILP32-NEXT:    fsw fa5, 116(s1)
783; ILP32-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
784; ILP32-NEXT:    fsw fa5, 112(s1)
785; ILP32-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
786; ILP32-NEXT:    fsw fa5, 108(s1)
787; ILP32-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
788; ILP32-NEXT:    fsw fa5, 104(s1)
789; ILP32-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
790; ILP32-NEXT:    fsw fa5, 100(s1)
791; ILP32-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
792; ILP32-NEXT:    fsw fa5, 96(s1)
793; ILP32-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
794; ILP32-NEXT:    fsw fa5, 92(s1)
795; ILP32-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
796; ILP32-NEXT:    fsw fa5, 88(s1)
797; ILP32-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
798; ILP32-NEXT:    fsw fa5, 84(s1)
799; ILP32-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
800; ILP32-NEXT:    fsw fa5, 80(s1)
801; ILP32-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
802; ILP32-NEXT:    fsw fa5, 76(s1)
803; ILP32-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
804; ILP32-NEXT:    fsw fa5, 72(s1)
805; ILP32-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
806; ILP32-NEXT:    fsw fa5, 68(s1)
807; ILP32-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
808; ILP32-NEXT:    fsw fa5, 64(s1)
809; ILP32-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
810; ILP32-NEXT:    fsw fa5, 60(s1)
811; ILP32-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
812; ILP32-NEXT:    fsw fa5, 56(s1)
813; ILP32-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
814; ILP32-NEXT:    fsw fa5, 52(s1)
815; ILP32-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
816; ILP32-NEXT:    fsw fa5, 48(s1)
817; ILP32-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
818; ILP32-NEXT:    fsw fa5, 44(s1)
819; ILP32-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
820; ILP32-NEXT:    fsw fa5, 40(s1)
821; ILP32-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
822; ILP32-NEXT:    fsw fa5, 36(s1)
823; ILP32-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
824; ILP32-NEXT:    fsw fa5, 32(s1)
825; ILP32-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
826; ILP32-NEXT:    fsw fa5, 28(s1)
827; ILP32-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
828; ILP32-NEXT:    fsw fa5, 24(s1)
829; ILP32-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
830; ILP32-NEXT:    fsw fa5, 20(s1)
831; ILP32-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
832; ILP32-NEXT:    fsw fa5, 16(s1)
833; ILP32-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
834; ILP32-NEXT:    fsw fa5, %lo(var+12)(s0)
835; ILP32-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
836; ILP32-NEXT:    fsw fa5, %lo(var+8)(s0)
837; ILP32-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
838; ILP32-NEXT:    fsw fa5, %lo(var+4)(s0)
839; ILP32-NEXT:    flw fa5, 128(sp) # 4-byte Folded Reload
840; ILP32-NEXT:    fsw fa5, %lo(var)(s0)
841; ILP32-NEXT:    lw ra, 140(sp) # 4-byte Folded Reload
842; ILP32-NEXT:    lw s0, 136(sp) # 4-byte Folded Reload
843; ILP32-NEXT:    lw s1, 132(sp) # 4-byte Folded Reload
844; ILP32-NEXT:    addi sp, sp, 144
845; ILP32-NEXT:    ret
846;
847; ILP32E-LABEL: caller:
848; ILP32E:       # %bb.0:
849; ILP32E-NEXT:    addi sp, sp, -140
850; ILP32E-NEXT:    sw ra, 136(sp) # 4-byte Folded Spill
851; ILP32E-NEXT:    sw s0, 132(sp) # 4-byte Folded Spill
852; ILP32E-NEXT:    sw s1, 128(sp) # 4-byte Folded Spill
853; ILP32E-NEXT:    lui s0, %hi(var)
854; ILP32E-NEXT:    flw fa5, %lo(var)(s0)
855; ILP32E-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
856; ILP32E-NEXT:    flw fa5, %lo(var+4)(s0)
857; ILP32E-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
858; ILP32E-NEXT:    flw fa5, %lo(var+8)(s0)
859; ILP32E-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
860; ILP32E-NEXT:    flw fa5, %lo(var+12)(s0)
861; ILP32E-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
862; ILP32E-NEXT:    addi s1, s0, %lo(var)
863; ILP32E-NEXT:    flw fa5, 16(s1)
864; ILP32E-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
865; ILP32E-NEXT:    flw fa5, 20(s1)
866; ILP32E-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
867; ILP32E-NEXT:    flw fa5, 24(s1)
868; ILP32E-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
869; ILP32E-NEXT:    flw fa5, 28(s1)
870; ILP32E-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
871; ILP32E-NEXT:    flw fa5, 32(s1)
872; ILP32E-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
873; ILP32E-NEXT:    flw fa5, 36(s1)
874; ILP32E-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
875; ILP32E-NEXT:    flw fa5, 40(s1)
876; ILP32E-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
877; ILP32E-NEXT:    flw fa5, 44(s1)
878; ILP32E-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
879; ILP32E-NEXT:    flw fa5, 48(s1)
880; ILP32E-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
881; ILP32E-NEXT:    flw fa5, 52(s1)
882; ILP32E-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
883; ILP32E-NEXT:    flw fa5, 56(s1)
884; ILP32E-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
885; ILP32E-NEXT:    flw fa5, 60(s1)
886; ILP32E-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
887; ILP32E-NEXT:    flw fa5, 64(s1)
888; ILP32E-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
889; ILP32E-NEXT:    flw fa5, 68(s1)
890; ILP32E-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
891; ILP32E-NEXT:    flw fa5, 72(s1)
892; ILP32E-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
893; ILP32E-NEXT:    flw fa5, 76(s1)
894; ILP32E-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
895; ILP32E-NEXT:    flw fa5, 80(s1)
896; ILP32E-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
897; ILP32E-NEXT:    flw fa5, 84(s1)
898; ILP32E-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
899; ILP32E-NEXT:    flw fa5, 88(s1)
900; ILP32E-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
901; ILP32E-NEXT:    flw fa5, 92(s1)
902; ILP32E-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
903; ILP32E-NEXT:    flw fa5, 96(s1)
904; ILP32E-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
905; ILP32E-NEXT:    flw fa5, 100(s1)
906; ILP32E-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
907; ILP32E-NEXT:    flw fa5, 104(s1)
908; ILP32E-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
909; ILP32E-NEXT:    flw fa5, 108(s1)
910; ILP32E-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
911; ILP32E-NEXT:    flw fa5, 112(s1)
912; ILP32E-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
913; ILP32E-NEXT:    flw fa5, 116(s1)
914; ILP32E-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
915; ILP32E-NEXT:    flw fa5, 120(s1)
916; ILP32E-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
917; ILP32E-NEXT:    flw fa5, 124(s1)
918; ILP32E-NEXT:    fsw fa5, 0(sp) # 4-byte Folded Spill
919; ILP32E-NEXT:    call callee
920; ILP32E-NEXT:    flw fa5, 0(sp) # 4-byte Folded Reload
921; ILP32E-NEXT:    fsw fa5, 124(s1)
922; ILP32E-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
923; ILP32E-NEXT:    fsw fa5, 120(s1)
924; ILP32E-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
925; ILP32E-NEXT:    fsw fa5, 116(s1)
926; ILP32E-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
927; ILP32E-NEXT:    fsw fa5, 112(s1)
928; ILP32E-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
929; ILP32E-NEXT:    fsw fa5, 108(s1)
930; ILP32E-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
931; ILP32E-NEXT:    fsw fa5, 104(s1)
932; ILP32E-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
933; ILP32E-NEXT:    fsw fa5, 100(s1)
934; ILP32E-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
935; ILP32E-NEXT:    fsw fa5, 96(s1)
936; ILP32E-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
937; ILP32E-NEXT:    fsw fa5, 92(s1)
938; ILP32E-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
939; ILP32E-NEXT:    fsw fa5, 88(s1)
940; ILP32E-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
941; ILP32E-NEXT:    fsw fa5, 84(s1)
942; ILP32E-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
943; ILP32E-NEXT:    fsw fa5, 80(s1)
944; ILP32E-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
945; ILP32E-NEXT:    fsw fa5, 76(s1)
946; ILP32E-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
947; ILP32E-NEXT:    fsw fa5, 72(s1)
948; ILP32E-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
949; ILP32E-NEXT:    fsw fa5, 68(s1)
950; ILP32E-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
951; ILP32E-NEXT:    fsw fa5, 64(s1)
952; ILP32E-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
953; ILP32E-NEXT:    fsw fa5, 60(s1)
954; ILP32E-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
955; ILP32E-NEXT:    fsw fa5, 56(s1)
956; ILP32E-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
957; ILP32E-NEXT:    fsw fa5, 52(s1)
958; ILP32E-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
959; ILP32E-NEXT:    fsw fa5, 48(s1)
960; ILP32E-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
961; ILP32E-NEXT:    fsw fa5, 44(s1)
962; ILP32E-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
963; ILP32E-NEXT:    fsw fa5, 40(s1)
964; ILP32E-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
965; ILP32E-NEXT:    fsw fa5, 36(s1)
966; ILP32E-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
967; ILP32E-NEXT:    fsw fa5, 32(s1)
968; ILP32E-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
969; ILP32E-NEXT:    fsw fa5, 28(s1)
970; ILP32E-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
971; ILP32E-NEXT:    fsw fa5, 24(s1)
972; ILP32E-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
973; ILP32E-NEXT:    fsw fa5, 20(s1)
974; ILP32E-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
975; ILP32E-NEXT:    fsw fa5, 16(s1)
976; ILP32E-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
977; ILP32E-NEXT:    fsw fa5, %lo(var+12)(s0)
978; ILP32E-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
979; ILP32E-NEXT:    fsw fa5, %lo(var+8)(s0)
980; ILP32E-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
981; ILP32E-NEXT:    fsw fa5, %lo(var+4)(s0)
982; ILP32E-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
983; ILP32E-NEXT:    fsw fa5, %lo(var)(s0)
984; ILP32E-NEXT:    lw ra, 136(sp) # 4-byte Folded Reload
985; ILP32E-NEXT:    lw s0, 132(sp) # 4-byte Folded Reload
986; ILP32E-NEXT:    lw s1, 128(sp) # 4-byte Folded Reload
987; ILP32E-NEXT:    addi sp, sp, 140
988; ILP32E-NEXT:    ret
989;
990; LP64-LABEL: caller:
991; LP64:       # %bb.0:
992; LP64-NEXT:    addi sp, sp, -160
993; LP64-NEXT:    sd ra, 152(sp) # 8-byte Folded Spill
994; LP64-NEXT:    sd s0, 144(sp) # 8-byte Folded Spill
995; LP64-NEXT:    sd s1, 136(sp) # 8-byte Folded Spill
996; LP64-NEXT:    lui s0, %hi(var)
997; LP64-NEXT:    flw fa5, %lo(var)(s0)
998; LP64-NEXT:    fsw fa5, 132(sp) # 4-byte Folded Spill
999; LP64-NEXT:    flw fa5, %lo(var+4)(s0)
1000; LP64-NEXT:    fsw fa5, 128(sp) # 4-byte Folded Spill
1001; LP64-NEXT:    flw fa5, %lo(var+8)(s0)
1002; LP64-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
1003; LP64-NEXT:    flw fa5, %lo(var+12)(s0)
1004; LP64-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
1005; LP64-NEXT:    addi s1, s0, %lo(var)
1006; LP64-NEXT:    flw fa5, 16(s1)
1007; LP64-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
1008; LP64-NEXT:    flw fa5, 20(s1)
1009; LP64-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
1010; LP64-NEXT:    flw fa5, 24(s1)
1011; LP64-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
1012; LP64-NEXT:    flw fa5, 28(s1)
1013; LP64-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
1014; LP64-NEXT:    flw fa5, 32(s1)
1015; LP64-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
1016; LP64-NEXT:    flw fa5, 36(s1)
1017; LP64-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
1018; LP64-NEXT:    flw fa5, 40(s1)
1019; LP64-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
1020; LP64-NEXT:    flw fa5, 44(s1)
1021; LP64-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
1022; LP64-NEXT:    flw fa5, 48(s1)
1023; LP64-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1024; LP64-NEXT:    flw fa5, 52(s1)
1025; LP64-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1026; LP64-NEXT:    flw fa5, 56(s1)
1027; LP64-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1028; LP64-NEXT:    flw fa5, 60(s1)
1029; LP64-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1030; LP64-NEXT:    flw fa5, 64(s1)
1031; LP64-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1032; LP64-NEXT:    flw fa5, 68(s1)
1033; LP64-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1034; LP64-NEXT:    flw fa5, 72(s1)
1035; LP64-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1036; LP64-NEXT:    flw fa5, 76(s1)
1037; LP64-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1038; LP64-NEXT:    flw fa5, 80(s1)
1039; LP64-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1040; LP64-NEXT:    flw fa5, 84(s1)
1041; LP64-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1042; LP64-NEXT:    flw fa5, 88(s1)
1043; LP64-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1044; LP64-NEXT:    flw fa5, 92(s1)
1045; LP64-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1046; LP64-NEXT:    flw fa5, 96(s1)
1047; LP64-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1048; LP64-NEXT:    flw fa5, 100(s1)
1049; LP64-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1050; LP64-NEXT:    flw fa5, 104(s1)
1051; LP64-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1052; LP64-NEXT:    flw fa5, 108(s1)
1053; LP64-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1054; LP64-NEXT:    flw fa5, 112(s1)
1055; LP64-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1056; LP64-NEXT:    flw fa5, 116(s1)
1057; LP64-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1058; LP64-NEXT:    flw fa5, 120(s1)
1059; LP64-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1060; LP64-NEXT:    flw fa5, 124(s1)
1061; LP64-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1062; LP64-NEXT:    call callee
1063; LP64-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1064; LP64-NEXT:    fsw fa5, 124(s1)
1065; LP64-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1066; LP64-NEXT:    fsw fa5, 120(s1)
1067; LP64-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1068; LP64-NEXT:    fsw fa5, 116(s1)
1069; LP64-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1070; LP64-NEXT:    fsw fa5, 112(s1)
1071; LP64-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1072; LP64-NEXT:    fsw fa5, 108(s1)
1073; LP64-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1074; LP64-NEXT:    fsw fa5, 104(s1)
1075; LP64-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1076; LP64-NEXT:    fsw fa5, 100(s1)
1077; LP64-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1078; LP64-NEXT:    fsw fa5, 96(s1)
1079; LP64-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1080; LP64-NEXT:    fsw fa5, 92(s1)
1081; LP64-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1082; LP64-NEXT:    fsw fa5, 88(s1)
1083; LP64-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1084; LP64-NEXT:    fsw fa5, 84(s1)
1085; LP64-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1086; LP64-NEXT:    fsw fa5, 80(s1)
1087; LP64-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1088; LP64-NEXT:    fsw fa5, 76(s1)
1089; LP64-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1090; LP64-NEXT:    fsw fa5, 72(s1)
1091; LP64-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1092; LP64-NEXT:    fsw fa5, 68(s1)
1093; LP64-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1094; LP64-NEXT:    fsw fa5, 64(s1)
1095; LP64-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1096; LP64-NEXT:    fsw fa5, 60(s1)
1097; LP64-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1098; LP64-NEXT:    fsw fa5, 56(s1)
1099; LP64-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1100; LP64-NEXT:    fsw fa5, 52(s1)
1101; LP64-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1102; LP64-NEXT:    fsw fa5, 48(s1)
1103; LP64-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
1104; LP64-NEXT:    fsw fa5, 44(s1)
1105; LP64-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
1106; LP64-NEXT:    fsw fa5, 40(s1)
1107; LP64-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
1108; LP64-NEXT:    fsw fa5, 36(s1)
1109; LP64-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
1110; LP64-NEXT:    fsw fa5, 32(s1)
1111; LP64-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
1112; LP64-NEXT:    fsw fa5, 28(s1)
1113; LP64-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
1114; LP64-NEXT:    fsw fa5, 24(s1)
1115; LP64-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
1116; LP64-NEXT:    fsw fa5, 20(s1)
1117; LP64-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
1118; LP64-NEXT:    fsw fa5, 16(s1)
1119; LP64-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
1120; LP64-NEXT:    fsw fa5, %lo(var+12)(s0)
1121; LP64-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
1122; LP64-NEXT:    fsw fa5, %lo(var+8)(s0)
1123; LP64-NEXT:    flw fa5, 128(sp) # 4-byte Folded Reload
1124; LP64-NEXT:    fsw fa5, %lo(var+4)(s0)
1125; LP64-NEXT:    flw fa5, 132(sp) # 4-byte Folded Reload
1126; LP64-NEXT:    fsw fa5, %lo(var)(s0)
1127; LP64-NEXT:    ld ra, 152(sp) # 8-byte Folded Reload
1128; LP64-NEXT:    ld s0, 144(sp) # 8-byte Folded Reload
1129; LP64-NEXT:    ld s1, 136(sp) # 8-byte Folded Reload
1130; LP64-NEXT:    addi sp, sp, 160
1131; LP64-NEXT:    ret
1132;
1133; LP64E-LABEL: caller:
1134; LP64E:       # %bb.0:
1135; LP64E-NEXT:    addi sp, sp, -152
1136; LP64E-NEXT:    sd ra, 144(sp) # 8-byte Folded Spill
1137; LP64E-NEXT:    sd s0, 136(sp) # 8-byte Folded Spill
1138; LP64E-NEXT:    sd s1, 128(sp) # 8-byte Folded Spill
1139; LP64E-NEXT:    lui s0, %hi(var)
1140; LP64E-NEXT:    flw fa5, %lo(var)(s0)
1141; LP64E-NEXT:    fsw fa5, 124(sp) # 4-byte Folded Spill
1142; LP64E-NEXT:    flw fa5, %lo(var+4)(s0)
1143; LP64E-NEXT:    fsw fa5, 120(sp) # 4-byte Folded Spill
1144; LP64E-NEXT:    flw fa5, %lo(var+8)(s0)
1145; LP64E-NEXT:    fsw fa5, 116(sp) # 4-byte Folded Spill
1146; LP64E-NEXT:    flw fa5, %lo(var+12)(s0)
1147; LP64E-NEXT:    fsw fa5, 112(sp) # 4-byte Folded Spill
1148; LP64E-NEXT:    addi s1, s0, %lo(var)
1149; LP64E-NEXT:    flw fa5, 16(s1)
1150; LP64E-NEXT:    fsw fa5, 108(sp) # 4-byte Folded Spill
1151; LP64E-NEXT:    flw fa5, 20(s1)
1152; LP64E-NEXT:    fsw fa5, 104(sp) # 4-byte Folded Spill
1153; LP64E-NEXT:    flw fa5, 24(s1)
1154; LP64E-NEXT:    fsw fa5, 100(sp) # 4-byte Folded Spill
1155; LP64E-NEXT:    flw fa5, 28(s1)
1156; LP64E-NEXT:    fsw fa5, 96(sp) # 4-byte Folded Spill
1157; LP64E-NEXT:    flw fa5, 32(s1)
1158; LP64E-NEXT:    fsw fa5, 92(sp) # 4-byte Folded Spill
1159; LP64E-NEXT:    flw fa5, 36(s1)
1160; LP64E-NEXT:    fsw fa5, 88(sp) # 4-byte Folded Spill
1161; LP64E-NEXT:    flw fa5, 40(s1)
1162; LP64E-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1163; LP64E-NEXT:    flw fa5, 44(s1)
1164; LP64E-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1165; LP64E-NEXT:    flw fa5, 48(s1)
1166; LP64E-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1167; LP64E-NEXT:    flw fa5, 52(s1)
1168; LP64E-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1169; LP64E-NEXT:    flw fa5, 56(s1)
1170; LP64E-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1171; LP64E-NEXT:    flw fa5, 60(s1)
1172; LP64E-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1173; LP64E-NEXT:    flw fa5, 64(s1)
1174; LP64E-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1175; LP64E-NEXT:    flw fa5, 68(s1)
1176; LP64E-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1177; LP64E-NEXT:    flw fa5, 72(s1)
1178; LP64E-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1179; LP64E-NEXT:    flw fa5, 76(s1)
1180; LP64E-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1181; LP64E-NEXT:    flw fa5, 80(s1)
1182; LP64E-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1183; LP64E-NEXT:    flw fa5, 84(s1)
1184; LP64E-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1185; LP64E-NEXT:    flw fa5, 88(s1)
1186; LP64E-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1187; LP64E-NEXT:    flw fa5, 92(s1)
1188; LP64E-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1189; LP64E-NEXT:    flw fa5, 96(s1)
1190; LP64E-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1191; LP64E-NEXT:    flw fa5, 100(s1)
1192; LP64E-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1193; LP64E-NEXT:    flw fa5, 104(s1)
1194; LP64E-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1195; LP64E-NEXT:    flw fa5, 108(s1)
1196; LP64E-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1197; LP64E-NEXT:    flw fa5, 112(s1)
1198; LP64E-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1199; LP64E-NEXT:    flw fa5, 116(s1)
1200; LP64E-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1201; LP64E-NEXT:    flw fa5, 120(s1)
1202; LP64E-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
1203; LP64E-NEXT:    flw fa5, 124(s1)
1204; LP64E-NEXT:    fsw fa5, 0(sp) # 4-byte Folded Spill
1205; LP64E-NEXT:    call callee
1206; LP64E-NEXT:    flw fa5, 0(sp) # 4-byte Folded Reload
1207; LP64E-NEXT:    fsw fa5, 124(s1)
1208; LP64E-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
1209; LP64E-NEXT:    fsw fa5, 120(s1)
1210; LP64E-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1211; LP64E-NEXT:    fsw fa5, 116(s1)
1212; LP64E-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1213; LP64E-NEXT:    fsw fa5, 112(s1)
1214; LP64E-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1215; LP64E-NEXT:    fsw fa5, 108(s1)
1216; LP64E-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1217; LP64E-NEXT:    fsw fa5, 104(s1)
1218; LP64E-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1219; LP64E-NEXT:    fsw fa5, 100(s1)
1220; LP64E-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1221; LP64E-NEXT:    fsw fa5, 96(s1)
1222; LP64E-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1223; LP64E-NEXT:    fsw fa5, 92(s1)
1224; LP64E-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1225; LP64E-NEXT:    fsw fa5, 88(s1)
1226; LP64E-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1227; LP64E-NEXT:    fsw fa5, 84(s1)
1228; LP64E-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1229; LP64E-NEXT:    fsw fa5, 80(s1)
1230; LP64E-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1231; LP64E-NEXT:    fsw fa5, 76(s1)
1232; LP64E-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1233; LP64E-NEXT:    fsw fa5, 72(s1)
1234; LP64E-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1235; LP64E-NEXT:    fsw fa5, 68(s1)
1236; LP64E-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1237; LP64E-NEXT:    fsw fa5, 64(s1)
1238; LP64E-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1239; LP64E-NEXT:    fsw fa5, 60(s1)
1240; LP64E-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1241; LP64E-NEXT:    fsw fa5, 56(s1)
1242; LP64E-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1243; LP64E-NEXT:    fsw fa5, 52(s1)
1244; LP64E-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1245; LP64E-NEXT:    fsw fa5, 48(s1)
1246; LP64E-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1247; LP64E-NEXT:    fsw fa5, 44(s1)
1248; LP64E-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1249; LP64E-NEXT:    fsw fa5, 40(s1)
1250; LP64E-NEXT:    flw fa5, 88(sp) # 4-byte Folded Reload
1251; LP64E-NEXT:    fsw fa5, 36(s1)
1252; LP64E-NEXT:    flw fa5, 92(sp) # 4-byte Folded Reload
1253; LP64E-NEXT:    fsw fa5, 32(s1)
1254; LP64E-NEXT:    flw fa5, 96(sp) # 4-byte Folded Reload
1255; LP64E-NEXT:    fsw fa5, 28(s1)
1256; LP64E-NEXT:    flw fa5, 100(sp) # 4-byte Folded Reload
1257; LP64E-NEXT:    fsw fa5, 24(s1)
1258; LP64E-NEXT:    flw fa5, 104(sp) # 4-byte Folded Reload
1259; LP64E-NEXT:    fsw fa5, 20(s1)
1260; LP64E-NEXT:    flw fa5, 108(sp) # 4-byte Folded Reload
1261; LP64E-NEXT:    fsw fa5, 16(s1)
1262; LP64E-NEXT:    flw fa5, 112(sp) # 4-byte Folded Reload
1263; LP64E-NEXT:    fsw fa5, %lo(var+12)(s0)
1264; LP64E-NEXT:    flw fa5, 116(sp) # 4-byte Folded Reload
1265; LP64E-NEXT:    fsw fa5, %lo(var+8)(s0)
1266; LP64E-NEXT:    flw fa5, 120(sp) # 4-byte Folded Reload
1267; LP64E-NEXT:    fsw fa5, %lo(var+4)(s0)
1268; LP64E-NEXT:    flw fa5, 124(sp) # 4-byte Folded Reload
1269; LP64E-NEXT:    fsw fa5, %lo(var)(s0)
1270; LP64E-NEXT:    ld ra, 144(sp) # 8-byte Folded Reload
1271; LP64E-NEXT:    ld s0, 136(sp) # 8-byte Folded Reload
1272; LP64E-NEXT:    ld s1, 128(sp) # 8-byte Folded Reload
1273; LP64E-NEXT:    addi sp, sp, 152
1274; LP64E-NEXT:    ret
1275;
1276; ILP32F-LABEL: caller:
1277; ILP32F:       # %bb.0:
1278; ILP32F-NEXT:    addi sp, sp, -144
1279; ILP32F-NEXT:    sw ra, 140(sp) # 4-byte Folded Spill
1280; ILP32F-NEXT:    sw s0, 136(sp) # 4-byte Folded Spill
1281; ILP32F-NEXT:    sw s1, 132(sp) # 4-byte Folded Spill
1282; ILP32F-NEXT:    fsw fs0, 128(sp) # 4-byte Folded Spill
1283; ILP32F-NEXT:    fsw fs1, 124(sp) # 4-byte Folded Spill
1284; ILP32F-NEXT:    fsw fs2, 120(sp) # 4-byte Folded Spill
1285; ILP32F-NEXT:    fsw fs3, 116(sp) # 4-byte Folded Spill
1286; ILP32F-NEXT:    fsw fs4, 112(sp) # 4-byte Folded Spill
1287; ILP32F-NEXT:    fsw fs5, 108(sp) # 4-byte Folded Spill
1288; ILP32F-NEXT:    fsw fs6, 104(sp) # 4-byte Folded Spill
1289; ILP32F-NEXT:    fsw fs7, 100(sp) # 4-byte Folded Spill
1290; ILP32F-NEXT:    fsw fs8, 96(sp) # 4-byte Folded Spill
1291; ILP32F-NEXT:    fsw fs9, 92(sp) # 4-byte Folded Spill
1292; ILP32F-NEXT:    fsw fs10, 88(sp) # 4-byte Folded Spill
1293; ILP32F-NEXT:    fsw fs11, 84(sp) # 4-byte Folded Spill
1294; ILP32F-NEXT:    lui s0, %hi(var)
1295; ILP32F-NEXT:    flw fa5, %lo(var)(s0)
1296; ILP32F-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1297; ILP32F-NEXT:    flw fa5, %lo(var+4)(s0)
1298; ILP32F-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1299; ILP32F-NEXT:    flw fa5, %lo(var+8)(s0)
1300; ILP32F-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1301; ILP32F-NEXT:    flw fa5, %lo(var+12)(s0)
1302; ILP32F-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1303; ILP32F-NEXT:    addi s1, s0, %lo(var)
1304; ILP32F-NEXT:    flw fa5, 16(s1)
1305; ILP32F-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1306; ILP32F-NEXT:    flw fa5, 20(s1)
1307; ILP32F-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1308; ILP32F-NEXT:    flw fa5, 24(s1)
1309; ILP32F-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1310; ILP32F-NEXT:    flw fa5, 28(s1)
1311; ILP32F-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1312; ILP32F-NEXT:    flw fa5, 32(s1)
1313; ILP32F-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1314; ILP32F-NEXT:    flw fa5, 36(s1)
1315; ILP32F-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1316; ILP32F-NEXT:    flw fa5, 40(s1)
1317; ILP32F-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1318; ILP32F-NEXT:    flw fa5, 44(s1)
1319; ILP32F-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1320; ILP32F-NEXT:    flw fa5, 48(s1)
1321; ILP32F-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1322; ILP32F-NEXT:    flw fa5, 52(s1)
1323; ILP32F-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1324; ILP32F-NEXT:    flw fa5, 56(s1)
1325; ILP32F-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1326; ILP32F-NEXT:    flw fa5, 60(s1)
1327; ILP32F-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1328; ILP32F-NEXT:    flw fa5, 64(s1)
1329; ILP32F-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1330; ILP32F-NEXT:    flw fa5, 68(s1)
1331; ILP32F-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1332; ILP32F-NEXT:    flw fa5, 72(s1)
1333; ILP32F-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1334; ILP32F-NEXT:    flw fa5, 76(s1)
1335; ILP32F-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
1336; ILP32F-NEXT:    flw fs8, 80(s1)
1337; ILP32F-NEXT:    flw fs9, 84(s1)
1338; ILP32F-NEXT:    flw fs10, 88(s1)
1339; ILP32F-NEXT:    flw fs11, 92(s1)
1340; ILP32F-NEXT:    flw fs0, 96(s1)
1341; ILP32F-NEXT:    flw fs1, 100(s1)
1342; ILP32F-NEXT:    flw fs2, 104(s1)
1343; ILP32F-NEXT:    flw fs3, 108(s1)
1344; ILP32F-NEXT:    flw fs4, 112(s1)
1345; ILP32F-NEXT:    flw fs5, 116(s1)
1346; ILP32F-NEXT:    flw fs6, 120(s1)
1347; ILP32F-NEXT:    flw fs7, 124(s1)
1348; ILP32F-NEXT:    call callee
1349; ILP32F-NEXT:    fsw fs7, 124(s1)
1350; ILP32F-NEXT:    fsw fs6, 120(s1)
1351; ILP32F-NEXT:    fsw fs5, 116(s1)
1352; ILP32F-NEXT:    fsw fs4, 112(s1)
1353; ILP32F-NEXT:    fsw fs3, 108(s1)
1354; ILP32F-NEXT:    fsw fs2, 104(s1)
1355; ILP32F-NEXT:    fsw fs1, 100(s1)
1356; ILP32F-NEXT:    fsw fs0, 96(s1)
1357; ILP32F-NEXT:    fsw fs11, 92(s1)
1358; ILP32F-NEXT:    fsw fs10, 88(s1)
1359; ILP32F-NEXT:    fsw fs9, 84(s1)
1360; ILP32F-NEXT:    fsw fs8, 80(s1)
1361; ILP32F-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
1362; ILP32F-NEXT:    fsw fa5, 76(s1)
1363; ILP32F-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1364; ILP32F-NEXT:    fsw fa5, 72(s1)
1365; ILP32F-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1366; ILP32F-NEXT:    fsw fa5, 68(s1)
1367; ILP32F-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1368; ILP32F-NEXT:    fsw fa5, 64(s1)
1369; ILP32F-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1370; ILP32F-NEXT:    fsw fa5, 60(s1)
1371; ILP32F-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1372; ILP32F-NEXT:    fsw fa5, 56(s1)
1373; ILP32F-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1374; ILP32F-NEXT:    fsw fa5, 52(s1)
1375; ILP32F-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1376; ILP32F-NEXT:    fsw fa5, 48(s1)
1377; ILP32F-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1378; ILP32F-NEXT:    fsw fa5, 44(s1)
1379; ILP32F-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1380; ILP32F-NEXT:    fsw fa5, 40(s1)
1381; ILP32F-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1382; ILP32F-NEXT:    fsw fa5, 36(s1)
1383; ILP32F-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1384; ILP32F-NEXT:    fsw fa5, 32(s1)
1385; ILP32F-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1386; ILP32F-NEXT:    fsw fa5, 28(s1)
1387; ILP32F-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1388; ILP32F-NEXT:    fsw fa5, 24(s1)
1389; ILP32F-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1390; ILP32F-NEXT:    fsw fa5, 20(s1)
1391; ILP32F-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1392; ILP32F-NEXT:    fsw fa5, 16(s1)
1393; ILP32F-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1394; ILP32F-NEXT:    fsw fa5, %lo(var+12)(s0)
1395; ILP32F-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1396; ILP32F-NEXT:    fsw fa5, %lo(var+8)(s0)
1397; ILP32F-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1398; ILP32F-NEXT:    fsw fa5, %lo(var+4)(s0)
1399; ILP32F-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1400; ILP32F-NEXT:    fsw fa5, %lo(var)(s0)
1401; ILP32F-NEXT:    lw ra, 140(sp) # 4-byte Folded Reload
1402; ILP32F-NEXT:    lw s0, 136(sp) # 4-byte Folded Reload
1403; ILP32F-NEXT:    lw s1, 132(sp) # 4-byte Folded Reload
1404; ILP32F-NEXT:    flw fs0, 128(sp) # 4-byte Folded Reload
1405; ILP32F-NEXT:    flw fs1, 124(sp) # 4-byte Folded Reload
1406; ILP32F-NEXT:    flw fs2, 120(sp) # 4-byte Folded Reload
1407; ILP32F-NEXT:    flw fs3, 116(sp) # 4-byte Folded Reload
1408; ILP32F-NEXT:    flw fs4, 112(sp) # 4-byte Folded Reload
1409; ILP32F-NEXT:    flw fs5, 108(sp) # 4-byte Folded Reload
1410; ILP32F-NEXT:    flw fs6, 104(sp) # 4-byte Folded Reload
1411; ILP32F-NEXT:    flw fs7, 100(sp) # 4-byte Folded Reload
1412; ILP32F-NEXT:    flw fs8, 96(sp) # 4-byte Folded Reload
1413; ILP32F-NEXT:    flw fs9, 92(sp) # 4-byte Folded Reload
1414; ILP32F-NEXT:    flw fs10, 88(sp) # 4-byte Folded Reload
1415; ILP32F-NEXT:    flw fs11, 84(sp) # 4-byte Folded Reload
1416; ILP32F-NEXT:    addi sp, sp, 144
1417; ILP32F-NEXT:    ret
1418;
1419; LP64F-LABEL: caller:
1420; LP64F:       # %bb.0:
1421; LP64F-NEXT:    addi sp, sp, -160
1422; LP64F-NEXT:    sd ra, 152(sp) # 8-byte Folded Spill
1423; LP64F-NEXT:    sd s0, 144(sp) # 8-byte Folded Spill
1424; LP64F-NEXT:    sd s1, 136(sp) # 8-byte Folded Spill
1425; LP64F-NEXT:    fsw fs0, 132(sp) # 4-byte Folded Spill
1426; LP64F-NEXT:    fsw fs1, 128(sp) # 4-byte Folded Spill
1427; LP64F-NEXT:    fsw fs2, 124(sp) # 4-byte Folded Spill
1428; LP64F-NEXT:    fsw fs3, 120(sp) # 4-byte Folded Spill
1429; LP64F-NEXT:    fsw fs4, 116(sp) # 4-byte Folded Spill
1430; LP64F-NEXT:    fsw fs5, 112(sp) # 4-byte Folded Spill
1431; LP64F-NEXT:    fsw fs6, 108(sp) # 4-byte Folded Spill
1432; LP64F-NEXT:    fsw fs7, 104(sp) # 4-byte Folded Spill
1433; LP64F-NEXT:    fsw fs8, 100(sp) # 4-byte Folded Spill
1434; LP64F-NEXT:    fsw fs9, 96(sp) # 4-byte Folded Spill
1435; LP64F-NEXT:    fsw fs10, 92(sp) # 4-byte Folded Spill
1436; LP64F-NEXT:    fsw fs11, 88(sp) # 4-byte Folded Spill
1437; LP64F-NEXT:    lui s0, %hi(var)
1438; LP64F-NEXT:    flw fa5, %lo(var)(s0)
1439; LP64F-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1440; LP64F-NEXT:    flw fa5, %lo(var+4)(s0)
1441; LP64F-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1442; LP64F-NEXT:    flw fa5, %lo(var+8)(s0)
1443; LP64F-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1444; LP64F-NEXT:    flw fa5, %lo(var+12)(s0)
1445; LP64F-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1446; LP64F-NEXT:    addi s1, s0, %lo(var)
1447; LP64F-NEXT:    flw fa5, 16(s1)
1448; LP64F-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1449; LP64F-NEXT:    flw fa5, 20(s1)
1450; LP64F-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1451; LP64F-NEXT:    flw fa5, 24(s1)
1452; LP64F-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1453; LP64F-NEXT:    flw fa5, 28(s1)
1454; LP64F-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1455; LP64F-NEXT:    flw fa5, 32(s1)
1456; LP64F-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1457; LP64F-NEXT:    flw fa5, 36(s1)
1458; LP64F-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1459; LP64F-NEXT:    flw fa5, 40(s1)
1460; LP64F-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1461; LP64F-NEXT:    flw fa5, 44(s1)
1462; LP64F-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1463; LP64F-NEXT:    flw fa5, 48(s1)
1464; LP64F-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1465; LP64F-NEXT:    flw fa5, 52(s1)
1466; LP64F-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1467; LP64F-NEXT:    flw fa5, 56(s1)
1468; LP64F-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1469; LP64F-NEXT:    flw fa5, 60(s1)
1470; LP64F-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1471; LP64F-NEXT:    flw fa5, 64(s1)
1472; LP64F-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1473; LP64F-NEXT:    flw fa5, 68(s1)
1474; LP64F-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1475; LP64F-NEXT:    flw fa5, 72(s1)
1476; LP64F-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1477; LP64F-NEXT:    flw fa5, 76(s1)
1478; LP64F-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1479; LP64F-NEXT:    flw fs8, 80(s1)
1480; LP64F-NEXT:    flw fs9, 84(s1)
1481; LP64F-NEXT:    flw fs10, 88(s1)
1482; LP64F-NEXT:    flw fs11, 92(s1)
1483; LP64F-NEXT:    flw fs0, 96(s1)
1484; LP64F-NEXT:    flw fs1, 100(s1)
1485; LP64F-NEXT:    flw fs2, 104(s1)
1486; LP64F-NEXT:    flw fs3, 108(s1)
1487; LP64F-NEXT:    flw fs4, 112(s1)
1488; LP64F-NEXT:    flw fs5, 116(s1)
1489; LP64F-NEXT:    flw fs6, 120(s1)
1490; LP64F-NEXT:    flw fs7, 124(s1)
1491; LP64F-NEXT:    call callee
1492; LP64F-NEXT:    fsw fs7, 124(s1)
1493; LP64F-NEXT:    fsw fs6, 120(s1)
1494; LP64F-NEXT:    fsw fs5, 116(s1)
1495; LP64F-NEXT:    fsw fs4, 112(s1)
1496; LP64F-NEXT:    fsw fs3, 108(s1)
1497; LP64F-NEXT:    fsw fs2, 104(s1)
1498; LP64F-NEXT:    fsw fs1, 100(s1)
1499; LP64F-NEXT:    fsw fs0, 96(s1)
1500; LP64F-NEXT:    fsw fs11, 92(s1)
1501; LP64F-NEXT:    fsw fs10, 88(s1)
1502; LP64F-NEXT:    fsw fs9, 84(s1)
1503; LP64F-NEXT:    fsw fs8, 80(s1)
1504; LP64F-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1505; LP64F-NEXT:    fsw fa5, 76(s1)
1506; LP64F-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1507; LP64F-NEXT:    fsw fa5, 72(s1)
1508; LP64F-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1509; LP64F-NEXT:    fsw fa5, 68(s1)
1510; LP64F-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1511; LP64F-NEXT:    fsw fa5, 64(s1)
1512; LP64F-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1513; LP64F-NEXT:    fsw fa5, 60(s1)
1514; LP64F-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1515; LP64F-NEXT:    fsw fa5, 56(s1)
1516; LP64F-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1517; LP64F-NEXT:    fsw fa5, 52(s1)
1518; LP64F-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1519; LP64F-NEXT:    fsw fa5, 48(s1)
1520; LP64F-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1521; LP64F-NEXT:    fsw fa5, 44(s1)
1522; LP64F-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1523; LP64F-NEXT:    fsw fa5, 40(s1)
1524; LP64F-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1525; LP64F-NEXT:    fsw fa5, 36(s1)
1526; LP64F-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1527; LP64F-NEXT:    fsw fa5, 32(s1)
1528; LP64F-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1529; LP64F-NEXT:    fsw fa5, 28(s1)
1530; LP64F-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1531; LP64F-NEXT:    fsw fa5, 24(s1)
1532; LP64F-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1533; LP64F-NEXT:    fsw fa5, 20(s1)
1534; LP64F-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1535; LP64F-NEXT:    fsw fa5, 16(s1)
1536; LP64F-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1537; LP64F-NEXT:    fsw fa5, %lo(var+12)(s0)
1538; LP64F-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1539; LP64F-NEXT:    fsw fa5, %lo(var+8)(s0)
1540; LP64F-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1541; LP64F-NEXT:    fsw fa5, %lo(var+4)(s0)
1542; LP64F-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1543; LP64F-NEXT:    fsw fa5, %lo(var)(s0)
1544; LP64F-NEXT:    ld ra, 152(sp) # 8-byte Folded Reload
1545; LP64F-NEXT:    ld s0, 144(sp) # 8-byte Folded Reload
1546; LP64F-NEXT:    ld s1, 136(sp) # 8-byte Folded Reload
1547; LP64F-NEXT:    flw fs0, 132(sp) # 4-byte Folded Reload
1548; LP64F-NEXT:    flw fs1, 128(sp) # 4-byte Folded Reload
1549; LP64F-NEXT:    flw fs2, 124(sp) # 4-byte Folded Reload
1550; LP64F-NEXT:    flw fs3, 120(sp) # 4-byte Folded Reload
1551; LP64F-NEXT:    flw fs4, 116(sp) # 4-byte Folded Reload
1552; LP64F-NEXT:    flw fs5, 112(sp) # 4-byte Folded Reload
1553; LP64F-NEXT:    flw fs6, 108(sp) # 4-byte Folded Reload
1554; LP64F-NEXT:    flw fs7, 104(sp) # 4-byte Folded Reload
1555; LP64F-NEXT:    flw fs8, 100(sp) # 4-byte Folded Reload
1556; LP64F-NEXT:    flw fs9, 96(sp) # 4-byte Folded Reload
1557; LP64F-NEXT:    flw fs10, 92(sp) # 4-byte Folded Reload
1558; LP64F-NEXT:    flw fs11, 88(sp) # 4-byte Folded Reload
1559; LP64F-NEXT:    addi sp, sp, 160
1560; LP64F-NEXT:    ret
1561;
1562; ILP32D-LABEL: caller:
1563; ILP32D:       # %bb.0:
1564; ILP32D-NEXT:    addi sp, sp, -192
1565; ILP32D-NEXT:    sw ra, 188(sp) # 4-byte Folded Spill
1566; ILP32D-NEXT:    sw s0, 184(sp) # 4-byte Folded Spill
1567; ILP32D-NEXT:    sw s1, 180(sp) # 4-byte Folded Spill
1568; ILP32D-NEXT:    fsd fs0, 168(sp) # 8-byte Folded Spill
1569; ILP32D-NEXT:    fsd fs1, 160(sp) # 8-byte Folded Spill
1570; ILP32D-NEXT:    fsd fs2, 152(sp) # 8-byte Folded Spill
1571; ILP32D-NEXT:    fsd fs3, 144(sp) # 8-byte Folded Spill
1572; ILP32D-NEXT:    fsd fs4, 136(sp) # 8-byte Folded Spill
1573; ILP32D-NEXT:    fsd fs5, 128(sp) # 8-byte Folded Spill
1574; ILP32D-NEXT:    fsd fs6, 120(sp) # 8-byte Folded Spill
1575; ILP32D-NEXT:    fsd fs7, 112(sp) # 8-byte Folded Spill
1576; ILP32D-NEXT:    fsd fs8, 104(sp) # 8-byte Folded Spill
1577; ILP32D-NEXT:    fsd fs9, 96(sp) # 8-byte Folded Spill
1578; ILP32D-NEXT:    fsd fs10, 88(sp) # 8-byte Folded Spill
1579; ILP32D-NEXT:    fsd fs11, 80(sp) # 8-byte Folded Spill
1580; ILP32D-NEXT:    lui s0, %hi(var)
1581; ILP32D-NEXT:    flw fa5, %lo(var)(s0)
1582; ILP32D-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1583; ILP32D-NEXT:    flw fa5, %lo(var+4)(s0)
1584; ILP32D-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1585; ILP32D-NEXT:    flw fa5, %lo(var+8)(s0)
1586; ILP32D-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1587; ILP32D-NEXT:    flw fa5, %lo(var+12)(s0)
1588; ILP32D-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1589; ILP32D-NEXT:    addi s1, s0, %lo(var)
1590; ILP32D-NEXT:    flw fa5, 16(s1)
1591; ILP32D-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1592; ILP32D-NEXT:    flw fa5, 20(s1)
1593; ILP32D-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1594; ILP32D-NEXT:    flw fa5, 24(s1)
1595; ILP32D-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1596; ILP32D-NEXT:    flw fa5, 28(s1)
1597; ILP32D-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1598; ILP32D-NEXT:    flw fa5, 32(s1)
1599; ILP32D-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1600; ILP32D-NEXT:    flw fa5, 36(s1)
1601; ILP32D-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1602; ILP32D-NEXT:    flw fa5, 40(s1)
1603; ILP32D-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1604; ILP32D-NEXT:    flw fa5, 44(s1)
1605; ILP32D-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1606; ILP32D-NEXT:    flw fa5, 48(s1)
1607; ILP32D-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1608; ILP32D-NEXT:    flw fa5, 52(s1)
1609; ILP32D-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1610; ILP32D-NEXT:    flw fa5, 56(s1)
1611; ILP32D-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1612; ILP32D-NEXT:    flw fa5, 60(s1)
1613; ILP32D-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1614; ILP32D-NEXT:    flw fa5, 64(s1)
1615; ILP32D-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1616; ILP32D-NEXT:    flw fa5, 68(s1)
1617; ILP32D-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1618; ILP32D-NEXT:    flw fa5, 72(s1)
1619; ILP32D-NEXT:    fsw fa5, 4(sp) # 4-byte Folded Spill
1620; ILP32D-NEXT:    flw fa5, 76(s1)
1621; ILP32D-NEXT:    fsw fa5, 0(sp) # 4-byte Folded Spill
1622; ILP32D-NEXT:    flw fs8, 80(s1)
1623; ILP32D-NEXT:    flw fs9, 84(s1)
1624; ILP32D-NEXT:    flw fs10, 88(s1)
1625; ILP32D-NEXT:    flw fs11, 92(s1)
1626; ILP32D-NEXT:    flw fs0, 96(s1)
1627; ILP32D-NEXT:    flw fs1, 100(s1)
1628; ILP32D-NEXT:    flw fs2, 104(s1)
1629; ILP32D-NEXT:    flw fs3, 108(s1)
1630; ILP32D-NEXT:    flw fs4, 112(s1)
1631; ILP32D-NEXT:    flw fs5, 116(s1)
1632; ILP32D-NEXT:    flw fs6, 120(s1)
1633; ILP32D-NEXT:    flw fs7, 124(s1)
1634; ILP32D-NEXT:    call callee
1635; ILP32D-NEXT:    fsw fs7, 124(s1)
1636; ILP32D-NEXT:    fsw fs6, 120(s1)
1637; ILP32D-NEXT:    fsw fs5, 116(s1)
1638; ILP32D-NEXT:    fsw fs4, 112(s1)
1639; ILP32D-NEXT:    fsw fs3, 108(s1)
1640; ILP32D-NEXT:    fsw fs2, 104(s1)
1641; ILP32D-NEXT:    fsw fs1, 100(s1)
1642; ILP32D-NEXT:    fsw fs0, 96(s1)
1643; ILP32D-NEXT:    fsw fs11, 92(s1)
1644; ILP32D-NEXT:    fsw fs10, 88(s1)
1645; ILP32D-NEXT:    fsw fs9, 84(s1)
1646; ILP32D-NEXT:    fsw fs8, 80(s1)
1647; ILP32D-NEXT:    flw fa5, 0(sp) # 4-byte Folded Reload
1648; ILP32D-NEXT:    fsw fa5, 76(s1)
1649; ILP32D-NEXT:    flw fa5, 4(sp) # 4-byte Folded Reload
1650; ILP32D-NEXT:    fsw fa5, 72(s1)
1651; ILP32D-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1652; ILP32D-NEXT:    fsw fa5, 68(s1)
1653; ILP32D-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1654; ILP32D-NEXT:    fsw fa5, 64(s1)
1655; ILP32D-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1656; ILP32D-NEXT:    fsw fa5, 60(s1)
1657; ILP32D-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1658; ILP32D-NEXT:    fsw fa5, 56(s1)
1659; ILP32D-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1660; ILP32D-NEXT:    fsw fa5, 52(s1)
1661; ILP32D-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1662; ILP32D-NEXT:    fsw fa5, 48(s1)
1663; ILP32D-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1664; ILP32D-NEXT:    fsw fa5, 44(s1)
1665; ILP32D-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1666; ILP32D-NEXT:    fsw fa5, 40(s1)
1667; ILP32D-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1668; ILP32D-NEXT:    fsw fa5, 36(s1)
1669; ILP32D-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1670; ILP32D-NEXT:    fsw fa5, 32(s1)
1671; ILP32D-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1672; ILP32D-NEXT:    fsw fa5, 28(s1)
1673; ILP32D-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1674; ILP32D-NEXT:    fsw fa5, 24(s1)
1675; ILP32D-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1676; ILP32D-NEXT:    fsw fa5, 20(s1)
1677; ILP32D-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1678; ILP32D-NEXT:    fsw fa5, 16(s1)
1679; ILP32D-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1680; ILP32D-NEXT:    fsw fa5, %lo(var+12)(s0)
1681; ILP32D-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1682; ILP32D-NEXT:    fsw fa5, %lo(var+8)(s0)
1683; ILP32D-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1684; ILP32D-NEXT:    fsw fa5, %lo(var+4)(s0)
1685; ILP32D-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1686; ILP32D-NEXT:    fsw fa5, %lo(var)(s0)
1687; ILP32D-NEXT:    lw ra, 188(sp) # 4-byte Folded Reload
1688; ILP32D-NEXT:    lw s0, 184(sp) # 4-byte Folded Reload
1689; ILP32D-NEXT:    lw s1, 180(sp) # 4-byte Folded Reload
1690; ILP32D-NEXT:    fld fs0, 168(sp) # 8-byte Folded Reload
1691; ILP32D-NEXT:    fld fs1, 160(sp) # 8-byte Folded Reload
1692; ILP32D-NEXT:    fld fs2, 152(sp) # 8-byte Folded Reload
1693; ILP32D-NEXT:    fld fs3, 144(sp) # 8-byte Folded Reload
1694; ILP32D-NEXT:    fld fs4, 136(sp) # 8-byte Folded Reload
1695; ILP32D-NEXT:    fld fs5, 128(sp) # 8-byte Folded Reload
1696; ILP32D-NEXT:    fld fs6, 120(sp) # 8-byte Folded Reload
1697; ILP32D-NEXT:    fld fs7, 112(sp) # 8-byte Folded Reload
1698; ILP32D-NEXT:    fld fs8, 104(sp) # 8-byte Folded Reload
1699; ILP32D-NEXT:    fld fs9, 96(sp) # 8-byte Folded Reload
1700; ILP32D-NEXT:    fld fs10, 88(sp) # 8-byte Folded Reload
1701; ILP32D-NEXT:    fld fs11, 80(sp) # 8-byte Folded Reload
1702; ILP32D-NEXT:    addi sp, sp, 192
1703; ILP32D-NEXT:    ret
1704;
1705; LP64D-LABEL: caller:
1706; LP64D:       # %bb.0:
1707; LP64D-NEXT:    addi sp, sp, -208
1708; LP64D-NEXT:    sd ra, 200(sp) # 8-byte Folded Spill
1709; LP64D-NEXT:    sd s0, 192(sp) # 8-byte Folded Spill
1710; LP64D-NEXT:    sd s1, 184(sp) # 8-byte Folded Spill
1711; LP64D-NEXT:    fsd fs0, 176(sp) # 8-byte Folded Spill
1712; LP64D-NEXT:    fsd fs1, 168(sp) # 8-byte Folded Spill
1713; LP64D-NEXT:    fsd fs2, 160(sp) # 8-byte Folded Spill
1714; LP64D-NEXT:    fsd fs3, 152(sp) # 8-byte Folded Spill
1715; LP64D-NEXT:    fsd fs4, 144(sp) # 8-byte Folded Spill
1716; LP64D-NEXT:    fsd fs5, 136(sp) # 8-byte Folded Spill
1717; LP64D-NEXT:    fsd fs6, 128(sp) # 8-byte Folded Spill
1718; LP64D-NEXT:    fsd fs7, 120(sp) # 8-byte Folded Spill
1719; LP64D-NEXT:    fsd fs8, 112(sp) # 8-byte Folded Spill
1720; LP64D-NEXT:    fsd fs9, 104(sp) # 8-byte Folded Spill
1721; LP64D-NEXT:    fsd fs10, 96(sp) # 8-byte Folded Spill
1722; LP64D-NEXT:    fsd fs11, 88(sp) # 8-byte Folded Spill
1723; LP64D-NEXT:    lui s0, %hi(var)
1724; LP64D-NEXT:    flw fa5, %lo(var)(s0)
1725; LP64D-NEXT:    fsw fa5, 84(sp) # 4-byte Folded Spill
1726; LP64D-NEXT:    flw fa5, %lo(var+4)(s0)
1727; LP64D-NEXT:    fsw fa5, 80(sp) # 4-byte Folded Spill
1728; LP64D-NEXT:    flw fa5, %lo(var+8)(s0)
1729; LP64D-NEXT:    fsw fa5, 76(sp) # 4-byte Folded Spill
1730; LP64D-NEXT:    flw fa5, %lo(var+12)(s0)
1731; LP64D-NEXT:    fsw fa5, 72(sp) # 4-byte Folded Spill
1732; LP64D-NEXT:    addi s1, s0, %lo(var)
1733; LP64D-NEXT:    flw fa5, 16(s1)
1734; LP64D-NEXT:    fsw fa5, 68(sp) # 4-byte Folded Spill
1735; LP64D-NEXT:    flw fa5, 20(s1)
1736; LP64D-NEXT:    fsw fa5, 64(sp) # 4-byte Folded Spill
1737; LP64D-NEXT:    flw fa5, 24(s1)
1738; LP64D-NEXT:    fsw fa5, 60(sp) # 4-byte Folded Spill
1739; LP64D-NEXT:    flw fa5, 28(s1)
1740; LP64D-NEXT:    fsw fa5, 56(sp) # 4-byte Folded Spill
1741; LP64D-NEXT:    flw fa5, 32(s1)
1742; LP64D-NEXT:    fsw fa5, 52(sp) # 4-byte Folded Spill
1743; LP64D-NEXT:    flw fa5, 36(s1)
1744; LP64D-NEXT:    fsw fa5, 48(sp) # 4-byte Folded Spill
1745; LP64D-NEXT:    flw fa5, 40(s1)
1746; LP64D-NEXT:    fsw fa5, 44(sp) # 4-byte Folded Spill
1747; LP64D-NEXT:    flw fa5, 44(s1)
1748; LP64D-NEXT:    fsw fa5, 40(sp) # 4-byte Folded Spill
1749; LP64D-NEXT:    flw fa5, 48(s1)
1750; LP64D-NEXT:    fsw fa5, 36(sp) # 4-byte Folded Spill
1751; LP64D-NEXT:    flw fa5, 52(s1)
1752; LP64D-NEXT:    fsw fa5, 32(sp) # 4-byte Folded Spill
1753; LP64D-NEXT:    flw fa5, 56(s1)
1754; LP64D-NEXT:    fsw fa5, 28(sp) # 4-byte Folded Spill
1755; LP64D-NEXT:    flw fa5, 60(s1)
1756; LP64D-NEXT:    fsw fa5, 24(sp) # 4-byte Folded Spill
1757; LP64D-NEXT:    flw fa5, 64(s1)
1758; LP64D-NEXT:    fsw fa5, 20(sp) # 4-byte Folded Spill
1759; LP64D-NEXT:    flw fa5, 68(s1)
1760; LP64D-NEXT:    fsw fa5, 16(sp) # 4-byte Folded Spill
1761; LP64D-NEXT:    flw fa5, 72(s1)
1762; LP64D-NEXT:    fsw fa5, 12(sp) # 4-byte Folded Spill
1763; LP64D-NEXT:    flw fa5, 76(s1)
1764; LP64D-NEXT:    fsw fa5, 8(sp) # 4-byte Folded Spill
1765; LP64D-NEXT:    flw fs8, 80(s1)
1766; LP64D-NEXT:    flw fs9, 84(s1)
1767; LP64D-NEXT:    flw fs10, 88(s1)
1768; LP64D-NEXT:    flw fs11, 92(s1)
1769; LP64D-NEXT:    flw fs0, 96(s1)
1770; LP64D-NEXT:    flw fs1, 100(s1)
1771; LP64D-NEXT:    flw fs2, 104(s1)
1772; LP64D-NEXT:    flw fs3, 108(s1)
1773; LP64D-NEXT:    flw fs4, 112(s1)
1774; LP64D-NEXT:    flw fs5, 116(s1)
1775; LP64D-NEXT:    flw fs6, 120(s1)
1776; LP64D-NEXT:    flw fs7, 124(s1)
1777; LP64D-NEXT:    call callee
1778; LP64D-NEXT:    fsw fs7, 124(s1)
1779; LP64D-NEXT:    fsw fs6, 120(s1)
1780; LP64D-NEXT:    fsw fs5, 116(s1)
1781; LP64D-NEXT:    fsw fs4, 112(s1)
1782; LP64D-NEXT:    fsw fs3, 108(s1)
1783; LP64D-NEXT:    fsw fs2, 104(s1)
1784; LP64D-NEXT:    fsw fs1, 100(s1)
1785; LP64D-NEXT:    fsw fs0, 96(s1)
1786; LP64D-NEXT:    fsw fs11, 92(s1)
1787; LP64D-NEXT:    fsw fs10, 88(s1)
1788; LP64D-NEXT:    fsw fs9, 84(s1)
1789; LP64D-NEXT:    fsw fs8, 80(s1)
1790; LP64D-NEXT:    flw fa5, 8(sp) # 4-byte Folded Reload
1791; LP64D-NEXT:    fsw fa5, 76(s1)
1792; LP64D-NEXT:    flw fa5, 12(sp) # 4-byte Folded Reload
1793; LP64D-NEXT:    fsw fa5, 72(s1)
1794; LP64D-NEXT:    flw fa5, 16(sp) # 4-byte Folded Reload
1795; LP64D-NEXT:    fsw fa5, 68(s1)
1796; LP64D-NEXT:    flw fa5, 20(sp) # 4-byte Folded Reload
1797; LP64D-NEXT:    fsw fa5, 64(s1)
1798; LP64D-NEXT:    flw fa5, 24(sp) # 4-byte Folded Reload
1799; LP64D-NEXT:    fsw fa5, 60(s1)
1800; LP64D-NEXT:    flw fa5, 28(sp) # 4-byte Folded Reload
1801; LP64D-NEXT:    fsw fa5, 56(s1)
1802; LP64D-NEXT:    flw fa5, 32(sp) # 4-byte Folded Reload
1803; LP64D-NEXT:    fsw fa5, 52(s1)
1804; LP64D-NEXT:    flw fa5, 36(sp) # 4-byte Folded Reload
1805; LP64D-NEXT:    fsw fa5, 48(s1)
1806; LP64D-NEXT:    flw fa5, 40(sp) # 4-byte Folded Reload
1807; LP64D-NEXT:    fsw fa5, 44(s1)
1808; LP64D-NEXT:    flw fa5, 44(sp) # 4-byte Folded Reload
1809; LP64D-NEXT:    fsw fa5, 40(s1)
1810; LP64D-NEXT:    flw fa5, 48(sp) # 4-byte Folded Reload
1811; LP64D-NEXT:    fsw fa5, 36(s1)
1812; LP64D-NEXT:    flw fa5, 52(sp) # 4-byte Folded Reload
1813; LP64D-NEXT:    fsw fa5, 32(s1)
1814; LP64D-NEXT:    flw fa5, 56(sp) # 4-byte Folded Reload
1815; LP64D-NEXT:    fsw fa5, 28(s1)
1816; LP64D-NEXT:    flw fa5, 60(sp) # 4-byte Folded Reload
1817; LP64D-NEXT:    fsw fa5, 24(s1)
1818; LP64D-NEXT:    flw fa5, 64(sp) # 4-byte Folded Reload
1819; LP64D-NEXT:    fsw fa5, 20(s1)
1820; LP64D-NEXT:    flw fa5, 68(sp) # 4-byte Folded Reload
1821; LP64D-NEXT:    fsw fa5, 16(s1)
1822; LP64D-NEXT:    flw fa5, 72(sp) # 4-byte Folded Reload
1823; LP64D-NEXT:    fsw fa5, %lo(var+12)(s0)
1824; LP64D-NEXT:    flw fa5, 76(sp) # 4-byte Folded Reload
1825; LP64D-NEXT:    fsw fa5, %lo(var+8)(s0)
1826; LP64D-NEXT:    flw fa5, 80(sp) # 4-byte Folded Reload
1827; LP64D-NEXT:    fsw fa5, %lo(var+4)(s0)
1828; LP64D-NEXT:    flw fa5, 84(sp) # 4-byte Folded Reload
1829; LP64D-NEXT:    fsw fa5, %lo(var)(s0)
1830; LP64D-NEXT:    ld ra, 200(sp) # 8-byte Folded Reload
1831; LP64D-NEXT:    ld s0, 192(sp) # 8-byte Folded Reload
1832; LP64D-NEXT:    ld s1, 184(sp) # 8-byte Folded Reload
1833; LP64D-NEXT:    fld fs0, 176(sp) # 8-byte Folded Reload
1834; LP64D-NEXT:    fld fs1, 168(sp) # 8-byte Folded Reload
1835; LP64D-NEXT:    fld fs2, 160(sp) # 8-byte Folded Reload
1836; LP64D-NEXT:    fld fs3, 152(sp) # 8-byte Folded Reload
1837; LP64D-NEXT:    fld fs4, 144(sp) # 8-byte Folded Reload
1838; LP64D-NEXT:    fld fs5, 136(sp) # 8-byte Folded Reload
1839; LP64D-NEXT:    fld fs6, 128(sp) # 8-byte Folded Reload
1840; LP64D-NEXT:    fld fs7, 120(sp) # 8-byte Folded Reload
1841; LP64D-NEXT:    fld fs8, 112(sp) # 8-byte Folded Reload
1842; LP64D-NEXT:    fld fs9, 104(sp) # 8-byte Folded Reload
1843; LP64D-NEXT:    fld fs10, 96(sp) # 8-byte Folded Reload
1844; LP64D-NEXT:    fld fs11, 88(sp) # 8-byte Folded Reload
1845; LP64D-NEXT:    addi sp, sp, 208
1846; LP64D-NEXT:    ret
1847  %val = load [32 x float], ptr @var
1848  call void @callee()
1849  store volatile [32 x float] %val, ptr @var
1850  ret void
1851}
1852