1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2 ; RUN: llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs < %s \
3 ; RUN: -target-abi=ilp32d | FileCheck -check-prefix=RV32ID %s
4 ; RUN: llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < %s \
5 ; RUN: -target-abi=lp64d | FileCheck -check-prefix=RV64ID %s
7 ; A GPR<->FPR move (fmv.?.?) is unnecessary in all of the tests below, as in
8 ; the value can be loaded/stored directly from/to the stack.
10 define float @spill_i32_to_float(i32 %a) nounwind {
11 ; RV32ID-LABEL: spill_i32_to_float:
13 ; RV32ID-NEXT: addi sp, sp, -160
14 ; RV32ID-NEXT: sw ra, 156(sp) # 4-byte Folded Spill
15 ; RV32ID-NEXT: sw s0, 152(sp) # 4-byte Folded Spill
16 ; RV32ID-NEXT: sw s1, 148(sp) # 4-byte Folded Spill
17 ; RV32ID-NEXT: sw s2, 144(sp) # 4-byte Folded Spill
18 ; RV32ID-NEXT: sw s3, 140(sp) # 4-byte Folded Spill
19 ; RV32ID-NEXT: sw s4, 136(sp) # 4-byte Folded Spill
20 ; RV32ID-NEXT: sw s5, 132(sp) # 4-byte Folded Spill
21 ; RV32ID-NEXT: sw s6, 128(sp) # 4-byte Folded Spill
22 ; RV32ID-NEXT: sw s7, 124(sp) # 4-byte Folded Spill
23 ; RV32ID-NEXT: sw s8, 120(sp) # 4-byte Folded Spill
24 ; RV32ID-NEXT: sw s9, 116(sp) # 4-byte Folded Spill
25 ; RV32ID-NEXT: sw s10, 112(sp) # 4-byte Folded Spill
26 ; RV32ID-NEXT: sw s11, 108(sp) # 4-byte Folded Spill
27 ; RV32ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
28 ; RV32ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
29 ; RV32ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
30 ; RV32ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
31 ; RV32ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
32 ; RV32ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
33 ; RV32ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
34 ; RV32ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
35 ; RV32ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
36 ; RV32ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
37 ; RV32ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
38 ; RV32ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
39 ; RV32ID-NEXT: fmv.w.x fa5, a0
40 ; RV32ID-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
42 ; RV32ID-NEXT: #NO_APP
43 ; RV32ID-NEXT: flw fa0, 4(sp) # 4-byte Folded Reload
44 ; RV32ID-NEXT: lw ra, 156(sp) # 4-byte Folded Reload
45 ; RV32ID-NEXT: lw s0, 152(sp) # 4-byte Folded Reload
46 ; RV32ID-NEXT: lw s1, 148(sp) # 4-byte Folded Reload
47 ; RV32ID-NEXT: lw s2, 144(sp) # 4-byte Folded Reload
48 ; RV32ID-NEXT: lw s3, 140(sp) # 4-byte Folded Reload
49 ; RV32ID-NEXT: lw s4, 136(sp) # 4-byte Folded Reload
50 ; RV32ID-NEXT: lw s5, 132(sp) # 4-byte Folded Reload
51 ; RV32ID-NEXT: lw s6, 128(sp) # 4-byte Folded Reload
52 ; RV32ID-NEXT: lw s7, 124(sp) # 4-byte Folded Reload
53 ; RV32ID-NEXT: lw s8, 120(sp) # 4-byte Folded Reload
54 ; RV32ID-NEXT: lw s9, 116(sp) # 4-byte Folded Reload
55 ; RV32ID-NEXT: lw s10, 112(sp) # 4-byte Folded Reload
56 ; RV32ID-NEXT: lw s11, 108(sp) # 4-byte Folded Reload
57 ; RV32ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
58 ; RV32ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
59 ; RV32ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
60 ; RV32ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
61 ; RV32ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
62 ; RV32ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
63 ; RV32ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
64 ; RV32ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
65 ; RV32ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
66 ; RV32ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
67 ; RV32ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
68 ; RV32ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
69 ; RV32ID-NEXT: addi sp, sp, 160
72 ; RV64ID-LABEL: spill_i32_to_float:
74 ; RV64ID-NEXT: addi sp, sp, -208
75 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
76 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
77 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
78 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
79 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
80 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
81 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
82 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
83 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
84 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
85 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
86 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
87 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
88 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
89 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
90 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
91 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
92 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
93 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
94 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
95 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
96 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
97 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
98 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
99 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
100 ; RV64ID-NEXT: fmv.w.x fa5, a0
101 ; RV64ID-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
103 ; RV64ID-NEXT: #NO_APP
104 ; RV64ID-NEXT: flw fa0, 4(sp) # 4-byte Folded Reload
105 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
106 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
107 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
108 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
109 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
110 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
111 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
112 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
113 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
114 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
115 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
116 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
117 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
118 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
119 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
120 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
121 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
122 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
123 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
124 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
125 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
126 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
127 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
128 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
129 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
130 ; RV64ID-NEXT: addi sp, sp, 208
132 %1 = bitcast i32 %a to float
133 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
137 define i32 @spill_float_to_i32(float %a) nounwind {
138 ; RV32ID-LABEL: spill_float_to_i32:
140 ; RV32ID-NEXT: addi sp, sp, -160
141 ; RV32ID-NEXT: sw ra, 156(sp) # 4-byte Folded Spill
142 ; RV32ID-NEXT: sw s0, 152(sp) # 4-byte Folded Spill
143 ; RV32ID-NEXT: sw s1, 148(sp) # 4-byte Folded Spill
144 ; RV32ID-NEXT: sw s2, 144(sp) # 4-byte Folded Spill
145 ; RV32ID-NEXT: sw s3, 140(sp) # 4-byte Folded Spill
146 ; RV32ID-NEXT: sw s4, 136(sp) # 4-byte Folded Spill
147 ; RV32ID-NEXT: sw s5, 132(sp) # 4-byte Folded Spill
148 ; RV32ID-NEXT: sw s6, 128(sp) # 4-byte Folded Spill
149 ; RV32ID-NEXT: sw s7, 124(sp) # 4-byte Folded Spill
150 ; RV32ID-NEXT: sw s8, 120(sp) # 4-byte Folded Spill
151 ; RV32ID-NEXT: sw s9, 116(sp) # 4-byte Folded Spill
152 ; RV32ID-NEXT: sw s10, 112(sp) # 4-byte Folded Spill
153 ; RV32ID-NEXT: sw s11, 108(sp) # 4-byte Folded Spill
154 ; RV32ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
155 ; RV32ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
156 ; RV32ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
157 ; RV32ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
158 ; RV32ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
159 ; RV32ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
160 ; RV32ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
161 ; RV32ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
162 ; RV32ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
163 ; RV32ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
164 ; RV32ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
165 ; RV32ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
166 ; RV32ID-NEXT: fmv.x.w a0, fa0
167 ; RV32ID-NEXT: sw a0, 4(sp) # 4-byte Folded Spill
169 ; RV32ID-NEXT: #NO_APP
170 ; RV32ID-NEXT: lw a0, 4(sp) # 4-byte Folded Reload
171 ; RV32ID-NEXT: lw ra, 156(sp) # 4-byte Folded Reload
172 ; RV32ID-NEXT: lw s0, 152(sp) # 4-byte Folded Reload
173 ; RV32ID-NEXT: lw s1, 148(sp) # 4-byte Folded Reload
174 ; RV32ID-NEXT: lw s2, 144(sp) # 4-byte Folded Reload
175 ; RV32ID-NEXT: lw s3, 140(sp) # 4-byte Folded Reload
176 ; RV32ID-NEXT: lw s4, 136(sp) # 4-byte Folded Reload
177 ; RV32ID-NEXT: lw s5, 132(sp) # 4-byte Folded Reload
178 ; RV32ID-NEXT: lw s6, 128(sp) # 4-byte Folded Reload
179 ; RV32ID-NEXT: lw s7, 124(sp) # 4-byte Folded Reload
180 ; RV32ID-NEXT: lw s8, 120(sp) # 4-byte Folded Reload
181 ; RV32ID-NEXT: lw s9, 116(sp) # 4-byte Folded Reload
182 ; RV32ID-NEXT: lw s10, 112(sp) # 4-byte Folded Reload
183 ; RV32ID-NEXT: lw s11, 108(sp) # 4-byte Folded Reload
184 ; RV32ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
185 ; RV32ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
186 ; RV32ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
187 ; RV32ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
188 ; RV32ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
189 ; RV32ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
190 ; RV32ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
191 ; RV32ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
192 ; RV32ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
193 ; RV32ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
194 ; RV32ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
195 ; RV32ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
196 ; RV32ID-NEXT: addi sp, sp, 160
199 ; RV64ID-LABEL: spill_float_to_i32:
201 ; RV64ID-NEXT: addi sp, sp, -208
202 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
203 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
204 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
205 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
206 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
207 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
208 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
209 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
210 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
211 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
212 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
213 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
214 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
215 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
216 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
217 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
218 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
219 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
220 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
221 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
222 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
223 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
224 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
225 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
226 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
227 ; RV64ID-NEXT: fmv.x.w a0, fa0
228 ; RV64ID-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
230 ; RV64ID-NEXT: #NO_APP
231 ; RV64ID-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
232 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
233 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
234 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
235 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
236 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
237 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
238 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
239 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
240 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
241 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
242 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
243 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
244 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
245 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
246 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
247 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
248 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
249 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
250 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
251 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
252 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
253 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
254 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
255 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
256 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
257 ; RV64ID-NEXT: addi sp, sp, 208
259 %1 = bitcast float %a to i32
260 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
264 define double @spill_i64_to_double(i64 %a) nounwind {
265 ; RV32ID-LABEL: spill_i64_to_double:
267 ; RV32ID-NEXT: addi sp, sp, -176
268 ; RV32ID-NEXT: sw ra, 172(sp) # 4-byte Folded Spill
269 ; RV32ID-NEXT: sw s0, 168(sp) # 4-byte Folded Spill
270 ; RV32ID-NEXT: sw s1, 164(sp) # 4-byte Folded Spill
271 ; RV32ID-NEXT: sw s2, 160(sp) # 4-byte Folded Spill
272 ; RV32ID-NEXT: sw s3, 156(sp) # 4-byte Folded Spill
273 ; RV32ID-NEXT: sw s4, 152(sp) # 4-byte Folded Spill
274 ; RV32ID-NEXT: sw s5, 148(sp) # 4-byte Folded Spill
275 ; RV32ID-NEXT: sw s6, 144(sp) # 4-byte Folded Spill
276 ; RV32ID-NEXT: sw s7, 140(sp) # 4-byte Folded Spill
277 ; RV32ID-NEXT: sw s8, 136(sp) # 4-byte Folded Spill
278 ; RV32ID-NEXT: sw s9, 132(sp) # 4-byte Folded Spill
279 ; RV32ID-NEXT: sw s10, 128(sp) # 4-byte Folded Spill
280 ; RV32ID-NEXT: sw s11, 124(sp) # 4-byte Folded Spill
281 ; RV32ID-NEXT: fsd fs0, 112(sp) # 8-byte Folded Spill
282 ; RV32ID-NEXT: fsd fs1, 104(sp) # 8-byte Folded Spill
283 ; RV32ID-NEXT: fsd fs2, 96(sp) # 8-byte Folded Spill
284 ; RV32ID-NEXT: fsd fs3, 88(sp) # 8-byte Folded Spill
285 ; RV32ID-NEXT: fsd fs4, 80(sp) # 8-byte Folded Spill
286 ; RV32ID-NEXT: fsd fs5, 72(sp) # 8-byte Folded Spill
287 ; RV32ID-NEXT: fsd fs6, 64(sp) # 8-byte Folded Spill
288 ; RV32ID-NEXT: fsd fs7, 56(sp) # 8-byte Folded Spill
289 ; RV32ID-NEXT: fsd fs8, 48(sp) # 8-byte Folded Spill
290 ; RV32ID-NEXT: fsd fs9, 40(sp) # 8-byte Folded Spill
291 ; RV32ID-NEXT: fsd fs10, 32(sp) # 8-byte Folded Spill
292 ; RV32ID-NEXT: fsd fs11, 24(sp) # 8-byte Folded Spill
293 ; RV32ID-NEXT: sw a1, 20(sp)
294 ; RV32ID-NEXT: sw a0, 16(sp)
295 ; RV32ID-NEXT: fld fa5, 16(sp)
296 ; RV32ID-NEXT: fsd fa5, 8(sp) # 8-byte Folded Spill
298 ; RV32ID-NEXT: #NO_APP
299 ; RV32ID-NEXT: fld fa0, 8(sp) # 8-byte Folded Reload
300 ; RV32ID-NEXT: lw ra, 172(sp) # 4-byte Folded Reload
301 ; RV32ID-NEXT: lw s0, 168(sp) # 4-byte Folded Reload
302 ; RV32ID-NEXT: lw s1, 164(sp) # 4-byte Folded Reload
303 ; RV32ID-NEXT: lw s2, 160(sp) # 4-byte Folded Reload
304 ; RV32ID-NEXT: lw s3, 156(sp) # 4-byte Folded Reload
305 ; RV32ID-NEXT: lw s4, 152(sp) # 4-byte Folded Reload
306 ; RV32ID-NEXT: lw s5, 148(sp) # 4-byte Folded Reload
307 ; RV32ID-NEXT: lw s6, 144(sp) # 4-byte Folded Reload
308 ; RV32ID-NEXT: lw s7, 140(sp) # 4-byte Folded Reload
309 ; RV32ID-NEXT: lw s8, 136(sp) # 4-byte Folded Reload
310 ; RV32ID-NEXT: lw s9, 132(sp) # 4-byte Folded Reload
311 ; RV32ID-NEXT: lw s10, 128(sp) # 4-byte Folded Reload
312 ; RV32ID-NEXT: lw s11, 124(sp) # 4-byte Folded Reload
313 ; RV32ID-NEXT: fld fs0, 112(sp) # 8-byte Folded Reload
314 ; RV32ID-NEXT: fld fs1, 104(sp) # 8-byte Folded Reload
315 ; RV32ID-NEXT: fld fs2, 96(sp) # 8-byte Folded Reload
316 ; RV32ID-NEXT: fld fs3, 88(sp) # 8-byte Folded Reload
317 ; RV32ID-NEXT: fld fs4, 80(sp) # 8-byte Folded Reload
318 ; RV32ID-NEXT: fld fs5, 72(sp) # 8-byte Folded Reload
319 ; RV32ID-NEXT: fld fs6, 64(sp) # 8-byte Folded Reload
320 ; RV32ID-NEXT: fld fs7, 56(sp) # 8-byte Folded Reload
321 ; RV32ID-NEXT: fld fs8, 48(sp) # 8-byte Folded Reload
322 ; RV32ID-NEXT: fld fs9, 40(sp) # 8-byte Folded Reload
323 ; RV32ID-NEXT: fld fs10, 32(sp) # 8-byte Folded Reload
324 ; RV32ID-NEXT: fld fs11, 24(sp) # 8-byte Folded Reload
325 ; RV32ID-NEXT: addi sp, sp, 176
328 ; RV64ID-LABEL: spill_i64_to_double:
330 ; RV64ID-NEXT: addi sp, sp, -208
331 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
332 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
333 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
334 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
335 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
336 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
337 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
338 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
339 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
340 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
341 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
342 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
343 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
344 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
345 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
346 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
347 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
348 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
349 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
350 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
351 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
352 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
353 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
354 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
355 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
356 ; RV64ID-NEXT: fmv.d.x fa5, a0
357 ; RV64ID-NEXT: fsd fa5, 0(sp) # 8-byte Folded Spill
359 ; RV64ID-NEXT: #NO_APP
360 ; RV64ID-NEXT: fld fa0, 0(sp) # 8-byte Folded Reload
361 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
362 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
363 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
364 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
365 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
366 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
367 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
368 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
369 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
370 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
371 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
372 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
373 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
374 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
375 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
376 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
377 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
378 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
379 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
380 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
381 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
382 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
383 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
384 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
385 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
386 ; RV64ID-NEXT: addi sp, sp, 208
388 %1 = bitcast i64 %a to double
389 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
393 define i64 @spill_double_to_i64(double %a) nounwind {
394 ; RV32ID-LABEL: spill_double_to_i64:
396 ; RV32ID-NEXT: addi sp, sp, -176
397 ; RV32ID-NEXT: sw ra, 172(sp) # 4-byte Folded Spill
398 ; RV32ID-NEXT: sw s0, 168(sp) # 4-byte Folded Spill
399 ; RV32ID-NEXT: sw s1, 164(sp) # 4-byte Folded Spill
400 ; RV32ID-NEXT: sw s2, 160(sp) # 4-byte Folded Spill
401 ; RV32ID-NEXT: sw s3, 156(sp) # 4-byte Folded Spill
402 ; RV32ID-NEXT: sw s4, 152(sp) # 4-byte Folded Spill
403 ; RV32ID-NEXT: sw s5, 148(sp) # 4-byte Folded Spill
404 ; RV32ID-NEXT: sw s6, 144(sp) # 4-byte Folded Spill
405 ; RV32ID-NEXT: sw s7, 140(sp) # 4-byte Folded Spill
406 ; RV32ID-NEXT: sw s8, 136(sp) # 4-byte Folded Spill
407 ; RV32ID-NEXT: sw s9, 132(sp) # 4-byte Folded Spill
408 ; RV32ID-NEXT: sw s10, 128(sp) # 4-byte Folded Spill
409 ; RV32ID-NEXT: sw s11, 124(sp) # 4-byte Folded Spill
410 ; RV32ID-NEXT: fsd fs0, 112(sp) # 8-byte Folded Spill
411 ; RV32ID-NEXT: fsd fs1, 104(sp) # 8-byte Folded Spill
412 ; RV32ID-NEXT: fsd fs2, 96(sp) # 8-byte Folded Spill
413 ; RV32ID-NEXT: fsd fs3, 88(sp) # 8-byte Folded Spill
414 ; RV32ID-NEXT: fsd fs4, 80(sp) # 8-byte Folded Spill
415 ; RV32ID-NEXT: fsd fs5, 72(sp) # 8-byte Folded Spill
416 ; RV32ID-NEXT: fsd fs6, 64(sp) # 8-byte Folded Spill
417 ; RV32ID-NEXT: fsd fs7, 56(sp) # 8-byte Folded Spill
418 ; RV32ID-NEXT: fsd fs8, 48(sp) # 8-byte Folded Spill
419 ; RV32ID-NEXT: fsd fs9, 40(sp) # 8-byte Folded Spill
420 ; RV32ID-NEXT: fsd fs10, 32(sp) # 8-byte Folded Spill
421 ; RV32ID-NEXT: fsd fs11, 24(sp) # 8-byte Folded Spill
422 ; RV32ID-NEXT: fsd fa0, 16(sp)
423 ; RV32ID-NEXT: lw a0, 16(sp)
424 ; RV32ID-NEXT: sw a0, 12(sp) # 4-byte Folded Spill
425 ; RV32ID-NEXT: lw a0, 20(sp)
426 ; RV32ID-NEXT: sw a0, 8(sp) # 4-byte Folded Spill
428 ; RV32ID-NEXT: #NO_APP
429 ; RV32ID-NEXT: lw a0, 12(sp) # 4-byte Folded Reload
430 ; RV32ID-NEXT: lw a1, 8(sp) # 4-byte Folded Reload
431 ; RV32ID-NEXT: lw ra, 172(sp) # 4-byte Folded Reload
432 ; RV32ID-NEXT: lw s0, 168(sp) # 4-byte Folded Reload
433 ; RV32ID-NEXT: lw s1, 164(sp) # 4-byte Folded Reload
434 ; RV32ID-NEXT: lw s2, 160(sp) # 4-byte Folded Reload
435 ; RV32ID-NEXT: lw s3, 156(sp) # 4-byte Folded Reload
436 ; RV32ID-NEXT: lw s4, 152(sp) # 4-byte Folded Reload
437 ; RV32ID-NEXT: lw s5, 148(sp) # 4-byte Folded Reload
438 ; RV32ID-NEXT: lw s6, 144(sp) # 4-byte Folded Reload
439 ; RV32ID-NEXT: lw s7, 140(sp) # 4-byte Folded Reload
440 ; RV32ID-NEXT: lw s8, 136(sp) # 4-byte Folded Reload
441 ; RV32ID-NEXT: lw s9, 132(sp) # 4-byte Folded Reload
442 ; RV32ID-NEXT: lw s10, 128(sp) # 4-byte Folded Reload
443 ; RV32ID-NEXT: lw s11, 124(sp) # 4-byte Folded Reload
444 ; RV32ID-NEXT: fld fs0, 112(sp) # 8-byte Folded Reload
445 ; RV32ID-NEXT: fld fs1, 104(sp) # 8-byte Folded Reload
446 ; RV32ID-NEXT: fld fs2, 96(sp) # 8-byte Folded Reload
447 ; RV32ID-NEXT: fld fs3, 88(sp) # 8-byte Folded Reload
448 ; RV32ID-NEXT: fld fs4, 80(sp) # 8-byte Folded Reload
449 ; RV32ID-NEXT: fld fs5, 72(sp) # 8-byte Folded Reload
450 ; RV32ID-NEXT: fld fs6, 64(sp) # 8-byte Folded Reload
451 ; RV32ID-NEXT: fld fs7, 56(sp) # 8-byte Folded Reload
452 ; RV32ID-NEXT: fld fs8, 48(sp) # 8-byte Folded Reload
453 ; RV32ID-NEXT: fld fs9, 40(sp) # 8-byte Folded Reload
454 ; RV32ID-NEXT: fld fs10, 32(sp) # 8-byte Folded Reload
455 ; RV32ID-NEXT: fld fs11, 24(sp) # 8-byte Folded Reload
456 ; RV32ID-NEXT: addi sp, sp, 176
459 ; RV64ID-LABEL: spill_double_to_i64:
461 ; RV64ID-NEXT: addi sp, sp, -208
462 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
463 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
464 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
465 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
466 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
467 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
468 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
469 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
470 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
471 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
472 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
473 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
474 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
475 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
476 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
477 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
478 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
479 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
480 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
481 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
482 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
483 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
484 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
485 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
486 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
487 ; RV64ID-NEXT: fmv.x.d a0, fa0
488 ; RV64ID-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
490 ; RV64ID-NEXT: #NO_APP
491 ; RV64ID-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
492 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
493 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
494 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
495 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
496 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
497 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
498 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
499 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
500 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
501 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
502 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
503 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
504 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
505 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
506 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
507 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
508 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
509 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
510 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
511 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
512 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
513 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
514 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
515 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
516 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
517 ; RV64ID-NEXT: addi sp, sp, 208
519 %1 = bitcast double %a to i64
520 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
524 define float @fill_i32_to_float(i32 %a) nounwind {
525 ; RV32ID-LABEL: fill_i32_to_float:
527 ; RV32ID-NEXT: addi sp, sp, -160
528 ; RV32ID-NEXT: sw ra, 156(sp) # 4-byte Folded Spill
529 ; RV32ID-NEXT: sw s0, 152(sp) # 4-byte Folded Spill
530 ; RV32ID-NEXT: sw s1, 148(sp) # 4-byte Folded Spill
531 ; RV32ID-NEXT: sw s2, 144(sp) # 4-byte Folded Spill
532 ; RV32ID-NEXT: sw s3, 140(sp) # 4-byte Folded Spill
533 ; RV32ID-NEXT: sw s4, 136(sp) # 4-byte Folded Spill
534 ; RV32ID-NEXT: sw s5, 132(sp) # 4-byte Folded Spill
535 ; RV32ID-NEXT: sw s6, 128(sp) # 4-byte Folded Spill
536 ; RV32ID-NEXT: sw s7, 124(sp) # 4-byte Folded Spill
537 ; RV32ID-NEXT: sw s8, 120(sp) # 4-byte Folded Spill
538 ; RV32ID-NEXT: sw s9, 116(sp) # 4-byte Folded Spill
539 ; RV32ID-NEXT: sw s10, 112(sp) # 4-byte Folded Spill
540 ; RV32ID-NEXT: sw s11, 108(sp) # 4-byte Folded Spill
541 ; RV32ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
542 ; RV32ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
543 ; RV32ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
544 ; RV32ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
545 ; RV32ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
546 ; RV32ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
547 ; RV32ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
548 ; RV32ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
549 ; RV32ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
550 ; RV32ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
551 ; RV32ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
552 ; RV32ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
553 ; RV32ID-NEXT: sw a0, 4(sp) # 4-byte Folded Spill
555 ; RV32ID-NEXT: #NO_APP
556 ; RV32ID-NEXT: lw a0, 4(sp) # 4-byte Folded Reload
557 ; RV32ID-NEXT: fmv.w.x fa0, a0
558 ; RV32ID-NEXT: lw ra, 156(sp) # 4-byte Folded Reload
559 ; RV32ID-NEXT: lw s0, 152(sp) # 4-byte Folded Reload
560 ; RV32ID-NEXT: lw s1, 148(sp) # 4-byte Folded Reload
561 ; RV32ID-NEXT: lw s2, 144(sp) # 4-byte Folded Reload
562 ; RV32ID-NEXT: lw s3, 140(sp) # 4-byte Folded Reload
563 ; RV32ID-NEXT: lw s4, 136(sp) # 4-byte Folded Reload
564 ; RV32ID-NEXT: lw s5, 132(sp) # 4-byte Folded Reload
565 ; RV32ID-NEXT: lw s6, 128(sp) # 4-byte Folded Reload
566 ; RV32ID-NEXT: lw s7, 124(sp) # 4-byte Folded Reload
567 ; RV32ID-NEXT: lw s8, 120(sp) # 4-byte Folded Reload
568 ; RV32ID-NEXT: lw s9, 116(sp) # 4-byte Folded Reload
569 ; RV32ID-NEXT: lw s10, 112(sp) # 4-byte Folded Reload
570 ; RV32ID-NEXT: lw s11, 108(sp) # 4-byte Folded Reload
571 ; RV32ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
572 ; RV32ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
573 ; RV32ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
574 ; RV32ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
575 ; RV32ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
576 ; RV32ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
577 ; RV32ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
578 ; RV32ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
579 ; RV32ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
580 ; RV32ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
581 ; RV32ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
582 ; RV32ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
583 ; RV32ID-NEXT: addi sp, sp, 160
586 ; RV64ID-LABEL: fill_i32_to_float:
588 ; RV64ID-NEXT: addi sp, sp, -208
589 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
590 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
591 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
592 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
593 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
594 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
595 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
596 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
597 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
598 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
599 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
600 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
601 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
602 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
603 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
604 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
605 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
606 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
607 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
608 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
609 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
610 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
611 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
612 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
613 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
614 ; RV64ID-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
616 ; RV64ID-NEXT: #NO_APP
617 ; RV64ID-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
618 ; RV64ID-NEXT: fmv.w.x fa0, a0
619 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
620 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
621 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
622 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
623 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
624 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
625 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
626 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
627 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
628 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
629 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
630 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
631 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
632 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
633 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
634 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
635 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
636 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
637 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
638 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
639 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
640 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
641 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
642 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
643 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
644 ; RV64ID-NEXT: addi sp, sp, 208
646 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
647 %1 = bitcast i32 %a to float
651 define i32 @fill_float_to_i32(float %a) nounwind {
652 ; RV32ID-LABEL: fill_float_to_i32:
654 ; RV32ID-NEXT: addi sp, sp, -160
655 ; RV32ID-NEXT: sw ra, 156(sp) # 4-byte Folded Spill
656 ; RV32ID-NEXT: sw s0, 152(sp) # 4-byte Folded Spill
657 ; RV32ID-NEXT: sw s1, 148(sp) # 4-byte Folded Spill
658 ; RV32ID-NEXT: sw s2, 144(sp) # 4-byte Folded Spill
659 ; RV32ID-NEXT: sw s3, 140(sp) # 4-byte Folded Spill
660 ; RV32ID-NEXT: sw s4, 136(sp) # 4-byte Folded Spill
661 ; RV32ID-NEXT: sw s5, 132(sp) # 4-byte Folded Spill
662 ; RV32ID-NEXT: sw s6, 128(sp) # 4-byte Folded Spill
663 ; RV32ID-NEXT: sw s7, 124(sp) # 4-byte Folded Spill
664 ; RV32ID-NEXT: sw s8, 120(sp) # 4-byte Folded Spill
665 ; RV32ID-NEXT: sw s9, 116(sp) # 4-byte Folded Spill
666 ; RV32ID-NEXT: sw s10, 112(sp) # 4-byte Folded Spill
667 ; RV32ID-NEXT: sw s11, 108(sp) # 4-byte Folded Spill
668 ; RV32ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
669 ; RV32ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
670 ; RV32ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
671 ; RV32ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
672 ; RV32ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
673 ; RV32ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
674 ; RV32ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
675 ; RV32ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
676 ; RV32ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
677 ; RV32ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
678 ; RV32ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
679 ; RV32ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
680 ; RV32ID-NEXT: fsw fa0, 4(sp) # 4-byte Folded Spill
682 ; RV32ID-NEXT: #NO_APP
683 ; RV32ID-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
684 ; RV32ID-NEXT: fmv.x.w a0, fa5
685 ; RV32ID-NEXT: lw ra, 156(sp) # 4-byte Folded Reload
686 ; RV32ID-NEXT: lw s0, 152(sp) # 4-byte Folded Reload
687 ; RV32ID-NEXT: lw s1, 148(sp) # 4-byte Folded Reload
688 ; RV32ID-NEXT: lw s2, 144(sp) # 4-byte Folded Reload
689 ; RV32ID-NEXT: lw s3, 140(sp) # 4-byte Folded Reload
690 ; RV32ID-NEXT: lw s4, 136(sp) # 4-byte Folded Reload
691 ; RV32ID-NEXT: lw s5, 132(sp) # 4-byte Folded Reload
692 ; RV32ID-NEXT: lw s6, 128(sp) # 4-byte Folded Reload
693 ; RV32ID-NEXT: lw s7, 124(sp) # 4-byte Folded Reload
694 ; RV32ID-NEXT: lw s8, 120(sp) # 4-byte Folded Reload
695 ; RV32ID-NEXT: lw s9, 116(sp) # 4-byte Folded Reload
696 ; RV32ID-NEXT: lw s10, 112(sp) # 4-byte Folded Reload
697 ; RV32ID-NEXT: lw s11, 108(sp) # 4-byte Folded Reload
698 ; RV32ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
699 ; RV32ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
700 ; RV32ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
701 ; RV32ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
702 ; RV32ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
703 ; RV32ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
704 ; RV32ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
705 ; RV32ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
706 ; RV32ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
707 ; RV32ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
708 ; RV32ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
709 ; RV32ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
710 ; RV32ID-NEXT: addi sp, sp, 160
713 ; RV64ID-LABEL: fill_float_to_i32:
715 ; RV64ID-NEXT: addi sp, sp, -208
716 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
717 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
718 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
719 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
720 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
721 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
722 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
723 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
724 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
725 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
726 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
727 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
728 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
729 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
730 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
731 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
732 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
733 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
734 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
735 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
736 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
737 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
738 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
739 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
740 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
741 ; RV64ID-NEXT: fsw fa0, 4(sp) # 4-byte Folded Spill
743 ; RV64ID-NEXT: #NO_APP
744 ; RV64ID-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
745 ; RV64ID-NEXT: fmv.x.w a0, fa5
746 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
747 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
748 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
749 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
750 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
751 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
752 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
753 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
754 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
755 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
756 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
757 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
758 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
759 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
760 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
761 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
762 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
763 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
764 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
765 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
766 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
767 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
768 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
769 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
770 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
771 ; RV64ID-NEXT: addi sp, sp, 208
773 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
774 %1 = bitcast float %a to i32
778 define double @fill_i64_to_double(i64 %a) nounwind {
779 ; RV32ID-LABEL: fill_i64_to_double:
781 ; RV32ID-NEXT: addi sp, sp, -176
782 ; RV32ID-NEXT: sw ra, 172(sp) # 4-byte Folded Spill
783 ; RV32ID-NEXT: sw s0, 168(sp) # 4-byte Folded Spill
784 ; RV32ID-NEXT: sw s1, 164(sp) # 4-byte Folded Spill
785 ; RV32ID-NEXT: sw s2, 160(sp) # 4-byte Folded Spill
786 ; RV32ID-NEXT: sw s3, 156(sp) # 4-byte Folded Spill
787 ; RV32ID-NEXT: sw s4, 152(sp) # 4-byte Folded Spill
788 ; RV32ID-NEXT: sw s5, 148(sp) # 4-byte Folded Spill
789 ; RV32ID-NEXT: sw s6, 144(sp) # 4-byte Folded Spill
790 ; RV32ID-NEXT: sw s7, 140(sp) # 4-byte Folded Spill
791 ; RV32ID-NEXT: sw s8, 136(sp) # 4-byte Folded Spill
792 ; RV32ID-NEXT: sw s9, 132(sp) # 4-byte Folded Spill
793 ; RV32ID-NEXT: sw s10, 128(sp) # 4-byte Folded Spill
794 ; RV32ID-NEXT: sw s11, 124(sp) # 4-byte Folded Spill
795 ; RV32ID-NEXT: fsd fs0, 112(sp) # 8-byte Folded Spill
796 ; RV32ID-NEXT: fsd fs1, 104(sp) # 8-byte Folded Spill
797 ; RV32ID-NEXT: fsd fs2, 96(sp) # 8-byte Folded Spill
798 ; RV32ID-NEXT: fsd fs3, 88(sp) # 8-byte Folded Spill
799 ; RV32ID-NEXT: fsd fs4, 80(sp) # 8-byte Folded Spill
800 ; RV32ID-NEXT: fsd fs5, 72(sp) # 8-byte Folded Spill
801 ; RV32ID-NEXT: fsd fs6, 64(sp) # 8-byte Folded Spill
802 ; RV32ID-NEXT: fsd fs7, 56(sp) # 8-byte Folded Spill
803 ; RV32ID-NEXT: fsd fs8, 48(sp) # 8-byte Folded Spill
804 ; RV32ID-NEXT: fsd fs9, 40(sp) # 8-byte Folded Spill
805 ; RV32ID-NEXT: fsd fs10, 32(sp) # 8-byte Folded Spill
806 ; RV32ID-NEXT: fsd fs11, 24(sp) # 8-byte Folded Spill
807 ; RV32ID-NEXT: sw a1, 20(sp)
808 ; RV32ID-NEXT: sw a0, 16(sp)
809 ; RV32ID-NEXT: fld fa5, 16(sp)
810 ; RV32ID-NEXT: fsd fa5, 8(sp) # 8-byte Folded Spill
812 ; RV32ID-NEXT: #NO_APP
813 ; RV32ID-NEXT: fld fa0, 8(sp) # 8-byte Folded Reload
814 ; RV32ID-NEXT: lw ra, 172(sp) # 4-byte Folded Reload
815 ; RV32ID-NEXT: lw s0, 168(sp) # 4-byte Folded Reload
816 ; RV32ID-NEXT: lw s1, 164(sp) # 4-byte Folded Reload
817 ; RV32ID-NEXT: lw s2, 160(sp) # 4-byte Folded Reload
818 ; RV32ID-NEXT: lw s3, 156(sp) # 4-byte Folded Reload
819 ; RV32ID-NEXT: lw s4, 152(sp) # 4-byte Folded Reload
820 ; RV32ID-NEXT: lw s5, 148(sp) # 4-byte Folded Reload
821 ; RV32ID-NEXT: lw s6, 144(sp) # 4-byte Folded Reload
822 ; RV32ID-NEXT: lw s7, 140(sp) # 4-byte Folded Reload
823 ; RV32ID-NEXT: lw s8, 136(sp) # 4-byte Folded Reload
824 ; RV32ID-NEXT: lw s9, 132(sp) # 4-byte Folded Reload
825 ; RV32ID-NEXT: lw s10, 128(sp) # 4-byte Folded Reload
826 ; RV32ID-NEXT: lw s11, 124(sp) # 4-byte Folded Reload
827 ; RV32ID-NEXT: fld fs0, 112(sp) # 8-byte Folded Reload
828 ; RV32ID-NEXT: fld fs1, 104(sp) # 8-byte Folded Reload
829 ; RV32ID-NEXT: fld fs2, 96(sp) # 8-byte Folded Reload
830 ; RV32ID-NEXT: fld fs3, 88(sp) # 8-byte Folded Reload
831 ; RV32ID-NEXT: fld fs4, 80(sp) # 8-byte Folded Reload
832 ; RV32ID-NEXT: fld fs5, 72(sp) # 8-byte Folded Reload
833 ; RV32ID-NEXT: fld fs6, 64(sp) # 8-byte Folded Reload
834 ; RV32ID-NEXT: fld fs7, 56(sp) # 8-byte Folded Reload
835 ; RV32ID-NEXT: fld fs8, 48(sp) # 8-byte Folded Reload
836 ; RV32ID-NEXT: fld fs9, 40(sp) # 8-byte Folded Reload
837 ; RV32ID-NEXT: fld fs10, 32(sp) # 8-byte Folded Reload
838 ; RV32ID-NEXT: fld fs11, 24(sp) # 8-byte Folded Reload
839 ; RV32ID-NEXT: addi sp, sp, 176
842 ; RV64ID-LABEL: fill_i64_to_double:
844 ; RV64ID-NEXT: addi sp, sp, -208
845 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
846 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
847 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
848 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
849 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
850 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
851 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
852 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
853 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
854 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
855 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
856 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
857 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
858 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
859 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
860 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
861 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
862 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
863 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
864 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
865 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
866 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
867 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
868 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
869 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
870 ; RV64ID-NEXT: sd a0, 0(sp) # 8-byte Folded Spill
872 ; RV64ID-NEXT: #NO_APP
873 ; RV64ID-NEXT: ld a0, 0(sp) # 8-byte Folded Reload
874 ; RV64ID-NEXT: fmv.d.x fa0, a0
875 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
876 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
877 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
878 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
879 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
880 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
881 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
882 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
883 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
884 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
885 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
886 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
887 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
888 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
889 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
890 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
891 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
892 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
893 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
894 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
895 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
896 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
897 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
898 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
899 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
900 ; RV64ID-NEXT: addi sp, sp, 208
902 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
903 %1 = bitcast i64 %a to double
907 define i64 @fill_double_to_i64(double %a) nounwind {
908 ; RV32ID-LABEL: fill_double_to_i64:
910 ; RV32ID-NEXT: addi sp, sp, -176
911 ; RV32ID-NEXT: sw ra, 172(sp) # 4-byte Folded Spill
912 ; RV32ID-NEXT: sw s0, 168(sp) # 4-byte Folded Spill
913 ; RV32ID-NEXT: sw s1, 164(sp) # 4-byte Folded Spill
914 ; RV32ID-NEXT: sw s2, 160(sp) # 4-byte Folded Spill
915 ; RV32ID-NEXT: sw s3, 156(sp) # 4-byte Folded Spill
916 ; RV32ID-NEXT: sw s4, 152(sp) # 4-byte Folded Spill
917 ; RV32ID-NEXT: sw s5, 148(sp) # 4-byte Folded Spill
918 ; RV32ID-NEXT: sw s6, 144(sp) # 4-byte Folded Spill
919 ; RV32ID-NEXT: sw s7, 140(sp) # 4-byte Folded Spill
920 ; RV32ID-NEXT: sw s8, 136(sp) # 4-byte Folded Spill
921 ; RV32ID-NEXT: sw s9, 132(sp) # 4-byte Folded Spill
922 ; RV32ID-NEXT: sw s10, 128(sp) # 4-byte Folded Spill
923 ; RV32ID-NEXT: sw s11, 124(sp) # 4-byte Folded Spill
924 ; RV32ID-NEXT: fsd fs0, 112(sp) # 8-byte Folded Spill
925 ; RV32ID-NEXT: fsd fs1, 104(sp) # 8-byte Folded Spill
926 ; RV32ID-NEXT: fsd fs2, 96(sp) # 8-byte Folded Spill
927 ; RV32ID-NEXT: fsd fs3, 88(sp) # 8-byte Folded Spill
928 ; RV32ID-NEXT: fsd fs4, 80(sp) # 8-byte Folded Spill
929 ; RV32ID-NEXT: fsd fs5, 72(sp) # 8-byte Folded Spill
930 ; RV32ID-NEXT: fsd fs6, 64(sp) # 8-byte Folded Spill
931 ; RV32ID-NEXT: fsd fs7, 56(sp) # 8-byte Folded Spill
932 ; RV32ID-NEXT: fsd fs8, 48(sp) # 8-byte Folded Spill
933 ; RV32ID-NEXT: fsd fs9, 40(sp) # 8-byte Folded Spill
934 ; RV32ID-NEXT: fsd fs10, 32(sp) # 8-byte Folded Spill
935 ; RV32ID-NEXT: fsd fs11, 24(sp) # 8-byte Folded Spill
936 ; RV32ID-NEXT: fsd fa0, 8(sp) # 8-byte Folded Spill
938 ; RV32ID-NEXT: #NO_APP
939 ; RV32ID-NEXT: fld fa5, 8(sp) # 8-byte Folded Reload
940 ; RV32ID-NEXT: fsd fa5, 16(sp)
941 ; RV32ID-NEXT: lw a0, 16(sp)
942 ; RV32ID-NEXT: lw a1, 20(sp)
943 ; RV32ID-NEXT: lw ra, 172(sp) # 4-byte Folded Reload
944 ; RV32ID-NEXT: lw s0, 168(sp) # 4-byte Folded Reload
945 ; RV32ID-NEXT: lw s1, 164(sp) # 4-byte Folded Reload
946 ; RV32ID-NEXT: lw s2, 160(sp) # 4-byte Folded Reload
947 ; RV32ID-NEXT: lw s3, 156(sp) # 4-byte Folded Reload
948 ; RV32ID-NEXT: lw s4, 152(sp) # 4-byte Folded Reload
949 ; RV32ID-NEXT: lw s5, 148(sp) # 4-byte Folded Reload
950 ; RV32ID-NEXT: lw s6, 144(sp) # 4-byte Folded Reload
951 ; RV32ID-NEXT: lw s7, 140(sp) # 4-byte Folded Reload
952 ; RV32ID-NEXT: lw s8, 136(sp) # 4-byte Folded Reload
953 ; RV32ID-NEXT: lw s9, 132(sp) # 4-byte Folded Reload
954 ; RV32ID-NEXT: lw s10, 128(sp) # 4-byte Folded Reload
955 ; RV32ID-NEXT: lw s11, 124(sp) # 4-byte Folded Reload
956 ; RV32ID-NEXT: fld fs0, 112(sp) # 8-byte Folded Reload
957 ; RV32ID-NEXT: fld fs1, 104(sp) # 8-byte Folded Reload
958 ; RV32ID-NEXT: fld fs2, 96(sp) # 8-byte Folded Reload
959 ; RV32ID-NEXT: fld fs3, 88(sp) # 8-byte Folded Reload
960 ; RV32ID-NEXT: fld fs4, 80(sp) # 8-byte Folded Reload
961 ; RV32ID-NEXT: fld fs5, 72(sp) # 8-byte Folded Reload
962 ; RV32ID-NEXT: fld fs6, 64(sp) # 8-byte Folded Reload
963 ; RV32ID-NEXT: fld fs7, 56(sp) # 8-byte Folded Reload
964 ; RV32ID-NEXT: fld fs8, 48(sp) # 8-byte Folded Reload
965 ; RV32ID-NEXT: fld fs9, 40(sp) # 8-byte Folded Reload
966 ; RV32ID-NEXT: fld fs10, 32(sp) # 8-byte Folded Reload
967 ; RV32ID-NEXT: fld fs11, 24(sp) # 8-byte Folded Reload
968 ; RV32ID-NEXT: addi sp, sp, 176
971 ; RV64ID-LABEL: fill_double_to_i64:
973 ; RV64ID-NEXT: addi sp, sp, -208
974 ; RV64ID-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
975 ; RV64ID-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
976 ; RV64ID-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
977 ; RV64ID-NEXT: sd s2, 176(sp) # 8-byte Folded Spill
978 ; RV64ID-NEXT: sd s3, 168(sp) # 8-byte Folded Spill
979 ; RV64ID-NEXT: sd s4, 160(sp) # 8-byte Folded Spill
980 ; RV64ID-NEXT: sd s5, 152(sp) # 8-byte Folded Spill
981 ; RV64ID-NEXT: sd s6, 144(sp) # 8-byte Folded Spill
982 ; RV64ID-NEXT: sd s7, 136(sp) # 8-byte Folded Spill
983 ; RV64ID-NEXT: sd s8, 128(sp) # 8-byte Folded Spill
984 ; RV64ID-NEXT: sd s9, 120(sp) # 8-byte Folded Spill
985 ; RV64ID-NEXT: sd s10, 112(sp) # 8-byte Folded Spill
986 ; RV64ID-NEXT: sd s11, 104(sp) # 8-byte Folded Spill
987 ; RV64ID-NEXT: fsd fs0, 96(sp) # 8-byte Folded Spill
988 ; RV64ID-NEXT: fsd fs1, 88(sp) # 8-byte Folded Spill
989 ; RV64ID-NEXT: fsd fs2, 80(sp) # 8-byte Folded Spill
990 ; RV64ID-NEXT: fsd fs3, 72(sp) # 8-byte Folded Spill
991 ; RV64ID-NEXT: fsd fs4, 64(sp) # 8-byte Folded Spill
992 ; RV64ID-NEXT: fsd fs5, 56(sp) # 8-byte Folded Spill
993 ; RV64ID-NEXT: fsd fs6, 48(sp) # 8-byte Folded Spill
994 ; RV64ID-NEXT: fsd fs7, 40(sp) # 8-byte Folded Spill
995 ; RV64ID-NEXT: fsd fs8, 32(sp) # 8-byte Folded Spill
996 ; RV64ID-NEXT: fsd fs9, 24(sp) # 8-byte Folded Spill
997 ; RV64ID-NEXT: fsd fs10, 16(sp) # 8-byte Folded Spill
998 ; RV64ID-NEXT: fsd fs11, 8(sp) # 8-byte Folded Spill
999 ; RV64ID-NEXT: fsd fa0, 0(sp) # 8-byte Folded Spill
1001 ; RV64ID-NEXT: #NO_APP
1002 ; RV64ID-NEXT: fld fa5, 0(sp) # 8-byte Folded Reload
1003 ; RV64ID-NEXT: fmv.x.d a0, fa5
1004 ; RV64ID-NEXT: ld ra, 200(sp) # 8-byte Folded Reload
1005 ; RV64ID-NEXT: ld s0, 192(sp) # 8-byte Folded Reload
1006 ; RV64ID-NEXT: ld s1, 184(sp) # 8-byte Folded Reload
1007 ; RV64ID-NEXT: ld s2, 176(sp) # 8-byte Folded Reload
1008 ; RV64ID-NEXT: ld s3, 168(sp) # 8-byte Folded Reload
1009 ; RV64ID-NEXT: ld s4, 160(sp) # 8-byte Folded Reload
1010 ; RV64ID-NEXT: ld s5, 152(sp) # 8-byte Folded Reload
1011 ; RV64ID-NEXT: ld s6, 144(sp) # 8-byte Folded Reload
1012 ; RV64ID-NEXT: ld s7, 136(sp) # 8-byte Folded Reload
1013 ; RV64ID-NEXT: ld s8, 128(sp) # 8-byte Folded Reload
1014 ; RV64ID-NEXT: ld s9, 120(sp) # 8-byte Folded Reload
1015 ; RV64ID-NEXT: ld s10, 112(sp) # 8-byte Folded Reload
1016 ; RV64ID-NEXT: ld s11, 104(sp) # 8-byte Folded Reload
1017 ; RV64ID-NEXT: fld fs0, 96(sp) # 8-byte Folded Reload
1018 ; RV64ID-NEXT: fld fs1, 88(sp) # 8-byte Folded Reload
1019 ; RV64ID-NEXT: fld fs2, 80(sp) # 8-byte Folded Reload
1020 ; RV64ID-NEXT: fld fs3, 72(sp) # 8-byte Folded Reload
1021 ; RV64ID-NEXT: fld fs4, 64(sp) # 8-byte Folded Reload
1022 ; RV64ID-NEXT: fld fs5, 56(sp) # 8-byte Folded Reload
1023 ; RV64ID-NEXT: fld fs6, 48(sp) # 8-byte Folded Reload
1024 ; RV64ID-NEXT: fld fs7, 40(sp) # 8-byte Folded Reload
1025 ; RV64ID-NEXT: fld fs8, 32(sp) # 8-byte Folded Reload
1026 ; RV64ID-NEXT: fld fs9, 24(sp) # 8-byte Folded Reload
1027 ; RV64ID-NEXT: fld fs10, 16(sp) # 8-byte Folded Reload
1028 ; RV64ID-NEXT: fld fs11, 8(sp) # 8-byte Folded Reload
1029 ; RV64ID-NEXT: addi sp, sp, 208
1031 call void asm sideeffect "", "~{x0},~{x1},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31},~{f0_d},~{f1_d},~{f2_d},~{f3_d},~{f4_d},~{f5_d},~{f6_d},~{f7_d},~{f8_d},~{f9_d},~{f10_d},~{f11_d},~{f12_d},~{f13_d},~{f14_d},~{f15_d},~{f16_d},~{f17_d},~{f18_d},~{f19_d},~{f20_d},~{f21_d},~{f22_d},~{f23_d},~{f24_d},~{f25_d},~{f26_d},~{f27_d},~{f28_d},~{f29_d},~{f30_d},~{f31_d}"() nounwind
1032 %1 = bitcast double %a to i64