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