xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/mips16fpe.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=mips16 -relocation-model=pic -O3 \
2*9880d681SAndroid Build Coastguard Worker; RUN:     -verify-machineinstrs < %s | FileCheck %s -check-prefix=16hf
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker@x = global float 5.000000e+00, align 4
5*9880d681SAndroid Build Coastguard Worker@y = global float 1.500000e+01, align 4
6*9880d681SAndroid Build Coastguard Worker@xd = global double 6.000000e+00, align 8
7*9880d681SAndroid Build Coastguard Worker@yd = global double 1.800000e+01, align 8
8*9880d681SAndroid Build Coastguard Worker@two = global i32 2, align 4
9*9880d681SAndroid Build Coastguard Worker@addsf3_result = common global float 0.000000e+00, align 4
10*9880d681SAndroid Build Coastguard Worker@adddf3_result = common global double 0.000000e+00, align 8
11*9880d681SAndroid Build Coastguard Worker@subsf3_result = common global float 0.000000e+00, align 4
12*9880d681SAndroid Build Coastguard Worker@subdf3_result = common global double 0.000000e+00, align 8
13*9880d681SAndroid Build Coastguard Worker@mulsf3_result = common global float 0.000000e+00, align 4
14*9880d681SAndroid Build Coastguard Worker@muldf3_result = common global double 0.000000e+00, align 8
15*9880d681SAndroid Build Coastguard Worker@divsf3_result = common global float 0.000000e+00, align 4
16*9880d681SAndroid Build Coastguard Worker@divdf3_result = common global double 0.000000e+00, align 8
17*9880d681SAndroid Build Coastguard Worker@extendsfdf2_result = common global double 0.000000e+00, align 8
18*9880d681SAndroid Build Coastguard Worker@xd2 = global double 0x40147E6B74B4CF6A, align 8
19*9880d681SAndroid Build Coastguard Worker@truncdfsf2_result = common global float 0.000000e+00, align 4
20*9880d681SAndroid Build Coastguard Worker@fix_truncsfsi_result = common global i32 0, align 4
21*9880d681SAndroid Build Coastguard Worker@fix_truncdfsi_result = common global i32 0, align 4
22*9880d681SAndroid Build Coastguard Worker@si = global i32 -9, align 4
23*9880d681SAndroid Build Coastguard Worker@ui = global i32 9, align 4
24*9880d681SAndroid Build Coastguard Worker@floatsisf_result = common global float 0.000000e+00, align 4
25*9880d681SAndroid Build Coastguard Worker@floatsidf_result = common global double 0.000000e+00, align 8
26*9880d681SAndroid Build Coastguard Worker@floatunsisf_result = common global float 0.000000e+00, align 4
27*9880d681SAndroid Build Coastguard Worker@floatunsidf_result = common global double 0.000000e+00, align 8
28*9880d681SAndroid Build Coastguard Worker@xx = global float 5.000000e+00, align 4
29*9880d681SAndroid Build Coastguard Worker@eqsf2_result = common global i32 0, align 4
30*9880d681SAndroid Build Coastguard Worker@xxd = global double 6.000000e+00, align 8
31*9880d681SAndroid Build Coastguard Worker@eqdf2_result = common global i32 0, align 4
32*9880d681SAndroid Build Coastguard Worker@nesf2_result = common global i32 0, align 4
33*9880d681SAndroid Build Coastguard Worker@nedf2_result = common global i32 0, align 4
34*9880d681SAndroid Build Coastguard Worker@gesf2_result = common global i32 0, align 4
35*9880d681SAndroid Build Coastguard Worker@gedf2_result = common global i32 0, align 4
36*9880d681SAndroid Build Coastguard Worker@ltsf2_result = common global i32 0, align 4
37*9880d681SAndroid Build Coastguard Worker@ltdf2_result = common global i32 0, align 4
38*9880d681SAndroid Build Coastguard Worker@lesf2_result = common global i32 0, align 4
39*9880d681SAndroid Build Coastguard Worker@ledf2_result = common global i32 0, align 4
40*9880d681SAndroid Build Coastguard Worker@gtsf2_result = common global i32 0, align 4
41*9880d681SAndroid Build Coastguard Worker@gtdf2_result = common global i32 0, align 4
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Workerdefine void @test_addsf3() nounwind {
44*9880d681SAndroid Build Coastguard Workerentry:
45*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_addsf3:
46*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
47*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @y, align 4
48*9880d681SAndroid Build Coastguard Worker  %add = fadd float %0, %1
49*9880d681SAndroid Build Coastguard Worker  store float %add, float* @addsf3_result, align 4
50*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_addsf3)(${{[0-9]+}})
51*9880d681SAndroid Build Coastguard Worker  ret void
52*9880d681SAndroid Build Coastguard Worker}
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workerdefine void @test_adddf3() nounwind {
55*9880d681SAndroid Build Coastguard Workerentry:
56*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_adddf3:
57*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
58*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @yd, align 8
59*9880d681SAndroid Build Coastguard Worker  %add = fadd double %0, %1
60*9880d681SAndroid Build Coastguard Worker  store double %add, double* @adddf3_result, align 8
61*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_adddf3)(${{[0-9]+}})
62*9880d681SAndroid Build Coastguard Worker  ret void
63*9880d681SAndroid Build Coastguard Worker}
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workerdefine void @test_subsf3() nounwind {
66*9880d681SAndroid Build Coastguard Workerentry:
67*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_subsf3:
68*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
69*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @y, align 4
70*9880d681SAndroid Build Coastguard Worker  %sub = fsub float %0, %1
71*9880d681SAndroid Build Coastguard Worker  store float %sub, float* @subsf3_result, align 4
72*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_subsf3)(${{[0-9]+}})
73*9880d681SAndroid Build Coastguard Worker  ret void
74*9880d681SAndroid Build Coastguard Worker}
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerdefine void @test_subdf3() nounwind {
77*9880d681SAndroid Build Coastguard Workerentry:
78*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_subdf3:
79*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
80*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @yd, align 8
81*9880d681SAndroid Build Coastguard Worker  %sub = fsub double %0, %1
82*9880d681SAndroid Build Coastguard Worker  store double %sub, double* @subdf3_result, align 8
83*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_subdf3)(${{[0-9]+}})
84*9880d681SAndroid Build Coastguard Worker  ret void
85*9880d681SAndroid Build Coastguard Worker}
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Workerdefine void @test_mulsf3() nounwind {
88*9880d681SAndroid Build Coastguard Workerentry:
89*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_mulsf3:
90*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
91*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @y, align 4
92*9880d681SAndroid Build Coastguard Worker  %mul = fmul float %0, %1
93*9880d681SAndroid Build Coastguard Worker  store float %mul, float* @mulsf3_result, align 4
94*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_mulsf3)(${{[0-9]+}})
95*9880d681SAndroid Build Coastguard Worker  ret void
96*9880d681SAndroid Build Coastguard Worker}
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Workerdefine void @test_muldf3() nounwind {
99*9880d681SAndroid Build Coastguard Workerentry:
100*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_muldf3:
101*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
102*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @yd, align 8
103*9880d681SAndroid Build Coastguard Worker  %mul = fmul double %0, %1
104*9880d681SAndroid Build Coastguard Worker  store double %mul, double* @muldf3_result, align 8
105*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_muldf3)(${{[0-9]+}})
106*9880d681SAndroid Build Coastguard Worker  ret void
107*9880d681SAndroid Build Coastguard Worker}
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workerdefine void @test_divsf3() nounwind {
110*9880d681SAndroid Build Coastguard Workerentry:
111*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_divsf3:
112*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @y, align 4
113*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @x, align 4
114*9880d681SAndroid Build Coastguard Worker  %div = fdiv float %0, %1
115*9880d681SAndroid Build Coastguard Worker  store float %div, float* @divsf3_result, align 4
116*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_divsf3)(${{[0-9]+}})
117*9880d681SAndroid Build Coastguard Worker  ret void
118*9880d681SAndroid Build Coastguard Worker}
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workerdefine void @test_divdf3() nounwind {
121*9880d681SAndroid Build Coastguard Workerentry:
122*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_divdf3:
123*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @yd, align 8
124*9880d681SAndroid Build Coastguard Worker  %mul = fmul double %0, 2.000000e+00
125*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xd, align 8
126*9880d681SAndroid Build Coastguard Worker  %div = fdiv double %mul, %1
127*9880d681SAndroid Build Coastguard Worker  store double %div, double* @divdf3_result, align 8
128*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_divdf3)(${{[0-9]+}})
129*9880d681SAndroid Build Coastguard Worker  ret void
130*9880d681SAndroid Build Coastguard Worker}
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Workerdefine void @test_extendsfdf2() nounwind {
133*9880d681SAndroid Build Coastguard Workerentry:
134*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_extendsfdf2:
135*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
136*9880d681SAndroid Build Coastguard Worker  %conv = fpext float %0 to double
137*9880d681SAndroid Build Coastguard Worker  store double %conv, double* @extendsfdf2_result, align 8
138*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_extendsfdf2)(${{[0-9]+}})
139*9880d681SAndroid Build Coastguard Worker  ret void
140*9880d681SAndroid Build Coastguard Worker}
141*9880d681SAndroid Build Coastguard Worker
142*9880d681SAndroid Build Coastguard Workerdefine void @test_truncdfsf2() nounwind {
143*9880d681SAndroid Build Coastguard Workerentry:
144*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_truncdfsf2:
145*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd2, align 8
146*9880d681SAndroid Build Coastguard Worker  %conv = fptrunc double %0 to float
147*9880d681SAndroid Build Coastguard Worker  store float %conv, float* @truncdfsf2_result, align 4
148*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_truncdfsf2)(${{[0-9]+}})
149*9880d681SAndroid Build Coastguard Worker  ret void
150*9880d681SAndroid Build Coastguard Worker}
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Workerdefine void @test_fix_truncsfsi() nounwind {
153*9880d681SAndroid Build Coastguard Workerentry:
154*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_fix_truncsfsi:
155*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
156*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %0 to i32
157*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @fix_truncsfsi_result, align 4
158*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_fix_truncsfsi)(${{[0-9]+}})
159*9880d681SAndroid Build Coastguard Worker  ret void
160*9880d681SAndroid Build Coastguard Worker}
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Workerdefine void @test_fix_truncdfsi() nounwind {
163*9880d681SAndroid Build Coastguard Workerentry:
164*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_fix_truncdfsi:
165*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
166*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %0 to i32
167*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @fix_truncdfsi_result, align 4
168*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_fix_truncdfsi)(${{[0-9]+}})
169*9880d681SAndroid Build Coastguard Worker  ret void
170*9880d681SAndroid Build Coastguard Worker}
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Workerdefine void @test_floatsisf() nounwind {
173*9880d681SAndroid Build Coastguard Workerentry:
174*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatsisf:
175*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* @si, align 4
176*9880d681SAndroid Build Coastguard Worker  %conv = sitofp i32 %0 to float
177*9880d681SAndroid Build Coastguard Worker  store float %conv, float* @floatsisf_result, align 4
178*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_floatsisf)(${{[0-9]+}})
179*9880d681SAndroid Build Coastguard Worker  ret void
180*9880d681SAndroid Build Coastguard Worker}
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Workerdefine void @test_floatsidf() nounwind {
183*9880d681SAndroid Build Coastguard Workerentry:
184*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatsidf:
185*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* @si, align 4
186*9880d681SAndroid Build Coastguard Worker  %conv = sitofp i32 %0 to double
187*9880d681SAndroid Build Coastguard Worker  store double %conv, double* @floatsidf_result, align 8
188*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_floatsidf)(${{[0-9]+}})
189*9880d681SAndroid Build Coastguard Worker  ret void
190*9880d681SAndroid Build Coastguard Worker}
191*9880d681SAndroid Build Coastguard Worker
192*9880d681SAndroid Build Coastguard Workerdefine void @test_floatunsisf() nounwind {
193*9880d681SAndroid Build Coastguard Workerentry:
194*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatunsisf:
195*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* @ui, align 4
196*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %0 to float
197*9880d681SAndroid Build Coastguard Worker  store float %conv, float* @floatunsisf_result, align 4
198*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_floatunsisf)(${{[0-9]+}})
199*9880d681SAndroid Build Coastguard Worker  ret void
200*9880d681SAndroid Build Coastguard Worker}
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Workerdefine void @test_floatunsidf() nounwind {
203*9880d681SAndroid Build Coastguard Workerentry:
204*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatunsidf:
205*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* @ui, align 4
206*9880d681SAndroid Build Coastguard Worker  %conv = uitofp i32 %0 to double
207*9880d681SAndroid Build Coastguard Worker  store double %conv, double* @floatunsidf_result, align 8
208*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_floatunsidf)(${{[0-9]+}})
209*9880d681SAndroid Build Coastguard Worker  ret void
210*9880d681SAndroid Build Coastguard Worker}
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdefine void @test_eqsf2() nounwind {
213*9880d681SAndroid Build Coastguard Workerentry:
214*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_eqsf2:
215*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
216*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @xx, align 4
217*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq float %0, %1
218*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
219*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @eqsf2_result, align 4
220*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_eqsf2)(${{[0-9]+}})
221*9880d681SAndroid Build Coastguard Worker  ret void
222*9880d681SAndroid Build Coastguard Worker}
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Workerdefine void @test_eqdf2() nounwind {
225*9880d681SAndroid Build Coastguard Workerentry:
226*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_eqdf2:
227*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
228*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xxd, align 8
229*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq double %0, %1
230*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
231*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @eqdf2_result, align 4
232*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_eqdf2)(${{[0-9]+}})
233*9880d681SAndroid Build Coastguard Worker  ret void
234*9880d681SAndroid Build Coastguard Worker}
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Workerdefine void @test_nesf2() nounwind {
237*9880d681SAndroid Build Coastguard Workerentry:
238*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_nesf2:
239*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
240*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @y, align 4
241*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp une float %0, %1
242*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
243*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @nesf2_result, align 4
244*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_nesf2)(${{[0-9]+}})
245*9880d681SAndroid Build Coastguard Worker  ret void
246*9880d681SAndroid Build Coastguard Worker}
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workerdefine void @test_nedf2() nounwind {
249*9880d681SAndroid Build Coastguard Workerentry:
250*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_nedf2:
251*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
252*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @yd, align 8
253*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp une double %0, %1
254*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
255*9880d681SAndroid Build Coastguard Worker  store i32 %conv, i32* @nedf2_result, align 4
256*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_nedf2)(${{[0-9]+}})
257*9880d681SAndroid Build Coastguard Worker  ret void
258*9880d681SAndroid Build Coastguard Worker}
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Workerdefine void @test_gesf2() nounwind {
261*9880d681SAndroid Build Coastguard Workerentry:
262*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gesf2:
263*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
264*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @xx, align 4
265*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oge float %0, %1
266*9880d681SAndroid Build Coastguard Worker  %2 = load float, float* @y, align 4
267*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp oge float %2, %0
268*9880d681SAndroid Build Coastguard Worker  %and3 = and i1 %cmp, %cmp1
269*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and3 to i32
270*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @gesf2_result, align 4
271*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_gesf2)(${{[0-9]+}})
272*9880d681SAndroid Build Coastguard Worker  ret void
273*9880d681SAndroid Build Coastguard Worker}
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Workerdefine void @test_gedf2() nounwind {
276*9880d681SAndroid Build Coastguard Workerentry:
277*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gedf2:
278*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
279*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xxd, align 8
280*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oge double %0, %1
281*9880d681SAndroid Build Coastguard Worker  %2 = load double, double* @yd, align 8
282*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp oge double %2, %0
283*9880d681SAndroid Build Coastguard Worker  %and3 = and i1 %cmp, %cmp1
284*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and3 to i32
285*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @gedf2_result, align 4
286*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_gedf2)(${{[0-9]+}})
287*9880d681SAndroid Build Coastguard Worker  ret void
288*9880d681SAndroid Build Coastguard Worker}
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Workerdefine void @test_ltsf2() nounwind {
291*9880d681SAndroid Build Coastguard Workerentry:
292*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ltsf2:
293*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
294*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @xx, align 4
295*9880d681SAndroid Build Coastguard Worker  %lnot = fcmp uge float %0, %1
296*9880d681SAndroid Build Coastguard Worker  %2 = load float, float* @y, align 4
297*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp olt float %0, %2
298*9880d681SAndroid Build Coastguard Worker  %and2 = and i1 %lnot, %cmp1
299*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and2 to i32
300*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @ltsf2_result, align 4
301*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_ltsf2)(${{[0-9]+}})
302*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_ltsf2)(${{[0-9]+}})
303*9880d681SAndroid Build Coastguard Worker  ret void
304*9880d681SAndroid Build Coastguard Worker}
305*9880d681SAndroid Build Coastguard Worker
306*9880d681SAndroid Build Coastguard Workerdefine void @test_ltdf2() nounwind {
307*9880d681SAndroid Build Coastguard Workerentry:
308*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ltdf2:
309*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
310*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xxd, align 8
311*9880d681SAndroid Build Coastguard Worker  %lnot = fcmp uge double %0, %1
312*9880d681SAndroid Build Coastguard Worker  %2 = load double, double* @yd, align 8
313*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp olt double %0, %2
314*9880d681SAndroid Build Coastguard Worker  %and2 = and i1 %lnot, %cmp1
315*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and2 to i32
316*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @ltdf2_result, align 4
317*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_ltdf2)(${{[0-9]+}})
318*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_ltdf2)(${{[0-9]+}})
319*9880d681SAndroid Build Coastguard Worker  ret void
320*9880d681SAndroid Build Coastguard Worker}
321*9880d681SAndroid Build Coastguard Worker
322*9880d681SAndroid Build Coastguard Workerdefine void @test_lesf2() nounwind {
323*9880d681SAndroid Build Coastguard Workerentry:
324*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_lesf2:
325*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
326*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @xx, align 4
327*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ole float %0, %1
328*9880d681SAndroid Build Coastguard Worker  %2 = load float, float* @y, align 4
329*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp ole float %0, %2
330*9880d681SAndroid Build Coastguard Worker  %and3 = and i1 %cmp, %cmp1
331*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and3 to i32
332*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @lesf2_result, align 4
333*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_lesf2)(${{[0-9]+}})
334*9880d681SAndroid Build Coastguard Worker  ret void
335*9880d681SAndroid Build Coastguard Worker}
336*9880d681SAndroid Build Coastguard Worker
337*9880d681SAndroid Build Coastguard Workerdefine void @test_ledf2() nounwind {
338*9880d681SAndroid Build Coastguard Workerentry:
339*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ledf2:
340*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
341*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xxd, align 8
342*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ole double %0, %1
343*9880d681SAndroid Build Coastguard Worker  %2 = load double, double* @yd, align 8
344*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp ole double %0, %2
345*9880d681SAndroid Build Coastguard Worker  %and3 = and i1 %cmp, %cmp1
346*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and3 to i32
347*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @ledf2_result, align 4
348*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_ledf2)(${{[0-9]+}})
349*9880d681SAndroid Build Coastguard Worker  ret void
350*9880d681SAndroid Build Coastguard Worker}
351*9880d681SAndroid Build Coastguard Worker
352*9880d681SAndroid Build Coastguard Workerdefine void @test_gtsf2() nounwind {
353*9880d681SAndroid Build Coastguard Workerentry:
354*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gtsf2:
355*9880d681SAndroid Build Coastguard Worker  %0 = load float, float* @x, align 4
356*9880d681SAndroid Build Coastguard Worker  %1 = load float, float* @xx, align 4
357*9880d681SAndroid Build Coastguard Worker  %lnot = fcmp ule float %0, %1
358*9880d681SAndroid Build Coastguard Worker  %2 = load float, float* @y, align 4
359*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp ogt float %2, %0
360*9880d681SAndroid Build Coastguard Worker  %and2 = and i1 %lnot, %cmp1
361*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and2 to i32
362*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @gtsf2_result, align 4
363*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_gtsf2)(${{[0-9]+}})
364*9880d681SAndroid Build Coastguard Worker  ret void
365*9880d681SAndroid Build Coastguard Worker}
366*9880d681SAndroid Build Coastguard Worker
367*9880d681SAndroid Build Coastguard Workerdefine void @test_gtdf2() nounwind {
368*9880d681SAndroid Build Coastguard Workerentry:
369*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gtdf2:
370*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* @xd, align 8
371*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* @xxd, align 8
372*9880d681SAndroid Build Coastguard Worker  %lnot = fcmp ule double %0, %1
373*9880d681SAndroid Build Coastguard Worker  %2 = load double, double* @yd, align 8
374*9880d681SAndroid Build Coastguard Worker  %cmp1 = fcmp ogt double %2, %0
375*9880d681SAndroid Build Coastguard Worker  %and2 = and i1 %lnot, %cmp1
376*9880d681SAndroid Build Coastguard Worker  %and = zext i1 %and2 to i32
377*9880d681SAndroid Build Coastguard Worker  store i32 %and, i32* @gtdf2_result, align 4
378*9880d681SAndroid Build Coastguard Worker;16hf:  lw	${{[0-9]+}}, %call16(__mips16_gtdf2)(${{[0-9]+}})
379*9880d681SAndroid Build Coastguard Worker  ret void
380*9880d681SAndroid Build Coastguard Worker}
381*9880d681SAndroid Build Coastguard Worker
382*9880d681SAndroid Build Coastguard Worker
383