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