xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/o32_cc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel < %s | FileCheck -check-prefix=ALL %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32 < %s | FileCheck -check-prefixes=ALL,NO-MFHC1 %s
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2              < %s | FileCheck -check-prefixes=ALL,HAS-MFHC1 %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+fp64 < %s | FileCheck -check-prefixes=ALL,HAS-MFHC1 %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; $f12, $f14
7*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall0:
8*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
9*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f14, %lo
10*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall0() nounwind {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker  tail call void @f0(double 5.000000e+00, double 6.000000e+00) nounwind
13*9880d681SAndroid Build Coastguard Worker  ret void
14*9880d681SAndroid Build Coastguard Worker}
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workerdeclare void @f0(double, double)
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker; $f12, $f14
19*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall1:
20*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
21*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f14, %lo
22*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall1() nounwind {
23*9880d681SAndroid Build Coastguard Workerentry:
24*9880d681SAndroid Build Coastguard Worker  tail call void @f1(float 8.000000e+00, float 9.000000e+00) nounwind
25*9880d681SAndroid Build Coastguard Worker  ret void
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdeclare void @f1(float, float)
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker; $f12, $f14
31*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall2:
32*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
33*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f14, %lo
34*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall2() nounwind {
35*9880d681SAndroid Build Coastguard Workerentry:
36*9880d681SAndroid Build Coastguard Worker  tail call void @f2(float 8.000000e+00, double 6.000000e+00) nounwind
37*9880d681SAndroid Build Coastguard Worker  ret void
38*9880d681SAndroid Build Coastguard Worker}
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Workerdeclare void @f2(float, double)
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker; $f12, $f14
43*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall3:
44*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
45*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f14, %lo
46*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall3() nounwind {
47*9880d681SAndroid Build Coastguard Workerentry:
48*9880d681SAndroid Build Coastguard Worker  tail call void @f3(double 5.000000e+00, float 9.000000e+00) nounwind
49*9880d681SAndroid Build Coastguard Worker  ret void
50*9880d681SAndroid Build Coastguard Worker}
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Workerdeclare void @f3(double, float)
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, $7
55*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall4:
56*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 12
57*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 13
58*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 14
59*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $7, $zero, 15
60*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall4() nounwind {
61*9880d681SAndroid Build Coastguard Workerentry:
62*9880d681SAndroid Build Coastguard Worker  tail call void @f4(i32 12, i32 13, i32 14, i32 15) nounwind
63*9880d681SAndroid Build Coastguard Worker  ret void
64*9880d681SAndroid Build Coastguard Worker}
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Workerdeclare void @f4(i32, i32, i32, i32)
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Worker; $f12, $6, stack
69*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall5:
70*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
71*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 23
72*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 16($sp)
73*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 20($sp)
74*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall5() nounwind {
75*9880d681SAndroid Build Coastguard Workerentry:
76*9880d681SAndroid Build Coastguard Worker  tail call void @f5(double 1.500000e+01, i32 23, double 1.700000e+01) nounwind
77*9880d681SAndroid Build Coastguard Worker  ret void
78*9880d681SAndroid Build Coastguard Worker}
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerdeclare void @f5(double, i32, double)
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker; $f12, $6, $7
83*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall6:
84*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
85*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 33
86*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $7, $zero, 24
87*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall6() nounwind {
88*9880d681SAndroid Build Coastguard Workerentry:
89*9880d681SAndroid Build Coastguard Worker  tail call void @f6(double 2.500000e+01, i32 33, i32 24) nounwind
90*9880d681SAndroid Build Coastguard Worker  ret void
91*9880d681SAndroid Build Coastguard Worker}
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Workerdeclare void @f6(double, i32, i32)
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Worker; $f12, $5, $6
96*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall7:
97*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
98*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 43
99*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 34
100*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall7() nounwind {
101*9880d681SAndroid Build Coastguard Workerentry:
102*9880d681SAndroid Build Coastguard Worker  tail call void @f7(float 1.800000e+01, i32 43, i32 34) nounwind
103*9880d681SAndroid Build Coastguard Worker  ret void
104*9880d681SAndroid Build Coastguard Worker}
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Workerdeclare void @f7(float, i32, i32)
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, stack
109*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall8:
110*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 22
111*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 53
112*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 44
113*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 16($sp)
114*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 20($sp)
115*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall8() nounwind {
116*9880d681SAndroid Build Coastguard Workerentry:
117*9880d681SAndroid Build Coastguard Worker  tail call void @f8(i32 22, i32 53, i32 44, double 4.000000e+00) nounwind
118*9880d681SAndroid Build Coastguard Worker  ret void
119*9880d681SAndroid Build Coastguard Worker}
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Workerdeclare void @f8(i32, i32, i32, double)
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, $7
124*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall9:
125*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 32
126*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 63
127*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 54
128*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $7, 16688
129*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall9() nounwind {
130*9880d681SAndroid Build Coastguard Workerentry:
131*9880d681SAndroid Build Coastguard Worker  tail call void @f9(i32 32, i32 63, i32 54, float 1.100000e+01) nounwind
132*9880d681SAndroid Build Coastguard Worker  ret void
133*9880d681SAndroid Build Coastguard Worker}
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Workerdeclare void @f9(i32, i32, i32, float)
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Worker; $4, $5, ($6, $7)
138*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall10:
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 42
141*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 73
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $6, $f{{[0-9]+}}
144*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $7, $f{{[0-9]+}}
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 $6, $f{{[0-9]+}}
147*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 $7, $f{{[0-9]+}}
148*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall10() nounwind {
149*9880d681SAndroid Build Coastguard Workerentry:
150*9880d681SAndroid Build Coastguard Worker  tail call void @f10(i32 42, i32 73, double 2.700000e+01) nounwind
151*9880d681SAndroid Build Coastguard Worker  ret void
152*9880d681SAndroid Build Coastguard Worker}
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Workerdeclare void @f10(i32, i32, double)
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Worker; $4, ($6, $7)
157*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall11:
158*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 52
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $6, $f{{[0-9]+}}
161*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $7, $f{{[0-9]+}}
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 $6, $f{{[0-9]+}}
164*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 $7, $f{{[0-9]+}}
165*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall11() nounwind {
166*9880d681SAndroid Build Coastguard Workerentry:
167*9880d681SAndroid Build Coastguard Worker  tail call void @f11(i32 52, double 1.600000e+01) nounwind
168*9880d681SAndroid Build Coastguard Worker  ret void
169*9880d681SAndroid Build Coastguard Worker}
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Workerdeclare void @f11(i32, double)
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Worker; $f12, $f14, $6, $7
174*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall12:
175*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
176*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f14, %lo
177*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $6, 16672
178*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $7, 16808
179*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall12() nounwind {
180*9880d681SAndroid Build Coastguard Workerentry:
181*9880d681SAndroid Build Coastguard Worker  tail call void @f12(float 2.800000e+01, float 1.900000e+01, float 1.000000e+01, float 2.100000e+01) nounwind
182*9880d681SAndroid Build Coastguard Worker  ret void
183*9880d681SAndroid Build Coastguard Worker}
184*9880d681SAndroid Build Coastguard Worker
185*9880d681SAndroid Build Coastguard Workerdeclare void @f12(float, float, float, float)
186*9880d681SAndroid Build Coastguard Worker
187*9880d681SAndroid Build Coastguard Worker; $f12, $5, $6, $7
188*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall13:
189*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
190*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 83
191*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $6, 16800
192*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $7, $zero, 25
193*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall13() nounwind {
194*9880d681SAndroid Build Coastguard Workerentry:
195*9880d681SAndroid Build Coastguard Worker  tail call void @f13(float 3.800000e+01, i32 83, float 2.000000e+01, i32 25) nounwind
196*9880d681SAndroid Build Coastguard Worker  ret void
197*9880d681SAndroid Build Coastguard Worker}
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Workerdeclare void @f13(float, i32, float, i32)
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Worker; $f12, $f14, $7
203*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall14:
204*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
205*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f14, %lo
206*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $7, 16880
207*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall14() nounwind {
208*9880d681SAndroid Build Coastguard Workerentry:
209*9880d681SAndroid Build Coastguard Worker  tail call void @f14(double 3.500000e+01, float 2.900000e+01, float 3.000000e+01) nounwind
210*9880d681SAndroid Build Coastguard Worker  ret void
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Workerdeclare void @f14(double, float, float)
214*9880d681SAndroid Build Coastguard Worker
215*9880d681SAndroid Build Coastguard Worker; $f12, $f14, ($6, $7)
216*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall15:
217*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
218*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f14, %lo
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $6, $f{{[0-9]+}}
221*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $7, $f{{[0-9]+}}
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 $6, $f{{[0-9]+}}
224*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 $7, $f{{[0-9]+}}
225*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall15() nounwind {
226*9880d681SAndroid Build Coastguard Workerentry:
227*9880d681SAndroid Build Coastguard Worker  tail call void @f15(float 4.800000e+01, float 3.900000e+01, double 3.700000e+01) nounwind
228*9880d681SAndroid Build Coastguard Worker  ret void
229*9880d681SAndroid Build Coastguard Worker}
230*9880d681SAndroid Build Coastguard Worker
231*9880d681SAndroid Build Coastguard Workerdeclare void @f15(float, float, double)
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, $7
234*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall16:
235*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 62
236*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $5, 16964
237*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 64
238*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $7, 16888
239*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall16() nounwind {
240*9880d681SAndroid Build Coastguard Workerentry:
241*9880d681SAndroid Build Coastguard Worker  tail call void @f16(i32 62, float 4.900000e+01, i32 64, float 3.100000e+01) nounwind
242*9880d681SAndroid Build Coastguard Worker  ret void
243*9880d681SAndroid Build Coastguard Worker}
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Workerdeclare void @f16(i32, float, i32, float)
246*9880d681SAndroid Build Coastguard Worker
247*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, $7
248*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall17:
249*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 72
250*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $5, 17004
251*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 74
252*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $7, $zero, 35
253*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall17() nounwind {
254*9880d681SAndroid Build Coastguard Workerentry:
255*9880d681SAndroid Build Coastguard Worker  tail call void @f17(i32 72, float 5.900000e+01, i32 74, i32 35) nounwind
256*9880d681SAndroid Build Coastguard Worker  ret void
257*9880d681SAndroid Build Coastguard Worker}
258*9880d681SAndroid Build Coastguard Worker
259*9880d681SAndroid Build Coastguard Workerdeclare void @f17(i32, float, i32, i32)
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Worker; $4, $5, $6, $7
262*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall18:
263*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 82
264*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 93
265*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lui $6, 16928
266*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $7, $zero, 45
267*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall18() nounwind {
268*9880d681SAndroid Build Coastguard Workerentry:
269*9880d681SAndroid Build Coastguard Worker  tail call void @f18(i32 82, i32 93, float 4.000000e+01, i32 45) nounwind
270*9880d681SAndroid Build Coastguard Worker  ret void
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Workerdeclare void @f18(i32, i32, float, i32)
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Worker; $4, ($6, $7), stack
277*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall20:
278*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $4, $zero, 92
279*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 16($sp)
280*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 20($sp)
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $6, $f{{[0-9]+}}
283*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $7, $f{{[0-9]+}}
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 $6, $f{{[0-9]+}}
286*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 $7, $f{{[0-9]+}}
287*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall20() nounwind {
288*9880d681SAndroid Build Coastguard Workerentry:
289*9880d681SAndroid Build Coastguard Worker  tail call void @f20(i32 92, double 2.600000e+01, double 4.700000e+01) nounwind
290*9880d681SAndroid Build Coastguard Worker  ret void
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdeclare void @f20(i32, double, double)
294*9880d681SAndroid Build Coastguard Worker
295*9880d681SAndroid Build Coastguard Worker; $f12, $5
296*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall21:
297*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
298*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 103
299*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall21() nounwind {
300*9880d681SAndroid Build Coastguard Workerentry:
301*9880d681SAndroid Build Coastguard Worker  tail call void @f21(float 5.800000e+01, i32 103) nounwind
302*9880d681SAndroid Build Coastguard Worker  ret void
303*9880d681SAndroid Build Coastguard Worker}
304*9880d681SAndroid Build Coastguard Worker
305*9880d681SAndroid Build Coastguard Workerdeclare void @f21(float, i32)
306*9880d681SAndroid Build Coastguard Worker
307*9880d681SAndroid Build Coastguard Worker; $f12, $5, ($6, $7)
308*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall22:
309*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       lwc1 $f12, %lo
310*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $5, $zero, 113
311*9880d681SAndroid Build Coastguard Worker
312*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $6, $f{{[0-9]+}}
313*9880d681SAndroid Build Coastguard Worker; NO-MFHC1-DAG:  mfc1 $7, $f{{[0-9]+}}
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 $6, $f{{[0-9]+}}
316*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 $7, $f{{[0-9]+}}
317*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall22() nounwind {
318*9880d681SAndroid Build Coastguard Workerentry:
319*9880d681SAndroid Build Coastguard Worker  tail call void @f22(float 6.800000e+01, i32 113, double 5.700000e+01) nounwind
320*9880d681SAndroid Build Coastguard Worker  ret void
321*9880d681SAndroid Build Coastguard Worker}
322*9880d681SAndroid Build Coastguard Worker
323*9880d681SAndroid Build Coastguard Workerdeclare void @f22(float, i32, double)
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Worker; $f12, f6
326*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall23:
327*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
328*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 123
329*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall23() nounwind {
330*9880d681SAndroid Build Coastguard Workerentry:
331*9880d681SAndroid Build Coastguard Worker  tail call void @f23(double 4.500000e+01, i32 123) nounwind
332*9880d681SAndroid Build Coastguard Worker  ret void
333*9880d681SAndroid Build Coastguard Worker}
334*9880d681SAndroid Build Coastguard Worker
335*9880d681SAndroid Build Coastguard Workerdeclare void @f23(double, i32)
336*9880d681SAndroid Build Coastguard Worker
337*9880d681SAndroid Build Coastguard Worker; $f12,$6, stack
338*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall24:
339*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       ldc1 $f12, %lo
340*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       addiu $6, $zero, 133
341*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 16($sp)
342*9880d681SAndroid Build Coastguard Worker; ALL-DAG:       sw ${{[a-z0-9]+}}, 20($sp)
343*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall24() nounwind {
344*9880d681SAndroid Build Coastguard Workerentry:
345*9880d681SAndroid Build Coastguard Worker  tail call void @f24(double 5.500000e+01, i32 133, double 6.700000e+01) nounwind
346*9880d681SAndroid Build Coastguard Worker  ret void
347*9880d681SAndroid Build Coastguard Worker}
348*9880d681SAndroid Build Coastguard Worker
349*9880d681SAndroid Build Coastguard Workerdeclare void @f24(double, i32, double)
350*9880d681SAndroid Build Coastguard Worker
351*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: testlowercall25:
352*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lwc1 $f12, %lo
353*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lwc1 $f14, %lo
354*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lui $6
355*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lui $7
356*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lwc1 $f12, %lo
357*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      addiu $5, $zero, 83
358*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lui $6
359*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      addiu $7, $zero, 25
360*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      addiu $4, $zero, 82
361*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      addiu $5, $zero, 93
362*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      lui $6
363*9880d681SAndroid Build Coastguard Worker; ALL-DAG:      addiu $7, $zero, 45
364*9880d681SAndroid Build Coastguard Workerdefine void @testlowercall25() nounwind {
365*9880d681SAndroid Build Coastguard Workerentry:
366*9880d681SAndroid Build Coastguard Worker  tail call void @f12(float 2.800000e+01, float 1.900000e+01, float 1.000000e+01, float 2.100000e+01) nounwind
367*9880d681SAndroid Build Coastguard Worker  tail call void @f13(float 3.800000e+01, i32 83, float 2.000000e+01, i32 25) nounwind
368*9880d681SAndroid Build Coastguard Worker  tail call void @f18(i32 82, i32 93, float 4.000000e+01, i32 45) nounwind
369*9880d681SAndroid Build Coastguard Worker  ret void
370*9880d681SAndroid Build Coastguard Worker}
371