xref: /llvm-project/llvm/test/CodeGen/RISCV/fastcc-without-f-reg.ll (revision 9122c5235ec85ce0c0ad337e862b006e7b349d84)
1eb89bf8dSeopXD; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zhinx -verify-machineinstrs < %s \
3eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZHINX32 %s
4eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zhinx -verify-machineinstrs < %s \
5eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZHINX64 %s
6eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zfinx -verify-machineinstrs < %s \
7eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZFINX32 %s
8eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zfinx -verify-machineinstrs < %s \
9eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZFINX64 %s
10eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < %s \
11eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZDINX32 %s
12eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zdinx -verify-machineinstrs < %s \
13eb89bf8dSeopXD; RUN:   | FileCheck -check-prefix=ZDINX64 %s
14eb89bf8dSeopXD
15eb89bf8dSeopXDdefine half @caller_half(half %x) nounwind {
16eb89bf8dSeopXD; ZHINX32-LABEL: caller_half:
17eb89bf8dSeopXD; ZHINX32:       # %bb.0: # %entry
18eb89bf8dSeopXD; ZHINX32-NEXT:    tail h
19eb89bf8dSeopXD;
20eb89bf8dSeopXD; ZHINX64-LABEL: caller_half:
21eb89bf8dSeopXD; ZHINX64:       # %bb.0: # %entry
22eb89bf8dSeopXD; ZHINX64-NEXT:    tail h
23eb89bf8dSeopXD;
24eb89bf8dSeopXD; ZFINX32-LABEL: caller_half:
25eb89bf8dSeopXD; ZFINX32:       # %bb.0: # %entry
26bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
27eb89bf8dSeopXD; ZFINX32-NEXT:    lui a1, 1048560
28eb89bf8dSeopXD; ZFINX32-NEXT:    or a0, a0, a1
29bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
30eb89bf8dSeopXD; ZFINX32-NEXT:    tail h
31eb89bf8dSeopXD;
32eb89bf8dSeopXD; ZFINX64-LABEL: caller_half:
33eb89bf8dSeopXD; ZFINX64:       # %bb.0: # %entry
34bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
35eb89bf8dSeopXD; ZFINX64-NEXT:    lui a1, 1048560
36eb89bf8dSeopXD; ZFINX64-NEXT:    or a0, a0, a1
37bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
38eb89bf8dSeopXD; ZFINX64-NEXT:    tail h
39eb89bf8dSeopXD;
40eb89bf8dSeopXD; ZDINX32-LABEL: caller_half:
41eb89bf8dSeopXD; ZDINX32:       # %bb.0: # %entry
42bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
43eb89bf8dSeopXD; ZDINX32-NEXT:    lui a1, 1048560
44eb89bf8dSeopXD; ZDINX32-NEXT:    or a0, a0, a1
45bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
46eb89bf8dSeopXD; ZDINX32-NEXT:    tail h
47eb89bf8dSeopXD;
48eb89bf8dSeopXD; ZDINX64-LABEL: caller_half:
49eb89bf8dSeopXD; ZDINX64:       # %bb.0: # %entry
50bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
51eb89bf8dSeopXD; ZDINX64-NEXT:    lui a1, 1048560
52eb89bf8dSeopXD; ZDINX64-NEXT:    or a0, a0, a1
53bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
54eb89bf8dSeopXD; ZDINX64-NEXT:    tail h
55eb89bf8dSeopXDentry:
56eb89bf8dSeopXD  %0 = tail call fastcc half @h(half %x)
57eb89bf8dSeopXD  ret half %0
58eb89bf8dSeopXD}
59eb89bf8dSeopXD
60eb89bf8dSeopXDdefine internal fastcc half @h(half %x) nounwind {
61eb89bf8dSeopXD; ZHINX32-LABEL: h:
62eb89bf8dSeopXD; ZHINX32:       # %bb.0:
63eb89bf8dSeopXD; ZHINX32-NEXT:    ret
64eb89bf8dSeopXD;
65eb89bf8dSeopXD; ZHINX64-LABEL: h:
66eb89bf8dSeopXD; ZHINX64:       # %bb.0:
67eb89bf8dSeopXD; ZHINX64-NEXT:    ret
68eb89bf8dSeopXD;
69eb89bf8dSeopXD; ZFINX32-LABEL: h:
70eb89bf8dSeopXD; ZFINX32:       # %bb.0:
71bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
72eb89bf8dSeopXD; ZFINX32-NEXT:    lui a1, 1048560
73eb89bf8dSeopXD; ZFINX32-NEXT:    or a0, a0, a1
74bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
75eb89bf8dSeopXD; ZFINX32-NEXT:    ret
76eb89bf8dSeopXD;
77eb89bf8dSeopXD; ZFINX64-LABEL: h:
78eb89bf8dSeopXD; ZFINX64:       # %bb.0:
79bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
80eb89bf8dSeopXD; ZFINX64-NEXT:    lui a1, 1048560
81eb89bf8dSeopXD; ZFINX64-NEXT:    or a0, a0, a1
82bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
83eb89bf8dSeopXD; ZFINX64-NEXT:    ret
84eb89bf8dSeopXD;
85eb89bf8dSeopXD; ZDINX32-LABEL: h:
86eb89bf8dSeopXD; ZDINX32:       # %bb.0:
87bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
88eb89bf8dSeopXD; ZDINX32-NEXT:    lui a1, 1048560
89eb89bf8dSeopXD; ZDINX32-NEXT:    or a0, a0, a1
90bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
91eb89bf8dSeopXD; ZDINX32-NEXT:    ret
92eb89bf8dSeopXD;
93eb89bf8dSeopXD; ZDINX64-LABEL: h:
94eb89bf8dSeopXD; ZDINX64:       # %bb.0:
95bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
96eb89bf8dSeopXD; ZDINX64-NEXT:    lui a1, 1048560
97eb89bf8dSeopXD; ZDINX64-NEXT:    or a0, a0, a1
98bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
99eb89bf8dSeopXD; ZDINX64-NEXT:    ret
100eb89bf8dSeopXD  ret half %x
101eb89bf8dSeopXD}
102eb89bf8dSeopXD
103eb89bf8dSeopXDdefine float @caller_float(float %x) nounwind {
104eb89bf8dSeopXD; ZHINX32-LABEL: caller_float:
105eb89bf8dSeopXD; ZHINX32:       # %bb.0: # %entry
106eb89bf8dSeopXD; ZHINX32-NEXT:    tail f
107eb89bf8dSeopXD;
108eb89bf8dSeopXD; ZHINX64-LABEL: caller_float:
109eb89bf8dSeopXD; ZHINX64:       # %bb.0: # %entry
110eb89bf8dSeopXD; ZHINX64-NEXT:    tail f
111eb89bf8dSeopXD;
112eb89bf8dSeopXD; ZFINX32-LABEL: caller_float:
113eb89bf8dSeopXD; ZFINX32:       # %bb.0: # %entry
114eb89bf8dSeopXD; ZFINX32-NEXT:    tail f
115eb89bf8dSeopXD;
116eb89bf8dSeopXD; ZFINX64-LABEL: caller_float:
117eb89bf8dSeopXD; ZFINX64:       # %bb.0: # %entry
118eb89bf8dSeopXD; ZFINX64-NEXT:    tail f
119eb89bf8dSeopXD;
120eb89bf8dSeopXD; ZDINX32-LABEL: caller_float:
121eb89bf8dSeopXD; ZDINX32:       # %bb.0: # %entry
122eb89bf8dSeopXD; ZDINX32-NEXT:    tail f
123eb89bf8dSeopXD;
124eb89bf8dSeopXD; ZDINX64-LABEL: caller_float:
125eb89bf8dSeopXD; ZDINX64:       # %bb.0: # %entry
126eb89bf8dSeopXD; ZDINX64-NEXT:    tail f
127eb89bf8dSeopXDentry:
128eb89bf8dSeopXD  %0 = tail call fastcc float @f(float %x)
129eb89bf8dSeopXD  ret float %0
130eb89bf8dSeopXD}
131eb89bf8dSeopXD
132eb89bf8dSeopXDdefine internal fastcc float @f(float %x) nounwind {
133eb89bf8dSeopXD; ZHINX32-LABEL: f:
134eb89bf8dSeopXD; ZHINX32:       # %bb.0: # %entry
135eb89bf8dSeopXD; ZHINX32-NEXT:    ret
136eb89bf8dSeopXD;
137eb89bf8dSeopXD; ZHINX64-LABEL: f:
138eb89bf8dSeopXD; ZHINX64:       # %bb.0: # %entry
139eb89bf8dSeopXD; ZHINX64-NEXT:    ret
140eb89bf8dSeopXD;
141eb89bf8dSeopXD; ZFINX32-LABEL: f:
142eb89bf8dSeopXD; ZFINX32:       # %bb.0: # %entry
143eb89bf8dSeopXD; ZFINX32-NEXT:    ret
144eb89bf8dSeopXD;
145eb89bf8dSeopXD; ZFINX64-LABEL: f:
146eb89bf8dSeopXD; ZFINX64:       # %bb.0: # %entry
147eb89bf8dSeopXD; ZFINX64-NEXT:    ret
148eb89bf8dSeopXD;
149eb89bf8dSeopXD; ZDINX32-LABEL: f:
150eb89bf8dSeopXD; ZDINX32:       # %bb.0: # %entry
151eb89bf8dSeopXD; ZDINX32-NEXT:    ret
152eb89bf8dSeopXD;
153eb89bf8dSeopXD; ZDINX64-LABEL: f:
154eb89bf8dSeopXD; ZDINX64:       # %bb.0: # %entry
155eb89bf8dSeopXD; ZDINX64-NEXT:    ret
156eb89bf8dSeopXDentry:
157eb89bf8dSeopXD  ret float %x
158eb89bf8dSeopXD}
159eb89bf8dSeopXD
160eb89bf8dSeopXDdefine double @caller_double(double %x) nounwind {
161eb89bf8dSeopXD; ZHINX32-LABEL: caller_double:
162eb89bf8dSeopXD; ZHINX32:       # %bb.0: # %entry
163eb89bf8dSeopXD; ZHINX32-NEXT:    tail d
164eb89bf8dSeopXD;
165eb89bf8dSeopXD; ZHINX64-LABEL: caller_double:
166eb89bf8dSeopXD; ZHINX64:       # %bb.0: # %entry
167eb89bf8dSeopXD; ZHINX64-NEXT:    tail d
168eb89bf8dSeopXD;
169eb89bf8dSeopXD; ZFINX32-LABEL: caller_double:
170eb89bf8dSeopXD; ZFINX32:       # %bb.0: # %entry
171eb89bf8dSeopXD; ZFINX32-NEXT:    tail d
172eb89bf8dSeopXD;
173eb89bf8dSeopXD; ZFINX64-LABEL: caller_double:
174eb89bf8dSeopXD; ZFINX64:       # %bb.0: # %entry
175eb89bf8dSeopXD; ZFINX64-NEXT:    tail d
176eb89bf8dSeopXD;
177eb89bf8dSeopXD; ZDINX32-LABEL: caller_double:
178eb89bf8dSeopXD; ZDINX32:       # %bb.0: # %entry
179576d81baSCraig Topper; ZDINX32-NEXT:    addi sp, sp, -16
180576d81baSCraig Topper; ZDINX32-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill
181eb89bf8dSeopXD; ZDINX32-NEXT:    sw a0, 0(sp)
182eb89bf8dSeopXD; ZDINX32-NEXT:    sw a1, 4(sp)
183eb89bf8dSeopXD; ZDINX32-NEXT:    call d
184576d81baSCraig Topper; ZDINX32-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload
185576d81baSCraig Topper; ZDINX32-NEXT:    addi sp, sp, 16
186eb89bf8dSeopXD; ZDINX32-NEXT:    ret
187eb89bf8dSeopXD;
188eb89bf8dSeopXD; ZDINX64-LABEL: caller_double:
189eb89bf8dSeopXD; ZDINX64:       # %bb.0: # %entry
190eb89bf8dSeopXD; ZDINX64-NEXT:    tail d
191eb89bf8dSeopXDentry:
192eb89bf8dSeopXD  %0 = tail call fastcc double @d(double %x)
193eb89bf8dSeopXD  ret double %0
194eb89bf8dSeopXD}
195eb89bf8dSeopXD
196eb89bf8dSeopXDdefine internal fastcc double @d(double %x) nounwind {
197eb89bf8dSeopXD; ZHINX32-LABEL: d:
198eb89bf8dSeopXD; ZHINX32:       # %bb.0: # %entry
199eb89bf8dSeopXD; ZHINX32-NEXT:    ret
200eb89bf8dSeopXD;
201eb89bf8dSeopXD; ZHINX64-LABEL: d:
202eb89bf8dSeopXD; ZHINX64:       # %bb.0: # %entry
203eb89bf8dSeopXD; ZHINX64-NEXT:    ret
204eb89bf8dSeopXD;
205eb89bf8dSeopXD; ZFINX32-LABEL: d:
206eb89bf8dSeopXD; ZFINX32:       # %bb.0: # %entry
207eb89bf8dSeopXD; ZFINX32-NEXT:    ret
208eb89bf8dSeopXD;
209eb89bf8dSeopXD; ZFINX64-LABEL: d:
210eb89bf8dSeopXD; ZFINX64:       # %bb.0: # %entry
211eb89bf8dSeopXD; ZFINX64-NEXT:    ret
212eb89bf8dSeopXD;
213eb89bf8dSeopXD; ZDINX32-LABEL: d:
214eb89bf8dSeopXD; ZDINX32:       # %bb.0: # %entry
215576d81baSCraig Topper; ZDINX32-NEXT:    lw a0, 0(sp)
216576d81baSCraig Topper; ZDINX32-NEXT:    lw a1, 4(sp)
217eb89bf8dSeopXD; ZDINX32-NEXT:    ret
218eb89bf8dSeopXD;
219eb89bf8dSeopXD; ZDINX64-LABEL: d:
220eb89bf8dSeopXD; ZDINX64:       # %bb.0: # %entry
221eb89bf8dSeopXD; ZDINX64-NEXT:    ret
222eb89bf8dSeopXDentry:
223eb89bf8dSeopXD  ret double %x
224eb89bf8dSeopXD}
22532c257d3SeopXD
22632c257d3SeopXDdefine fastcc half @callee_half_32(<32 x half> %A) nounwind {
22732c257d3SeopXD; ZHINX32-LABEL: callee_half_32:
22832c257d3SeopXD; ZHINX32:       # %bb.0:
22932c257d3SeopXD; ZHINX32-NEXT:    ret
23032c257d3SeopXD;
23132c257d3SeopXD; ZHINX64-LABEL: callee_half_32:
23232c257d3SeopXD; ZHINX64:       # %bb.0:
23332c257d3SeopXD; ZHINX64-NEXT:    ret
23432c257d3SeopXD;
23532c257d3SeopXD; ZFINX32-LABEL: callee_half_32:
23632c257d3SeopXD; ZFINX32:       # %bb.0:
23732c257d3SeopXD; ZFINX32-NEXT:    lui a1, 1048560
23832c257d3SeopXD; ZFINX32-NEXT:    or a0, a0, a1
239bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
24032c257d3SeopXD; ZFINX32-NEXT:    ret
24132c257d3SeopXD;
24232c257d3SeopXD; ZFINX64-LABEL: callee_half_32:
24332c257d3SeopXD; ZFINX64:       # %bb.0:
24432c257d3SeopXD; ZFINX64-NEXT:    lui a1, 1048560
24532c257d3SeopXD; ZFINX64-NEXT:    or a0, a0, a1
246bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
24732c257d3SeopXD; ZFINX64-NEXT:    ret
24832c257d3SeopXD;
24932c257d3SeopXD; ZDINX32-LABEL: callee_half_32:
25032c257d3SeopXD; ZDINX32:       # %bb.0:
25132c257d3SeopXD; ZDINX32-NEXT:    lui a1, 1048560
25232c257d3SeopXD; ZDINX32-NEXT:    or a0, a0, a1
253bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
25432c257d3SeopXD; ZDINX32-NEXT:    ret
25532c257d3SeopXD;
25632c257d3SeopXD; ZDINX64-LABEL: callee_half_32:
25732c257d3SeopXD; ZDINX64:       # %bb.0:
25832c257d3SeopXD; ZDINX64-NEXT:    lui a1, 1048560
25932c257d3SeopXD; ZDINX64-NEXT:    or a0, a0, a1
260bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
26132c257d3SeopXD; ZDINX64-NEXT:    ret
26232c257d3SeopXD	%B = extractelement <32 x half> %A, i32 0
26332c257d3SeopXD	ret half %B
26432c257d3SeopXD}
26532c257d3SeopXD
26632c257d3SeopXDdefine half @caller_half_32(<32 x half> %A) nounwind {
26732c257d3SeopXD; ZHINX32-LABEL: caller_half_32:
26832c257d3SeopXD; ZHINX32:       # %bb.0:
2698a7843caSCraig Topper; ZHINX32-NEXT:    addi sp, sp, -112
2708a7843caSCraig Topper; ZHINX32-NEXT:    sw ra, 108(sp) # 4-byte Folded Spill
2718a7843caSCraig Topper; ZHINX32-NEXT:    sw s0, 104(sp) # 4-byte Folded Spill
2728a7843caSCraig Topper; ZHINX32-NEXT:    sw s1, 100(sp) # 4-byte Folded Spill
2738a7843caSCraig Topper; ZHINX32-NEXT:    sw s2, 96(sp) # 4-byte Folded Spill
2748a7843caSCraig Topper; ZHINX32-NEXT:    sw s3, 92(sp) # 4-byte Folded Spill
2758a7843caSCraig Topper; ZHINX32-NEXT:    sw s4, 88(sp) # 4-byte Folded Spill
2768a7843caSCraig Topper; ZHINX32-NEXT:    sw s5, 84(sp) # 4-byte Folded Spill
2778a7843caSCraig Topper; ZHINX32-NEXT:    sw s6, 80(sp) # 4-byte Folded Spill
2788a7843caSCraig Topper; ZHINX32-NEXT:    sw s7, 76(sp) # 4-byte Folded Spill
2798a7843caSCraig Topper; ZHINX32-NEXT:    sw s8, 72(sp) # 4-byte Folded Spill
2808a7843caSCraig Topper; ZHINX32-NEXT:    sw s9, 68(sp) # 4-byte Folded Spill
2818a7843caSCraig Topper; ZHINX32-NEXT:    sw s10, 64(sp) # 4-byte Folded Spill
2828a7843caSCraig Topper; ZHINX32-NEXT:    sw s11, 60(sp) # 4-byte Folded Spill
283*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a7, 58(sp) # 2-byte Folded Spill
284*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a6, 56(sp) # 2-byte Folded Spill
285*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a5, 54(sp) # 2-byte Folded Spill
286*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a4, 52(sp) # 2-byte Folded Spill
287*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a7, a3
288*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a6, a2
289*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a5, a1
290*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t3, 112(sp)
291*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t4, 116(sp)
292*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t5, 120(sp)
293*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t6, 124(sp)
294*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t0, 128(sp)
295*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t1, 132(sp)
296*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh t2, 136(sp)
2978a7843caSCraig Topper; ZHINX32-NEXT:    lh s0, 140(sp)
298b26157edSCraig Topper; ZHINX32-NEXT:    lh s1, 144(sp)
299b26157edSCraig Topper; ZHINX32-NEXT:    lh s2, 148(sp)
300b26157edSCraig Topper; ZHINX32-NEXT:    lh s3, 152(sp)
301b26157edSCraig Topper; ZHINX32-NEXT:    lh s4, 156(sp)
302b26157edSCraig Topper; ZHINX32-NEXT:    lh s5, 160(sp)
303b26157edSCraig Topper; ZHINX32-NEXT:    lh s6, 164(sp)
304b26157edSCraig Topper; ZHINX32-NEXT:    lh s7, 168(sp)
305b26157edSCraig Topper; ZHINX32-NEXT:    lh s8, 172(sp)
306b26157edSCraig Topper; ZHINX32-NEXT:    lh s9, 176(sp)
307b26157edSCraig Topper; ZHINX32-NEXT:    lh s10, 180(sp)
308b26157edSCraig Topper; ZHINX32-NEXT:    lh s11, 184(sp)
309b26157edSCraig Topper; ZHINX32-NEXT:    lh ra, 188(sp)
310*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a1, 192(sp)
311*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a2, 196(sp)
312*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a3, 200(sp)
313*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a4, 204(sp)
314*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a1, 32(sp)
315*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a2, 34(sp)
316*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a3, 36(sp)
317*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh a4, 38(sp)
3188a7843caSCraig Topper; ZHINX32-NEXT:    sh s9, 24(sp)
3192967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s10, 26(sp)
3202967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s11, 28(sp)
3212967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh ra, 30(sp)
3228a7843caSCraig Topper; ZHINX32-NEXT:    sh s5, 16(sp)
3232967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s6, 18(sp)
3242967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s7, 20(sp)
3252967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s8, 22(sp)
3268a7843caSCraig Topper; ZHINX32-NEXT:    sh s1, 8(sp)
3272967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s2, 10(sp)
3282967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s3, 12(sp)
3292967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s4, 14(sp)
330*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh t0, 0(sp)
331*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh t1, 2(sp)
332*9122c523SPengcheng Wang; ZHINX32-NEXT:    sh t2, 4(sp)
3332967e5f8SAlex Bradbury; ZHINX32-NEXT:    sh s0, 6(sp)
334*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a1, a5
335*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a2, a6
336*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a3, a7
337*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a4, 52(sp) # 2-byte Folded Reload
338*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a5, 54(sp) # 2-byte Folded Reload
339*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a6, 56(sp) # 2-byte Folded Reload
340*9122c523SPengcheng Wang; ZHINX32-NEXT:    lh a7, 58(sp) # 2-byte Folded Reload
341eabaee0cSFangrui Song; ZHINX32-NEXT:    call callee_half_32
3428a7843caSCraig Topper; ZHINX32-NEXT:    lw ra, 108(sp) # 4-byte Folded Reload
3438a7843caSCraig Topper; ZHINX32-NEXT:    lw s0, 104(sp) # 4-byte Folded Reload
3448a7843caSCraig Topper; ZHINX32-NEXT:    lw s1, 100(sp) # 4-byte Folded Reload
3458a7843caSCraig Topper; ZHINX32-NEXT:    lw s2, 96(sp) # 4-byte Folded Reload
3468a7843caSCraig Topper; ZHINX32-NEXT:    lw s3, 92(sp) # 4-byte Folded Reload
3478a7843caSCraig Topper; ZHINX32-NEXT:    lw s4, 88(sp) # 4-byte Folded Reload
3488a7843caSCraig Topper; ZHINX32-NEXT:    lw s5, 84(sp) # 4-byte Folded Reload
3498a7843caSCraig Topper; ZHINX32-NEXT:    lw s6, 80(sp) # 4-byte Folded Reload
3508a7843caSCraig Topper; ZHINX32-NEXT:    lw s7, 76(sp) # 4-byte Folded Reload
3518a7843caSCraig Topper; ZHINX32-NEXT:    lw s8, 72(sp) # 4-byte Folded Reload
3528a7843caSCraig Topper; ZHINX32-NEXT:    lw s9, 68(sp) # 4-byte Folded Reload
3538a7843caSCraig Topper; ZHINX32-NEXT:    lw s10, 64(sp) # 4-byte Folded Reload
3548a7843caSCraig Topper; ZHINX32-NEXT:    lw s11, 60(sp) # 4-byte Folded Reload
3558a7843caSCraig Topper; ZHINX32-NEXT:    addi sp, sp, 112
35632c257d3SeopXD; ZHINX32-NEXT:    ret
35732c257d3SeopXD;
35832c257d3SeopXD; ZHINX64-LABEL: caller_half_32:
35932c257d3SeopXD; ZHINX64:       # %bb.0:
3608a7843caSCraig Topper; ZHINX64-NEXT:    addi sp, sp, -160
3618a7843caSCraig Topper; ZHINX64-NEXT:    sd ra, 152(sp) # 8-byte Folded Spill
3628a7843caSCraig Topper; ZHINX64-NEXT:    sd s0, 144(sp) # 8-byte Folded Spill
3638a7843caSCraig Topper; ZHINX64-NEXT:    sd s1, 136(sp) # 8-byte Folded Spill
3648a7843caSCraig Topper; ZHINX64-NEXT:    sd s2, 128(sp) # 8-byte Folded Spill
3658a7843caSCraig Topper; ZHINX64-NEXT:    sd s3, 120(sp) # 8-byte Folded Spill
3668a7843caSCraig Topper; ZHINX64-NEXT:    sd s4, 112(sp) # 8-byte Folded Spill
3678a7843caSCraig Topper; ZHINX64-NEXT:    sd s5, 104(sp) # 8-byte Folded Spill
3688a7843caSCraig Topper; ZHINX64-NEXT:    sd s6, 96(sp) # 8-byte Folded Spill
3698a7843caSCraig Topper; ZHINX64-NEXT:    sd s7, 88(sp) # 8-byte Folded Spill
3708a7843caSCraig Topper; ZHINX64-NEXT:    sd s8, 80(sp) # 8-byte Folded Spill
3718a7843caSCraig Topper; ZHINX64-NEXT:    sd s9, 72(sp) # 8-byte Folded Spill
3728a7843caSCraig Topper; ZHINX64-NEXT:    sd s10, 64(sp) # 8-byte Folded Spill
3738a7843caSCraig Topper; ZHINX64-NEXT:    sd s11, 56(sp) # 8-byte Folded Spill
374*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a7, 54(sp) # 2-byte Folded Spill
375*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a6, 52(sp) # 2-byte Folded Spill
376*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a5, 50(sp) # 2-byte Folded Spill
377*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a4, 48(sp) # 2-byte Folded Spill
378*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a7, a3
379*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a6, a2
380*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a5, a1
381*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t3, 160(sp)
382*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t4, 168(sp)
383*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t5, 176(sp)
384*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t6, 184(sp)
385*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t0, 192(sp)
386*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t1, 200(sp)
387*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh t2, 208(sp)
3888a7843caSCraig Topper; ZHINX64-NEXT:    lh s0, 216(sp)
3898a7843caSCraig Topper; ZHINX64-NEXT:    lh s1, 224(sp)
3908a7843caSCraig Topper; ZHINX64-NEXT:    lh s2, 232(sp)
3918a7843caSCraig Topper; ZHINX64-NEXT:    lh s3, 240(sp)
3928a7843caSCraig Topper; ZHINX64-NEXT:    lh s4, 248(sp)
3938a7843caSCraig Topper; ZHINX64-NEXT:    lh s5, 256(sp)
3948a7843caSCraig Topper; ZHINX64-NEXT:    lh s6, 264(sp)
3958a7843caSCraig Topper; ZHINX64-NEXT:    lh s7, 272(sp)
3968a7843caSCraig Topper; ZHINX64-NEXT:    lh s8, 280(sp)
3978a7843caSCraig Topper; ZHINX64-NEXT:    lh s9, 288(sp)
3988a7843caSCraig Topper; ZHINX64-NEXT:    lh s10, 296(sp)
3998a7843caSCraig Topper; ZHINX64-NEXT:    lh s11, 304(sp)
4008a7843caSCraig Topper; ZHINX64-NEXT:    lh ra, 312(sp)
401*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a1, 320(sp)
402*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a2, 328(sp)
403*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a3, 336(sp)
404*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a4, 344(sp)
405*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a1, 32(sp)
406*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a2, 34(sp)
407*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a3, 36(sp)
408*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh a4, 38(sp)
4098a7843caSCraig Topper; ZHINX64-NEXT:    sh s9, 24(sp)
4102967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s10, 26(sp)
4112967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s11, 28(sp)
4122967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh ra, 30(sp)
4138a7843caSCraig Topper; ZHINX64-NEXT:    sh s5, 16(sp)
4142967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s6, 18(sp)
4152967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s7, 20(sp)
4162967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s8, 22(sp)
4178a7843caSCraig Topper; ZHINX64-NEXT:    sh s1, 8(sp)
4182967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s2, 10(sp)
4192967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s3, 12(sp)
4202967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s4, 14(sp)
421*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh t0, 0(sp)
422*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh t1, 2(sp)
423*9122c523SPengcheng Wang; ZHINX64-NEXT:    sh t2, 4(sp)
4242967e5f8SAlex Bradbury; ZHINX64-NEXT:    sh s0, 6(sp)
425*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a1, a5
426*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a2, a6
427*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a3, a7
428*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a4, 48(sp) # 2-byte Folded Reload
429*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a5, 50(sp) # 2-byte Folded Reload
430*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a6, 52(sp) # 2-byte Folded Reload
431*9122c523SPengcheng Wang; ZHINX64-NEXT:    lh a7, 54(sp) # 2-byte Folded Reload
432eabaee0cSFangrui Song; ZHINX64-NEXT:    call callee_half_32
4338a7843caSCraig Topper; ZHINX64-NEXT:    ld ra, 152(sp) # 8-byte Folded Reload
4348a7843caSCraig Topper; ZHINX64-NEXT:    ld s0, 144(sp) # 8-byte Folded Reload
4358a7843caSCraig Topper; ZHINX64-NEXT:    ld s1, 136(sp) # 8-byte Folded Reload
4368a7843caSCraig Topper; ZHINX64-NEXT:    ld s2, 128(sp) # 8-byte Folded Reload
4378a7843caSCraig Topper; ZHINX64-NEXT:    ld s3, 120(sp) # 8-byte Folded Reload
4388a7843caSCraig Topper; ZHINX64-NEXT:    ld s4, 112(sp) # 8-byte Folded Reload
4398a7843caSCraig Topper; ZHINX64-NEXT:    ld s5, 104(sp) # 8-byte Folded Reload
4408a7843caSCraig Topper; ZHINX64-NEXT:    ld s6, 96(sp) # 8-byte Folded Reload
4418a7843caSCraig Topper; ZHINX64-NEXT:    ld s7, 88(sp) # 8-byte Folded Reload
4428a7843caSCraig Topper; ZHINX64-NEXT:    ld s8, 80(sp) # 8-byte Folded Reload
4438a7843caSCraig Topper; ZHINX64-NEXT:    ld s9, 72(sp) # 8-byte Folded Reload
4448a7843caSCraig Topper; ZHINX64-NEXT:    ld s10, 64(sp) # 8-byte Folded Reload
4458a7843caSCraig Topper; ZHINX64-NEXT:    ld s11, 56(sp) # 8-byte Folded Reload
4468a7843caSCraig Topper; ZHINX64-NEXT:    addi sp, sp, 160
44732c257d3SeopXD; ZHINX64-NEXT:    ret
44832c257d3SeopXD;
44932c257d3SeopXD; ZFINX32-LABEL: caller_half_32:
45032c257d3SeopXD; ZFINX32:       # %bb.0:
451b6c4ad70SYeting Kuo; ZFINX32-NEXT:    addi sp, sp, -160
452b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw ra, 156(sp) # 4-byte Folded Spill
453b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s0, 152(sp) # 4-byte Folded Spill
454b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s1, 148(sp) # 4-byte Folded Spill
455b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s2, 144(sp) # 4-byte Folded Spill
456b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s3, 140(sp) # 4-byte Folded Spill
457b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s4, 136(sp) # 4-byte Folded Spill
458b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s5, 132(sp) # 4-byte Folded Spill
459b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s6, 128(sp) # 4-byte Folded Spill
460b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s7, 124(sp) # 4-byte Folded Spill
461b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s8, 120(sp) # 4-byte Folded Spill
462b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s9, 116(sp) # 4-byte Folded Spill
463b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s10, 112(sp) # 4-byte Folded Spill
464b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s11, 108(sp) # 4-byte Folded Spill
4652967e5f8SAlex Bradbury; ZFINX32-NEXT:    mv t0, a0
4662967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 0(a0)
4672967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a0, 104(sp) # 4-byte Folded Spill
4682967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 4(t0)
4692967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a0, 100(sp) # 4-byte Folded Spill
4702967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 8(t0)
4712967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a0, 96(sp) # 4-byte Folded Spill
4722967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 12(t0)
4732967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a0, 92(sp) # 4-byte Folded Spill
4742967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a4, 16(t0)
4752967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a5, 20(t0)
4762967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a6, 24(t0)
4772967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a7, 28(t0)
4782967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t3, 32(t0)
4792967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t4, 36(t0)
4802967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t5, 40(t0)
4812967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t6, 44(t0)
4822967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t1, 48(t0)
4832967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t2, 52(t0)
4842967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s0, 56(t0)
4852967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s1, 60(t0)
4862967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s2, 64(t0)
4872967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s3, 68(t0)
4882967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s4, 72(t0)
4892967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s5, 76(t0)
4902967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s6, 80(t0)
4912967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s7, 84(t0)
4922967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s8, 88(t0)
4932967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s9, 92(t0)
4942967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s10, 96(t0)
4952967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw s11, 100(t0)
4962967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw ra, 104(t0)
4972967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a3, 108(t0)
4982967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 112(t0)
4992967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a1, 116(t0)
5002967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a2, 120(t0)
5012967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw t0, 124(t0)
5022967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a0, 64(sp)
5032967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a1, 68(sp)
5042967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a2, 72(sp)
5052967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw t0, 76(sp)
506b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s10, 48(sp)
5072967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s11, 52(sp)
5082967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw ra, 56(sp)
5092967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw a3, 60(sp)
510b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s6, 32(sp)
5112967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s7, 36(sp)
5122967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s8, 40(sp)
5132967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s9, 44(sp)
514b6c4ad70SYeting Kuo; ZFINX32-NEXT:    sw s2, 16(sp)
5152967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s3, 20(sp)
5162967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s4, 24(sp)
5172967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s5, 28(sp)
51832c257d3SeopXD; ZFINX32-NEXT:    sw t1, 0(sp)
5192967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw t2, 4(sp)
5202967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s0, 8(sp)
5212967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s1, 12(sp)
5222967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a0, 104(sp) # 4-byte Folded Reload
5232967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a1, 100(sp) # 4-byte Folded Reload
5242967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a2, 96(sp) # 4-byte Folded Reload
5252967e5f8SAlex Bradbury; ZFINX32-NEXT:    lw a3, 92(sp) # 4-byte Folded Reload
526eabaee0cSFangrui Song; ZFINX32-NEXT:    call callee_half_32
527bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
52832c257d3SeopXD; ZFINX32-NEXT:    lui a1, 1048560
52932c257d3SeopXD; ZFINX32-NEXT:    or a0, a0, a1
530bc91f3cdSCraig Topper; ZFINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
531b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw ra, 156(sp) # 4-byte Folded Reload
532b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s0, 152(sp) # 4-byte Folded Reload
533b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s1, 148(sp) # 4-byte Folded Reload
534b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s2, 144(sp) # 4-byte Folded Reload
535b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s3, 140(sp) # 4-byte Folded Reload
536b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s4, 136(sp) # 4-byte Folded Reload
537b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s5, 132(sp) # 4-byte Folded Reload
538b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s6, 128(sp) # 4-byte Folded Reload
539b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s7, 124(sp) # 4-byte Folded Reload
540b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s8, 120(sp) # 4-byte Folded Reload
541b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s9, 116(sp) # 4-byte Folded Reload
542b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s10, 112(sp) # 4-byte Folded Reload
543b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s11, 108(sp) # 4-byte Folded Reload
544b6c4ad70SYeting Kuo; ZFINX32-NEXT:    addi sp, sp, 160
54532c257d3SeopXD; ZFINX32-NEXT:    ret
54632c257d3SeopXD;
54732c257d3SeopXD; ZFINX64-LABEL: caller_half_32:
54832c257d3SeopXD; ZFINX64:       # %bb.0:
549b6c4ad70SYeting Kuo; ZFINX64-NEXT:    addi sp, sp, -304
550b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd ra, 296(sp) # 8-byte Folded Spill
551b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s0, 288(sp) # 8-byte Folded Spill
552b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s1, 280(sp) # 8-byte Folded Spill
553b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s2, 272(sp) # 8-byte Folded Spill
554b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s3, 264(sp) # 8-byte Folded Spill
555b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s4, 256(sp) # 8-byte Folded Spill
556b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s5, 248(sp) # 8-byte Folded Spill
557b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s6, 240(sp) # 8-byte Folded Spill
558b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s7, 232(sp) # 8-byte Folded Spill
559b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s8, 224(sp) # 8-byte Folded Spill
560b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s9, 216(sp) # 8-byte Folded Spill
561b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s10, 208(sp) # 8-byte Folded Spill
562b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s11, 200(sp) # 8-byte Folded Spill
5632967e5f8SAlex Bradbury; ZFINX64-NEXT:    mv t0, a0
5642967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 0(a0)
5652967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a0, 192(sp) # 8-byte Folded Spill
5662967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 8(t0)
5672967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a0, 184(sp) # 8-byte Folded Spill
5682967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 16(t0)
5692967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a0, 176(sp) # 8-byte Folded Spill
5702967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 24(t0)
5712967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a0, 168(sp) # 8-byte Folded Spill
5722967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a4, 32(t0)
5732967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a5, 40(t0)
5742967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a6, 48(t0)
5752967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a7, 56(t0)
5762967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t3, 64(t0)
5772967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t4, 72(t0)
5782967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t5, 80(t0)
5792967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t6, 88(t0)
5802967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t1, 96(t0)
5812967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t2, 104(t0)
5822967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s0, 112(t0)
5832967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s1, 120(t0)
5842967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s2, 128(t0)
5852967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s3, 136(t0)
5862967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s4, 144(t0)
5872967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s5, 152(t0)
5882967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s6, 160(t0)
5892967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s7, 168(t0)
5902967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s8, 176(t0)
5912967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s9, 184(t0)
5922967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s10, 192(t0)
5932967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld s11, 200(t0)
5942967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld ra, 208(t0)
5952967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a3, 216(t0)
5962967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 224(t0)
5972967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a1, 232(t0)
5982967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a2, 240(t0)
5992967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld t0, 248(t0)
6002967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a0, 128(sp)
6012967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a1, 136(sp)
6022967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a2, 144(sp)
6032967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd t0, 152(sp)
604b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s10, 96(sp)
6052967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s11, 104(sp)
6062967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd ra, 112(sp)
6072967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd a3, 120(sp)
608b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s6, 64(sp)
6092967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s7, 72(sp)
6102967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s8, 80(sp)
6112967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s9, 88(sp)
612b6c4ad70SYeting Kuo; ZFINX64-NEXT:    sd s2, 32(sp)
6132967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s3, 40(sp)
6142967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s4, 48(sp)
6152967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s5, 56(sp)
61632c257d3SeopXD; ZFINX64-NEXT:    sd t1, 0(sp)
6172967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd t2, 8(sp)
6182967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s0, 16(sp)
6192967e5f8SAlex Bradbury; ZFINX64-NEXT:    sd s1, 24(sp)
6202967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a0, 192(sp) # 8-byte Folded Reload
6212967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a1, 184(sp) # 8-byte Folded Reload
6222967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a2, 176(sp) # 8-byte Folded Reload
6232967e5f8SAlex Bradbury; ZFINX64-NEXT:    ld a3, 168(sp) # 8-byte Folded Reload
624eabaee0cSFangrui Song; ZFINX64-NEXT:    call callee_half_32
625bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
62632c257d3SeopXD; ZFINX64-NEXT:    lui a1, 1048560
62732c257d3SeopXD; ZFINX64-NEXT:    or a0, a0, a1
628bc91f3cdSCraig Topper; ZFINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
629b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld ra, 296(sp) # 8-byte Folded Reload
630b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s0, 288(sp) # 8-byte Folded Reload
631b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s1, 280(sp) # 8-byte Folded Reload
632b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s2, 272(sp) # 8-byte Folded Reload
633b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s3, 264(sp) # 8-byte Folded Reload
634b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s4, 256(sp) # 8-byte Folded Reload
635b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s5, 248(sp) # 8-byte Folded Reload
636b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s6, 240(sp) # 8-byte Folded Reload
637b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s7, 232(sp) # 8-byte Folded Reload
638b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s8, 224(sp) # 8-byte Folded Reload
639b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s9, 216(sp) # 8-byte Folded Reload
640b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s10, 208(sp) # 8-byte Folded Reload
641b6c4ad70SYeting Kuo; ZFINX64-NEXT:    ld s11, 200(sp) # 8-byte Folded Reload
642b6c4ad70SYeting Kuo; ZFINX64-NEXT:    addi sp, sp, 304
64332c257d3SeopXD; ZFINX64-NEXT:    ret
64432c257d3SeopXD;
64532c257d3SeopXD; ZDINX32-LABEL: caller_half_32:
64632c257d3SeopXD; ZDINX32:       # %bb.0:
647b6c4ad70SYeting Kuo; ZDINX32-NEXT:    addi sp, sp, -160
648b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw ra, 156(sp) # 4-byte Folded Spill
649b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s0, 152(sp) # 4-byte Folded Spill
650b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s1, 148(sp) # 4-byte Folded Spill
651b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s2, 144(sp) # 4-byte Folded Spill
652b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s3, 140(sp) # 4-byte Folded Spill
653b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s4, 136(sp) # 4-byte Folded Spill
654b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s5, 132(sp) # 4-byte Folded Spill
655b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s6, 128(sp) # 4-byte Folded Spill
656b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s7, 124(sp) # 4-byte Folded Spill
657b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s8, 120(sp) # 4-byte Folded Spill
658b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s9, 116(sp) # 4-byte Folded Spill
659b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s10, 112(sp) # 4-byte Folded Spill
660b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s11, 108(sp) # 4-byte Folded Spill
6612967e5f8SAlex Bradbury; ZDINX32-NEXT:    mv t0, a0
6622967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 0(a0)
6632967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a0, 104(sp) # 4-byte Folded Spill
6642967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 4(t0)
6652967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a0, 100(sp) # 4-byte Folded Spill
6662967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 8(t0)
6672967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a0, 96(sp) # 4-byte Folded Spill
6682967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 12(t0)
6692967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a0, 92(sp) # 4-byte Folded Spill
6702967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a4, 16(t0)
6712967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a5, 20(t0)
6722967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a6, 24(t0)
6732967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a7, 28(t0)
6742967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t3, 32(t0)
6752967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t4, 36(t0)
6762967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t5, 40(t0)
6772967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t6, 44(t0)
6782967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t1, 48(t0)
6792967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t2, 52(t0)
6802967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s0, 56(t0)
6812967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s1, 60(t0)
6822967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s2, 64(t0)
6832967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s3, 68(t0)
6842967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s4, 72(t0)
6852967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s5, 76(t0)
6862967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s6, 80(t0)
6872967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s7, 84(t0)
6882967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s8, 88(t0)
6892967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s9, 92(t0)
6902967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s10, 96(t0)
6912967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw s11, 100(t0)
6922967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw ra, 104(t0)
6932967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a3, 108(t0)
6942967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 112(t0)
6952967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a1, 116(t0)
6962967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a2, 120(t0)
6972967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw t0, 124(t0)
6982967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a0, 64(sp)
6992967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a1, 68(sp)
7002967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a2, 72(sp)
7012967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw t0, 76(sp)
702b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s10, 48(sp)
7032967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s11, 52(sp)
7042967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw ra, 56(sp)
7052967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw a3, 60(sp)
706b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s6, 32(sp)
7072967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s7, 36(sp)
7082967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s8, 40(sp)
7092967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s9, 44(sp)
710b6c4ad70SYeting Kuo; ZDINX32-NEXT:    sw s2, 16(sp)
7112967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s3, 20(sp)
7122967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s4, 24(sp)
7132967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s5, 28(sp)
71432c257d3SeopXD; ZDINX32-NEXT:    sw t1, 0(sp)
7152967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw t2, 4(sp)
7162967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s0, 8(sp)
7172967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s1, 12(sp)
7182967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a0, 104(sp) # 4-byte Folded Reload
7192967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a1, 100(sp) # 4-byte Folded Reload
7202967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a2, 96(sp) # 4-byte Folded Reload
7212967e5f8SAlex Bradbury; ZDINX32-NEXT:    lw a3, 92(sp) # 4-byte Folded Reload
722eabaee0cSFangrui Song; ZDINX32-NEXT:    call callee_half_32
723bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w def $x10
72432c257d3SeopXD; ZDINX32-NEXT:    lui a1, 1048560
72532c257d3SeopXD; ZDINX32-NEXT:    or a0, a0, a1
726bc91f3cdSCraig Topper; ZDINX32-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
727b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw ra, 156(sp) # 4-byte Folded Reload
728b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s0, 152(sp) # 4-byte Folded Reload
729b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s1, 148(sp) # 4-byte Folded Reload
730b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s2, 144(sp) # 4-byte Folded Reload
731b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s3, 140(sp) # 4-byte Folded Reload
732b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s4, 136(sp) # 4-byte Folded Reload
733b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s5, 132(sp) # 4-byte Folded Reload
734b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s6, 128(sp) # 4-byte Folded Reload
735b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s7, 124(sp) # 4-byte Folded Reload
736b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s8, 120(sp) # 4-byte Folded Reload
737b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s9, 116(sp) # 4-byte Folded Reload
738b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s10, 112(sp) # 4-byte Folded Reload
739b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s11, 108(sp) # 4-byte Folded Reload
740b6c4ad70SYeting Kuo; ZDINX32-NEXT:    addi sp, sp, 160
74132c257d3SeopXD; ZDINX32-NEXT:    ret
74232c257d3SeopXD;
74332c257d3SeopXD; ZDINX64-LABEL: caller_half_32:
74432c257d3SeopXD; ZDINX64:       # %bb.0:
745b6c4ad70SYeting Kuo; ZDINX64-NEXT:    addi sp, sp, -304
746b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd ra, 296(sp) # 8-byte Folded Spill
747b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s0, 288(sp) # 8-byte Folded Spill
748b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s1, 280(sp) # 8-byte Folded Spill
749b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s2, 272(sp) # 8-byte Folded Spill
750b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s3, 264(sp) # 8-byte Folded Spill
751b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s4, 256(sp) # 8-byte Folded Spill
752b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s5, 248(sp) # 8-byte Folded Spill
753b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s6, 240(sp) # 8-byte Folded Spill
754b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s7, 232(sp) # 8-byte Folded Spill
755b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s8, 224(sp) # 8-byte Folded Spill
756b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s9, 216(sp) # 8-byte Folded Spill
757b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s10, 208(sp) # 8-byte Folded Spill
758b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s11, 200(sp) # 8-byte Folded Spill
7592967e5f8SAlex Bradbury; ZDINX64-NEXT:    mv t0, a0
7602967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 0(a0)
7612967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a0, 192(sp) # 8-byte Folded Spill
7622967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 8(t0)
7632967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a0, 184(sp) # 8-byte Folded Spill
7642967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 16(t0)
7652967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a0, 176(sp) # 8-byte Folded Spill
7662967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 24(t0)
7672967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a0, 168(sp) # 8-byte Folded Spill
7682967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a4, 32(t0)
7692967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a5, 40(t0)
7702967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a6, 48(t0)
7712967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a7, 56(t0)
7722967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t3, 64(t0)
7732967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t4, 72(t0)
7742967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t5, 80(t0)
7752967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t6, 88(t0)
7762967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t1, 96(t0)
7772967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t2, 104(t0)
7782967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s0, 112(t0)
7792967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s1, 120(t0)
7802967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s2, 128(t0)
7812967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s3, 136(t0)
7822967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s4, 144(t0)
7832967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s5, 152(t0)
7842967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s6, 160(t0)
7852967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s7, 168(t0)
7862967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s8, 176(t0)
7872967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s9, 184(t0)
7882967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s10, 192(t0)
7892967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld s11, 200(t0)
7902967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld ra, 208(t0)
7912967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a3, 216(t0)
7922967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 224(t0)
7932967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a1, 232(t0)
7942967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a2, 240(t0)
7952967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld t0, 248(t0)
7962967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a0, 128(sp)
7972967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a1, 136(sp)
7982967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a2, 144(sp)
7992967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd t0, 152(sp)
800b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s10, 96(sp)
8012967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s11, 104(sp)
8022967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd ra, 112(sp)
8032967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd a3, 120(sp)
804b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s6, 64(sp)
8052967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s7, 72(sp)
8062967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s8, 80(sp)
8072967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s9, 88(sp)
808b6c4ad70SYeting Kuo; ZDINX64-NEXT:    sd s2, 32(sp)
8092967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s3, 40(sp)
8102967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s4, 48(sp)
8112967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s5, 56(sp)
81232c257d3SeopXD; ZDINX64-NEXT:    sd t1, 0(sp)
8132967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd t2, 8(sp)
8142967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s0, 16(sp)
8152967e5f8SAlex Bradbury; ZDINX64-NEXT:    sd s1, 24(sp)
8162967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a0, 192(sp) # 8-byte Folded Reload
8172967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a1, 184(sp) # 8-byte Folded Reload
8182967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a2, 176(sp) # 8-byte Folded Reload
8192967e5f8SAlex Bradbury; ZDINX64-NEXT:    ld a3, 168(sp) # 8-byte Folded Reload
820eabaee0cSFangrui Song; ZDINX64-NEXT:    call callee_half_32
821bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w def $x10
82232c257d3SeopXD; ZDINX64-NEXT:    lui a1, 1048560
82332c257d3SeopXD; ZDINX64-NEXT:    or a0, a0, a1
824bc91f3cdSCraig Topper; ZDINX64-NEXT:    # kill: def $x10_w killed $x10_w killed $x10
825b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld ra, 296(sp) # 8-byte Folded Reload
826b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s0, 288(sp) # 8-byte Folded Reload
827b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s1, 280(sp) # 8-byte Folded Reload
828b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s2, 272(sp) # 8-byte Folded Reload
829b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s3, 264(sp) # 8-byte Folded Reload
830b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s4, 256(sp) # 8-byte Folded Reload
831b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s5, 248(sp) # 8-byte Folded Reload
832b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s6, 240(sp) # 8-byte Folded Reload
833b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s7, 232(sp) # 8-byte Folded Reload
834b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s8, 224(sp) # 8-byte Folded Reload
835b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s9, 216(sp) # 8-byte Folded Reload
836b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s10, 208(sp) # 8-byte Folded Reload
837b6c4ad70SYeting Kuo; ZDINX64-NEXT:    ld s11, 200(sp) # 8-byte Folded Reload
838b6c4ad70SYeting Kuo; ZDINX64-NEXT:    addi sp, sp, 304
83932c257d3SeopXD; ZDINX64-NEXT:    ret
84032c257d3SeopXD	%C = call fastcc half @callee_half_32(<32 x half> %A)
84132c257d3SeopXD	ret half %C
84232c257d3SeopXD}
84332c257d3SeopXD
84432c257d3SeopXDdefine fastcc float @callee_float_32(<32 x float> %A) nounwind {
84532c257d3SeopXD; ZHINX32-LABEL: callee_float_32:
84632c257d3SeopXD; ZHINX32:       # %bb.0:
84732c257d3SeopXD; ZHINX32-NEXT:    ret
84832c257d3SeopXD;
84932c257d3SeopXD; ZHINX64-LABEL: callee_float_32:
85032c257d3SeopXD; ZHINX64:       # %bb.0:
85132c257d3SeopXD; ZHINX64-NEXT:    ret
85232c257d3SeopXD;
85332c257d3SeopXD; ZFINX32-LABEL: callee_float_32:
85432c257d3SeopXD; ZFINX32:       # %bb.0:
85532c257d3SeopXD; ZFINX32-NEXT:    ret
85632c257d3SeopXD;
85732c257d3SeopXD; ZFINX64-LABEL: callee_float_32:
85832c257d3SeopXD; ZFINX64:       # %bb.0:
85932c257d3SeopXD; ZFINX64-NEXT:    ret
86032c257d3SeopXD;
86132c257d3SeopXD; ZDINX32-LABEL: callee_float_32:
86232c257d3SeopXD; ZDINX32:       # %bb.0:
86332c257d3SeopXD; ZDINX32-NEXT:    ret
86432c257d3SeopXD;
86532c257d3SeopXD; ZDINX64-LABEL: callee_float_32:
86632c257d3SeopXD; ZDINX64:       # %bb.0:
86732c257d3SeopXD; ZDINX64-NEXT:    ret
86832c257d3SeopXD	%B = extractelement <32 x float> %A, i32 0
86932c257d3SeopXD	ret float %B
87032c257d3SeopXD}
87132c257d3SeopXD
87232c257d3SeopXDdefine float @caller_float_32(<32 x float> %A) nounwind {
87332c257d3SeopXD; ZHINX32-LABEL: caller_float_32:
87432c257d3SeopXD; ZHINX32:       # %bb.0:
87549660e55SCraig Topper; ZHINX32-NEXT:    addi sp, sp, -160
87649660e55SCraig Topper; ZHINX32-NEXT:    sw ra, 156(sp) # 4-byte Folded Spill
87749660e55SCraig Topper; ZHINX32-NEXT:    sw s0, 152(sp) # 4-byte Folded Spill
87849660e55SCraig Topper; ZHINX32-NEXT:    sw s1, 148(sp) # 4-byte Folded Spill
87949660e55SCraig Topper; ZHINX32-NEXT:    sw s2, 144(sp) # 4-byte Folded Spill
88049660e55SCraig Topper; ZHINX32-NEXT:    sw s3, 140(sp) # 4-byte Folded Spill
88149660e55SCraig Topper; ZHINX32-NEXT:    sw s4, 136(sp) # 4-byte Folded Spill
88249660e55SCraig Topper; ZHINX32-NEXT:    sw s5, 132(sp) # 4-byte Folded Spill
88349660e55SCraig Topper; ZHINX32-NEXT:    sw s6, 128(sp) # 4-byte Folded Spill
88449660e55SCraig Topper; ZHINX32-NEXT:    sw s7, 124(sp) # 4-byte Folded Spill
88549660e55SCraig Topper; ZHINX32-NEXT:    sw s8, 120(sp) # 4-byte Folded Spill
88649660e55SCraig Topper; ZHINX32-NEXT:    sw s9, 116(sp) # 4-byte Folded Spill
88749660e55SCraig Topper; ZHINX32-NEXT:    sw s10, 112(sp) # 4-byte Folded Spill
88849660e55SCraig Topper; ZHINX32-NEXT:    sw s11, 108(sp) # 4-byte Folded Spill
889*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a7, 104(sp) # 4-byte Folded Spill
890*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a6, 100(sp) # 4-byte Folded Spill
891*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a5, 96(sp) # 4-byte Folded Spill
892*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a4, 92(sp) # 4-byte Folded Spill
893*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a7, a3
894*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a6, a2
895*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a5, a1
896*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t3, 160(sp)
897*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t4, 164(sp)
898*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t5, 168(sp)
899*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t6, 172(sp)
900*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t0, 176(sp)
901*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t1, 180(sp)
902*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw t2, 184(sp)
90349660e55SCraig Topper; ZHINX32-NEXT:    lw s0, 188(sp)
904b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s1, 192(sp)
905b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s2, 196(sp)
906b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s3, 200(sp)
907b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s4, 204(sp)
908b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s5, 208(sp)
909b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s6, 212(sp)
910b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s7, 216(sp)
911b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s8, 220(sp)
912b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s9, 224(sp)
913b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s10, 228(sp)
914b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw s11, 232(sp)
915b6c4ad70SYeting Kuo; ZHINX32-NEXT:    lw ra, 236(sp)
916*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a1, 240(sp)
917*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a2, 244(sp)
918*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a3, 248(sp)
919*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a4, 252(sp)
920*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a1, 64(sp)
921*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a2, 68(sp)
922*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a3, 72(sp)
923*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw a4, 76(sp)
92449660e55SCraig Topper; ZHINX32-NEXT:    sw s9, 48(sp)
9252967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s10, 52(sp)
9262967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s11, 56(sp)
9272967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw ra, 60(sp)
92849660e55SCraig Topper; ZHINX32-NEXT:    sw s5, 32(sp)
9292967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s6, 36(sp)
9302967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s7, 40(sp)
9312967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s8, 44(sp)
93249660e55SCraig Topper; ZHINX32-NEXT:    sw s1, 16(sp)
9332967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s2, 20(sp)
9342967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s3, 24(sp)
9352967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s4, 28(sp)
936*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw t0, 0(sp)
937*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw t1, 4(sp)
938*9122c523SPengcheng Wang; ZHINX32-NEXT:    sw t2, 8(sp)
9392967e5f8SAlex Bradbury; ZHINX32-NEXT:    sw s0, 12(sp)
940*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a1, a5
941*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a2, a6
942*9122c523SPengcheng Wang; ZHINX32-NEXT:    mv a3, a7
943*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a4, 92(sp) # 4-byte Folded Reload
944*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a5, 96(sp) # 4-byte Folded Reload
945*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a6, 100(sp) # 4-byte Folded Reload
946*9122c523SPengcheng Wang; ZHINX32-NEXT:    lw a7, 104(sp) # 4-byte Folded Reload
947eabaee0cSFangrui Song; ZHINX32-NEXT:    call callee_float_32
94849660e55SCraig Topper; ZHINX32-NEXT:    lw ra, 156(sp) # 4-byte Folded Reload
94949660e55SCraig Topper; ZHINX32-NEXT:    lw s0, 152(sp) # 4-byte Folded Reload
95049660e55SCraig Topper; ZHINX32-NEXT:    lw s1, 148(sp) # 4-byte Folded Reload
95149660e55SCraig Topper; ZHINX32-NEXT:    lw s2, 144(sp) # 4-byte Folded Reload
95249660e55SCraig Topper; ZHINX32-NEXT:    lw s3, 140(sp) # 4-byte Folded Reload
95349660e55SCraig Topper; ZHINX32-NEXT:    lw s4, 136(sp) # 4-byte Folded Reload
95449660e55SCraig Topper; ZHINX32-NEXT:    lw s5, 132(sp) # 4-byte Folded Reload
95549660e55SCraig Topper; ZHINX32-NEXT:    lw s6, 128(sp) # 4-byte Folded Reload
95649660e55SCraig Topper; ZHINX32-NEXT:    lw s7, 124(sp) # 4-byte Folded Reload
95749660e55SCraig Topper; ZHINX32-NEXT:    lw s8, 120(sp) # 4-byte Folded Reload
95849660e55SCraig Topper; ZHINX32-NEXT:    lw s9, 116(sp) # 4-byte Folded Reload
95949660e55SCraig Topper; ZHINX32-NEXT:    lw s10, 112(sp) # 4-byte Folded Reload
96049660e55SCraig Topper; ZHINX32-NEXT:    lw s11, 108(sp) # 4-byte Folded Reload
96149660e55SCraig Topper; ZHINX32-NEXT:    addi sp, sp, 160
96232c257d3SeopXD; ZHINX32-NEXT:    ret
96332c257d3SeopXD;
96432c257d3SeopXD; ZHINX64-LABEL: caller_float_32:
96532c257d3SeopXD; ZHINX64:       # %bb.0:
966bc91f3cdSCraig Topper; ZHINX64-NEXT:    addi sp, sp, -208
967bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd ra, 200(sp) # 8-byte Folded Spill
968bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s0, 192(sp) # 8-byte Folded Spill
969bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s1, 184(sp) # 8-byte Folded Spill
970bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s2, 176(sp) # 8-byte Folded Spill
971bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s3, 168(sp) # 8-byte Folded Spill
972bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s4, 160(sp) # 8-byte Folded Spill
973bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s5, 152(sp) # 8-byte Folded Spill
974bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s6, 144(sp) # 8-byte Folded Spill
975bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s7, 136(sp) # 8-byte Folded Spill
976bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s8, 128(sp) # 8-byte Folded Spill
977bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s9, 120(sp) # 8-byte Folded Spill
978bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s10, 112(sp) # 8-byte Folded Spill
979bc91f3cdSCraig Topper; ZHINX64-NEXT:    sd s11, 104(sp) # 8-byte Folded Spill
980*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a7, 100(sp) # 4-byte Folded Spill
981*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a6, 96(sp) # 4-byte Folded Spill
982*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a5, 92(sp) # 4-byte Folded Spill
983*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a4, 88(sp) # 4-byte Folded Spill
984*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a7, a3
985*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a6, a2
986*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a5, a1
987*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t3, 208(sp)
988*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t4, 216(sp)
989*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t5, 224(sp)
990*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t6, 232(sp)
991*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t0, 240(sp)
992*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t1, 248(sp)
993*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw t2, 256(sp)
994bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s0, 264(sp)
995bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s1, 272(sp)
996bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s2, 280(sp)
997bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s3, 288(sp)
998bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s4, 296(sp)
999bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s5, 304(sp)
1000bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s6, 312(sp)
1001bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s7, 320(sp)
1002bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s8, 328(sp)
1003bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s9, 336(sp)
1004bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s10, 344(sp)
1005bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw s11, 352(sp)
1006bc91f3cdSCraig Topper; ZHINX64-NEXT:    lw ra, 360(sp)
1007*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a1, 368(sp)
1008*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a2, 376(sp)
1009*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a3, 384(sp)
1010*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a4, 392(sp)
1011*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a1, 64(sp)
1012*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a2, 68(sp)
1013*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a3, 72(sp)
1014*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw a4, 76(sp)
1015bc91f3cdSCraig Topper; ZHINX64-NEXT:    sw s9, 48(sp)
10162967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s10, 52(sp)
10172967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s11, 56(sp)
10182967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw ra, 60(sp)
1019bc91f3cdSCraig Topper; ZHINX64-NEXT:    sw s5, 32(sp)
10202967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s6, 36(sp)
10212967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s7, 40(sp)
10222967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s8, 44(sp)
1023bc91f3cdSCraig Topper; ZHINX64-NEXT:    sw s1, 16(sp)
10242967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s2, 20(sp)
10252967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s3, 24(sp)
10262967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s4, 28(sp)
1027*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw t0, 0(sp)
1028*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw t1, 4(sp)
1029*9122c523SPengcheng Wang; ZHINX64-NEXT:    sw t2, 8(sp)
10302967e5f8SAlex Bradbury; ZHINX64-NEXT:    sw s0, 12(sp)
1031*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a1, a5
1032*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a2, a6
1033*9122c523SPengcheng Wang; ZHINX64-NEXT:    mv a3, a7
1034*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a4, 88(sp) # 4-byte Folded Reload
1035*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a5, 92(sp) # 4-byte Folded Reload
1036*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a6, 96(sp) # 4-byte Folded Reload
1037*9122c523SPengcheng Wang; ZHINX64-NEXT:    lw a7, 100(sp) # 4-byte Folded Reload
1038eabaee0cSFangrui Song; ZHINX64-NEXT:    call callee_float_32
1039bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld ra, 200(sp) # 8-byte Folded Reload
1040bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s0, 192(sp) # 8-byte Folded Reload
1041bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s1, 184(sp) # 8-byte Folded Reload
1042bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s2, 176(sp) # 8-byte Folded Reload
1043bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s3, 168(sp) # 8-byte Folded Reload
1044bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s4, 160(sp) # 8-byte Folded Reload
1045bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s5, 152(sp) # 8-byte Folded Reload
1046bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s6, 144(sp) # 8-byte Folded Reload
1047bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s7, 136(sp) # 8-byte Folded Reload
1048bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s8, 128(sp) # 8-byte Folded Reload
1049bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s9, 120(sp) # 8-byte Folded Reload
1050bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s10, 112(sp) # 8-byte Folded Reload
1051bc91f3cdSCraig Topper; ZHINX64-NEXT:    ld s11, 104(sp) # 8-byte Folded Reload
1052bc91f3cdSCraig Topper; ZHINX64-NEXT:    addi sp, sp, 208
105332c257d3SeopXD; ZHINX64-NEXT:    ret
105432c257d3SeopXD;
105532c257d3SeopXD; ZFINX32-LABEL: caller_float_32:
105632c257d3SeopXD; ZFINX32:       # %bb.0:
105749660e55SCraig Topper; ZFINX32-NEXT:    addi sp, sp, -160
105849660e55SCraig Topper; ZFINX32-NEXT:    sw ra, 156(sp) # 4-byte Folded Spill
105949660e55SCraig Topper; ZFINX32-NEXT:    sw s0, 152(sp) # 4-byte Folded Spill
106049660e55SCraig Topper; ZFINX32-NEXT:    sw s1, 148(sp) # 4-byte Folded Spill
106149660e55SCraig Topper; ZFINX32-NEXT:    sw s2, 144(sp) # 4-byte Folded Spill
106249660e55SCraig Topper; ZFINX32-NEXT:    sw s3, 140(sp) # 4-byte Folded Spill
106349660e55SCraig Topper; ZFINX32-NEXT:    sw s4, 136(sp) # 4-byte Folded Spill
106449660e55SCraig Topper; ZFINX32-NEXT:    sw s5, 132(sp) # 4-byte Folded Spill
106549660e55SCraig Topper; ZFINX32-NEXT:    sw s6, 128(sp) # 4-byte Folded Spill
106649660e55SCraig Topper; ZFINX32-NEXT:    sw s7, 124(sp) # 4-byte Folded Spill
106749660e55SCraig Topper; ZFINX32-NEXT:    sw s8, 120(sp) # 4-byte Folded Spill
106849660e55SCraig Topper; ZFINX32-NEXT:    sw s9, 116(sp) # 4-byte Folded Spill
106949660e55SCraig Topper; ZFINX32-NEXT:    sw s10, 112(sp) # 4-byte Folded Spill
107049660e55SCraig Topper; ZFINX32-NEXT:    sw s11, 108(sp) # 4-byte Folded Spill
1071*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a7, 104(sp) # 4-byte Folded Spill
1072*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a6, 100(sp) # 4-byte Folded Spill
1073*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a5, 96(sp) # 4-byte Folded Spill
1074*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a4, 92(sp) # 4-byte Folded Spill
1075*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a7, a3
1076*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a6, a2
1077*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a5, a1
1078*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t3, 160(sp)
1079*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t4, 164(sp)
1080*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t5, 168(sp)
1081*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t6, 172(sp)
1082*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t0, 176(sp)
1083*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t1, 180(sp)
1084*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw t2, 184(sp)
108549660e55SCraig Topper; ZFINX32-NEXT:    lw s0, 188(sp)
1086b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s1, 192(sp)
1087b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s2, 196(sp)
1088b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s3, 200(sp)
1089b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s4, 204(sp)
1090b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s5, 208(sp)
1091b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s6, 212(sp)
1092b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s7, 216(sp)
1093b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s8, 220(sp)
1094b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s9, 224(sp)
1095b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s10, 228(sp)
1096b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw s11, 232(sp)
1097b6c4ad70SYeting Kuo; ZFINX32-NEXT:    lw ra, 236(sp)
1098*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a1, 240(sp)
1099*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a2, 244(sp)
1100*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a3, 248(sp)
1101*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a4, 252(sp)
1102*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a1, 64(sp)
1103*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a2, 68(sp)
1104*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a3, 72(sp)
1105*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw a4, 76(sp)
110649660e55SCraig Topper; ZFINX32-NEXT:    sw s9, 48(sp)
11072967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s10, 52(sp)
11082967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s11, 56(sp)
11092967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw ra, 60(sp)
111049660e55SCraig Topper; ZFINX32-NEXT:    sw s5, 32(sp)
11112967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s6, 36(sp)
11122967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s7, 40(sp)
11132967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s8, 44(sp)
111449660e55SCraig Topper; ZFINX32-NEXT:    sw s1, 16(sp)
11152967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s2, 20(sp)
11162967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s3, 24(sp)
11172967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s4, 28(sp)
1118*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw t0, 0(sp)
1119*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw t1, 4(sp)
1120*9122c523SPengcheng Wang; ZFINX32-NEXT:    sw t2, 8(sp)
11212967e5f8SAlex Bradbury; ZFINX32-NEXT:    sw s0, 12(sp)
1122*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a1, a5
1123*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a2, a6
1124*9122c523SPengcheng Wang; ZFINX32-NEXT:    mv a3, a7
1125*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a4, 92(sp) # 4-byte Folded Reload
1126*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a5, 96(sp) # 4-byte Folded Reload
1127*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a6, 100(sp) # 4-byte Folded Reload
1128*9122c523SPengcheng Wang; ZFINX32-NEXT:    lw a7, 104(sp) # 4-byte Folded Reload
1129eabaee0cSFangrui Song; ZFINX32-NEXT:    call callee_float_32
113049660e55SCraig Topper; ZFINX32-NEXT:    lw ra, 156(sp) # 4-byte Folded Reload
113149660e55SCraig Topper; ZFINX32-NEXT:    lw s0, 152(sp) # 4-byte Folded Reload
113249660e55SCraig Topper; ZFINX32-NEXT:    lw s1, 148(sp) # 4-byte Folded Reload
113349660e55SCraig Topper; ZFINX32-NEXT:    lw s2, 144(sp) # 4-byte Folded Reload
113449660e55SCraig Topper; ZFINX32-NEXT:    lw s3, 140(sp) # 4-byte Folded Reload
113549660e55SCraig Topper; ZFINX32-NEXT:    lw s4, 136(sp) # 4-byte Folded Reload
113649660e55SCraig Topper; ZFINX32-NEXT:    lw s5, 132(sp) # 4-byte Folded Reload
113749660e55SCraig Topper; ZFINX32-NEXT:    lw s6, 128(sp) # 4-byte Folded Reload
113849660e55SCraig Topper; ZFINX32-NEXT:    lw s7, 124(sp) # 4-byte Folded Reload
113949660e55SCraig Topper; ZFINX32-NEXT:    lw s8, 120(sp) # 4-byte Folded Reload
114049660e55SCraig Topper; ZFINX32-NEXT:    lw s9, 116(sp) # 4-byte Folded Reload
114149660e55SCraig Topper; ZFINX32-NEXT:    lw s10, 112(sp) # 4-byte Folded Reload
114249660e55SCraig Topper; ZFINX32-NEXT:    lw s11, 108(sp) # 4-byte Folded Reload
114349660e55SCraig Topper; ZFINX32-NEXT:    addi sp, sp, 160
114432c257d3SeopXD; ZFINX32-NEXT:    ret
114532c257d3SeopXD;
114632c257d3SeopXD; ZFINX64-LABEL: caller_float_32:
114732c257d3SeopXD; ZFINX64:       # %bb.0:
1148bc91f3cdSCraig Topper; ZFINX64-NEXT:    addi sp, sp, -208
1149bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd ra, 200(sp) # 8-byte Folded Spill
1150bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s0, 192(sp) # 8-byte Folded Spill
1151bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s1, 184(sp) # 8-byte Folded Spill
1152bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s2, 176(sp) # 8-byte Folded Spill
1153bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s3, 168(sp) # 8-byte Folded Spill
1154bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s4, 160(sp) # 8-byte Folded Spill
1155bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s5, 152(sp) # 8-byte Folded Spill
1156bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s6, 144(sp) # 8-byte Folded Spill
1157bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s7, 136(sp) # 8-byte Folded Spill
1158bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s8, 128(sp) # 8-byte Folded Spill
1159bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s9, 120(sp) # 8-byte Folded Spill
1160bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s10, 112(sp) # 8-byte Folded Spill
1161bc91f3cdSCraig Topper; ZFINX64-NEXT:    sd s11, 104(sp) # 8-byte Folded Spill
1162*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a7, 100(sp) # 4-byte Folded Spill
1163*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a6, 96(sp) # 4-byte Folded Spill
1164*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a5, 92(sp) # 4-byte Folded Spill
1165*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a4, 88(sp) # 4-byte Folded Spill
1166*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a7, a3
1167*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a6, a2
1168*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a5, a1
1169*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t3, 208(sp)
1170*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t4, 216(sp)
1171*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t5, 224(sp)
1172*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t6, 232(sp)
1173*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t0, 240(sp)
1174*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t1, 248(sp)
1175*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw t2, 256(sp)
1176bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s0, 264(sp)
1177bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s1, 272(sp)
1178bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s2, 280(sp)
1179bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s3, 288(sp)
1180bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s4, 296(sp)
1181bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s5, 304(sp)
1182bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s6, 312(sp)
1183bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s7, 320(sp)
1184bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s8, 328(sp)
1185bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s9, 336(sp)
1186bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s10, 344(sp)
1187bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw s11, 352(sp)
1188bc91f3cdSCraig Topper; ZFINX64-NEXT:    lw ra, 360(sp)
1189*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a1, 368(sp)
1190*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a2, 376(sp)
1191*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a3, 384(sp)
1192*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a4, 392(sp)
1193*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a1, 64(sp)
1194*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a2, 68(sp)
1195*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a3, 72(sp)
1196*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw a4, 76(sp)
1197bc91f3cdSCraig Topper; ZFINX64-NEXT:    sw s9, 48(sp)
11982967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s10, 52(sp)
11992967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s11, 56(sp)
12002967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw ra, 60(sp)
1201bc91f3cdSCraig Topper; ZFINX64-NEXT:    sw s5, 32(sp)
12022967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s6, 36(sp)
12032967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s7, 40(sp)
12042967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s8, 44(sp)
1205bc91f3cdSCraig Topper; ZFINX64-NEXT:    sw s1, 16(sp)
12062967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s2, 20(sp)
12072967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s3, 24(sp)
12082967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s4, 28(sp)
1209*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw t0, 0(sp)
1210*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw t1, 4(sp)
1211*9122c523SPengcheng Wang; ZFINX64-NEXT:    sw t2, 8(sp)
12122967e5f8SAlex Bradbury; ZFINX64-NEXT:    sw s0, 12(sp)
1213*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a1, a5
1214*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a2, a6
1215*9122c523SPengcheng Wang; ZFINX64-NEXT:    mv a3, a7
1216*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a4, 88(sp) # 4-byte Folded Reload
1217*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a5, 92(sp) # 4-byte Folded Reload
1218*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a6, 96(sp) # 4-byte Folded Reload
1219*9122c523SPengcheng Wang; ZFINX64-NEXT:    lw a7, 100(sp) # 4-byte Folded Reload
1220eabaee0cSFangrui Song; ZFINX64-NEXT:    call callee_float_32
1221bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld ra, 200(sp) # 8-byte Folded Reload
1222bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s0, 192(sp) # 8-byte Folded Reload
1223bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s1, 184(sp) # 8-byte Folded Reload
1224bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s2, 176(sp) # 8-byte Folded Reload
1225bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s3, 168(sp) # 8-byte Folded Reload
1226bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s4, 160(sp) # 8-byte Folded Reload
1227bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s5, 152(sp) # 8-byte Folded Reload
1228bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s6, 144(sp) # 8-byte Folded Reload
1229bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s7, 136(sp) # 8-byte Folded Reload
1230bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s8, 128(sp) # 8-byte Folded Reload
1231bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s9, 120(sp) # 8-byte Folded Reload
1232bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s10, 112(sp) # 8-byte Folded Reload
1233bc91f3cdSCraig Topper; ZFINX64-NEXT:    ld s11, 104(sp) # 8-byte Folded Reload
1234bc91f3cdSCraig Topper; ZFINX64-NEXT:    addi sp, sp, 208
123532c257d3SeopXD; ZFINX64-NEXT:    ret
123632c257d3SeopXD;
123732c257d3SeopXD; ZDINX32-LABEL: caller_float_32:
123832c257d3SeopXD; ZDINX32:       # %bb.0:
123949660e55SCraig Topper; ZDINX32-NEXT:    addi sp, sp, -160
124049660e55SCraig Topper; ZDINX32-NEXT:    sw ra, 156(sp) # 4-byte Folded Spill
124149660e55SCraig Topper; ZDINX32-NEXT:    sw s0, 152(sp) # 4-byte Folded Spill
124249660e55SCraig Topper; ZDINX32-NEXT:    sw s1, 148(sp) # 4-byte Folded Spill
124349660e55SCraig Topper; ZDINX32-NEXT:    sw s2, 144(sp) # 4-byte Folded Spill
124449660e55SCraig Topper; ZDINX32-NEXT:    sw s3, 140(sp) # 4-byte Folded Spill
124549660e55SCraig Topper; ZDINX32-NEXT:    sw s4, 136(sp) # 4-byte Folded Spill
124649660e55SCraig Topper; ZDINX32-NEXT:    sw s5, 132(sp) # 4-byte Folded Spill
124749660e55SCraig Topper; ZDINX32-NEXT:    sw s6, 128(sp) # 4-byte Folded Spill
124849660e55SCraig Topper; ZDINX32-NEXT:    sw s7, 124(sp) # 4-byte Folded Spill
124949660e55SCraig Topper; ZDINX32-NEXT:    sw s8, 120(sp) # 4-byte Folded Spill
125049660e55SCraig Topper; ZDINX32-NEXT:    sw s9, 116(sp) # 4-byte Folded Spill
125149660e55SCraig Topper; ZDINX32-NEXT:    sw s10, 112(sp) # 4-byte Folded Spill
125249660e55SCraig Topper; ZDINX32-NEXT:    sw s11, 108(sp) # 4-byte Folded Spill
1253*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a7, 104(sp) # 4-byte Folded Spill
1254*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a6, 100(sp) # 4-byte Folded Spill
1255*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a5, 96(sp) # 4-byte Folded Spill
1256*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a4, 92(sp) # 4-byte Folded Spill
1257*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a7, a3
1258*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a6, a2
1259*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a5, a1
1260*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t3, 160(sp)
1261*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t4, 164(sp)
1262*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t5, 168(sp)
1263*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t6, 172(sp)
1264*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t0, 176(sp)
1265*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t1, 180(sp)
1266*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw t2, 184(sp)
126749660e55SCraig Topper; ZDINX32-NEXT:    lw s0, 188(sp)
1268b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s1, 192(sp)
1269b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s2, 196(sp)
1270b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s3, 200(sp)
1271b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s4, 204(sp)
1272b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s5, 208(sp)
1273b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s6, 212(sp)
1274b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s7, 216(sp)
1275b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s8, 220(sp)
1276b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s9, 224(sp)
1277b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s10, 228(sp)
1278b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw s11, 232(sp)
1279b6c4ad70SYeting Kuo; ZDINX32-NEXT:    lw ra, 236(sp)
1280*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a1, 240(sp)
1281*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a2, 244(sp)
1282*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a3, 248(sp)
1283*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a4, 252(sp)
1284*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a1, 64(sp)
1285*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a2, 68(sp)
1286*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a3, 72(sp)
1287*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw a4, 76(sp)
128849660e55SCraig Topper; ZDINX32-NEXT:    sw s9, 48(sp)
12892967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s10, 52(sp)
12902967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s11, 56(sp)
12912967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw ra, 60(sp)
129249660e55SCraig Topper; ZDINX32-NEXT:    sw s5, 32(sp)
12932967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s6, 36(sp)
12942967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s7, 40(sp)
12952967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s8, 44(sp)
129649660e55SCraig Topper; ZDINX32-NEXT:    sw s1, 16(sp)
12972967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s2, 20(sp)
12982967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s3, 24(sp)
12992967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s4, 28(sp)
1300*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw t0, 0(sp)
1301*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw t1, 4(sp)
1302*9122c523SPengcheng Wang; ZDINX32-NEXT:    sw t2, 8(sp)
13032967e5f8SAlex Bradbury; ZDINX32-NEXT:    sw s0, 12(sp)
1304*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a1, a5
1305*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a2, a6
1306*9122c523SPengcheng Wang; ZDINX32-NEXT:    mv a3, a7
1307*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a4, 92(sp) # 4-byte Folded Reload
1308*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a5, 96(sp) # 4-byte Folded Reload
1309*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a6, 100(sp) # 4-byte Folded Reload
1310*9122c523SPengcheng Wang; ZDINX32-NEXT:    lw a7, 104(sp) # 4-byte Folded Reload
1311eabaee0cSFangrui Song; ZDINX32-NEXT:    call callee_float_32
131249660e55SCraig Topper; ZDINX32-NEXT:    lw ra, 156(sp) # 4-byte Folded Reload
131349660e55SCraig Topper; ZDINX32-NEXT:    lw s0, 152(sp) # 4-byte Folded Reload
131449660e55SCraig Topper; ZDINX32-NEXT:    lw s1, 148(sp) # 4-byte Folded Reload
131549660e55SCraig Topper; ZDINX32-NEXT:    lw s2, 144(sp) # 4-byte Folded Reload
131649660e55SCraig Topper; ZDINX32-NEXT:    lw s3, 140(sp) # 4-byte Folded Reload
131749660e55SCraig Topper; ZDINX32-NEXT:    lw s4, 136(sp) # 4-byte Folded Reload
131849660e55SCraig Topper; ZDINX32-NEXT:    lw s5, 132(sp) # 4-byte Folded Reload
131949660e55SCraig Topper; ZDINX32-NEXT:    lw s6, 128(sp) # 4-byte Folded Reload
132049660e55SCraig Topper; ZDINX32-NEXT:    lw s7, 124(sp) # 4-byte Folded Reload
132149660e55SCraig Topper; ZDINX32-NEXT:    lw s8, 120(sp) # 4-byte Folded Reload
132249660e55SCraig Topper; ZDINX32-NEXT:    lw s9, 116(sp) # 4-byte Folded Reload
132349660e55SCraig Topper; ZDINX32-NEXT:    lw s10, 112(sp) # 4-byte Folded Reload
132449660e55SCraig Topper; ZDINX32-NEXT:    lw s11, 108(sp) # 4-byte Folded Reload
132549660e55SCraig Topper; ZDINX32-NEXT:    addi sp, sp, 160
132632c257d3SeopXD; ZDINX32-NEXT:    ret
132732c257d3SeopXD;
132832c257d3SeopXD; ZDINX64-LABEL: caller_float_32:
132932c257d3SeopXD; ZDINX64:       # %bb.0:
1330bc91f3cdSCraig Topper; ZDINX64-NEXT:    addi sp, sp, -208
1331bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd ra, 200(sp) # 8-byte Folded Spill
1332bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s0, 192(sp) # 8-byte Folded Spill
1333bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s1, 184(sp) # 8-byte Folded Spill
1334bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s2, 176(sp) # 8-byte Folded Spill
1335bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s3, 168(sp) # 8-byte Folded Spill
1336bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s4, 160(sp) # 8-byte Folded Spill
1337bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s5, 152(sp) # 8-byte Folded Spill
1338bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s6, 144(sp) # 8-byte Folded Spill
1339bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s7, 136(sp) # 8-byte Folded Spill
1340bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s8, 128(sp) # 8-byte Folded Spill
1341bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s9, 120(sp) # 8-byte Folded Spill
1342bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s10, 112(sp) # 8-byte Folded Spill
1343bc91f3cdSCraig Topper; ZDINX64-NEXT:    sd s11, 104(sp) # 8-byte Folded Spill
1344*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a7, 100(sp) # 4-byte Folded Spill
1345*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a6, 96(sp) # 4-byte Folded Spill
1346*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a5, 92(sp) # 4-byte Folded Spill
1347*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a4, 88(sp) # 4-byte Folded Spill
1348*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a7, a3
1349*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a6, a2
1350*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a5, a1
1351*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t3, 208(sp)
1352*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t4, 216(sp)
1353*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t5, 224(sp)
1354*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t6, 232(sp)
1355*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t0, 240(sp)
1356*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t1, 248(sp)
1357*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw t2, 256(sp)
1358bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s0, 264(sp)
1359bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s1, 272(sp)
1360bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s2, 280(sp)
1361bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s3, 288(sp)
1362bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s4, 296(sp)
1363bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s5, 304(sp)
1364bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s6, 312(sp)
1365bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s7, 320(sp)
1366bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s8, 328(sp)
1367bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s9, 336(sp)
1368bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s10, 344(sp)
1369bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw s11, 352(sp)
1370bc91f3cdSCraig Topper; ZDINX64-NEXT:    lw ra, 360(sp)
1371*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a1, 368(sp)
1372*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a2, 376(sp)
1373*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a3, 384(sp)
1374*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a4, 392(sp)
1375*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a1, 64(sp)
1376*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a2, 68(sp)
1377*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a3, 72(sp)
1378*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw a4, 76(sp)
1379bc91f3cdSCraig Topper; ZDINX64-NEXT:    sw s9, 48(sp)
13802967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s10, 52(sp)
13812967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s11, 56(sp)
13822967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw ra, 60(sp)
1383bc91f3cdSCraig Topper; ZDINX64-NEXT:    sw s5, 32(sp)
13842967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s6, 36(sp)
13852967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s7, 40(sp)
13862967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s8, 44(sp)
1387bc91f3cdSCraig Topper; ZDINX64-NEXT:    sw s1, 16(sp)
13882967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s2, 20(sp)
13892967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s3, 24(sp)
13902967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s4, 28(sp)
1391*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw t0, 0(sp)
1392*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw t1, 4(sp)
1393*9122c523SPengcheng Wang; ZDINX64-NEXT:    sw t2, 8(sp)
13942967e5f8SAlex Bradbury; ZDINX64-NEXT:    sw s0, 12(sp)
1395*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a1, a5
1396*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a2, a6
1397*9122c523SPengcheng Wang; ZDINX64-NEXT:    mv a3, a7
1398*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a4, 88(sp) # 4-byte Folded Reload
1399*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a5, 92(sp) # 4-byte Folded Reload
1400*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a6, 96(sp) # 4-byte Folded Reload
1401*9122c523SPengcheng Wang; ZDINX64-NEXT:    lw a7, 100(sp) # 4-byte Folded Reload
1402eabaee0cSFangrui Song; ZDINX64-NEXT:    call callee_float_32
1403bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld ra, 200(sp) # 8-byte Folded Reload
1404bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s0, 192(sp) # 8-byte Folded Reload
1405bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s1, 184(sp) # 8-byte Folded Reload
1406bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s2, 176(sp) # 8-byte Folded Reload
1407bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s3, 168(sp) # 8-byte Folded Reload
1408bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s4, 160(sp) # 8-byte Folded Reload
1409bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s5, 152(sp) # 8-byte Folded Reload
1410bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s6, 144(sp) # 8-byte Folded Reload
1411bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s7, 136(sp) # 8-byte Folded Reload
1412bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s8, 128(sp) # 8-byte Folded Reload
1413bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s9, 120(sp) # 8-byte Folded Reload
1414bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s10, 112(sp) # 8-byte Folded Reload
1415bc91f3cdSCraig Topper; ZDINX64-NEXT:    ld s11, 104(sp) # 8-byte Folded Reload
1416bc91f3cdSCraig Topper; ZDINX64-NEXT:    addi sp, sp, 208
141732c257d3SeopXD; ZDINX64-NEXT:    ret
141832c257d3SeopXD	%C = call fastcc float @callee_float_32(<32 x float> %A)
141932c257d3SeopXD	ret float %C
142032c257d3SeopXD}
142132c257d3SeopXD
142232c257d3SeopXDdefine fastcc double @callee_double_32(<32 x double> %A) nounwind {
14239eebfa80SCraig Topper; ZHINX32-LABEL: callee_double_32:
14249eebfa80SCraig Topper; ZHINX32:       # %bb.0:
14259eebfa80SCraig Topper; ZHINX32-NEXT:    ret
14269eebfa80SCraig Topper;
14279eebfa80SCraig Topper; ZHINX64-LABEL: callee_double_32:
14289eebfa80SCraig Topper; ZHINX64:       # %bb.0:
14299eebfa80SCraig Topper; ZHINX64-NEXT:    ret
14309eebfa80SCraig Topper;
14319eebfa80SCraig Topper; ZFINX32-LABEL: callee_double_32:
14329eebfa80SCraig Topper; ZFINX32:       # %bb.0:
14339eebfa80SCraig Topper; ZFINX32-NEXT:    ret
14349eebfa80SCraig Topper;
14359eebfa80SCraig Topper; ZFINX64-LABEL: callee_double_32:
14369eebfa80SCraig Topper; ZFINX64:       # %bb.0:
14379eebfa80SCraig Topper; ZFINX64-NEXT:    ret
14389eebfa80SCraig Topper;
14399eebfa80SCraig Topper; ZDINX32-LABEL: callee_double_32:
14409eebfa80SCraig Topper; ZDINX32:       # %bb.0:
1441576d81baSCraig Topper; ZDINX32-NEXT:    lw a0, 0(sp)
1442576d81baSCraig Topper; ZDINX32-NEXT:    lw a1, 4(sp)
14439eebfa80SCraig Topper; ZDINX32-NEXT:    ret
14449eebfa80SCraig Topper;
14459eebfa80SCraig Topper; ZDINX64-LABEL: callee_double_32:
14469eebfa80SCraig Topper; ZDINX64:       # %bb.0:
14479eebfa80SCraig Topper; ZDINX64-NEXT:    ret
144832c257d3SeopXD	%B = extractelement <32 x double> %A, i32 0
144932c257d3SeopXD	ret double %B
145032c257d3SeopXD}
1451