xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/fcmp.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -instcombine < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdeclare double @llvm.fabs.f64(double) nounwind readnone
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine i1 @test1(float %x, float %y) nounwind {
6*9880d681SAndroid Build Coastguard Worker  %ext1 = fpext float %x to double
7*9880d681SAndroid Build Coastguard Worker  %ext2 = fpext float %y to double
8*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %ext1, %ext2
9*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test1(
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp ogt float %x, %y
12*9880d681SAndroid Build Coastguard Worker}
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine i1 @test2(float %a) nounwind {
15*9880d681SAndroid Build Coastguard Worker  %ext = fpext float %a to double
16*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %ext, 1.000000e+00
17*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test2(
19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp ogt float %a, 1.0
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerdefine i1 @test3(float %a) nounwind {
23*9880d681SAndroid Build Coastguard Worker  %ext = fpext float %a to double
24*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %ext, 0x3FF0000000000001 ; more precision than float.
25*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test3(
27*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fpext float %a to double
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdefine i1 @test4(float %a) nounwind {
31*9880d681SAndroid Build Coastguard Worker  %ext = fpext float %a to double
32*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %ext, 0x36A0000000000000 ; denormal in float.
33*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
34*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test4(
35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fpext float %a to double
36*9880d681SAndroid Build Coastguard Worker}
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerdefine i1 @test5(float %a) nounwind {
39*9880d681SAndroid Build Coastguard Worker  %neg = fsub float -0.000000e+00, %a
40*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt float %neg, 1.000000e+00
41*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
42*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test5(
43*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp olt float %a, -1.0
44*9880d681SAndroid Build Coastguard Worker}
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workerdefine i1 @test6(float %x, float %y) nounwind {
47*9880d681SAndroid Build Coastguard Worker  %neg1 = fsub float -0.000000e+00, %x
48*9880d681SAndroid Build Coastguard Worker  %neg2 = fsub float -0.000000e+00, %y
49*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt float %neg1, %neg2
50*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
51*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test6(
52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp ogt float %x, %y
53*9880d681SAndroid Build Coastguard Worker}
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Workerdefine i1 @test7(float %x) nounwind readnone ssp noredzone {
56*9880d681SAndroid Build Coastguard Worker  %ext = fpext float %x to ppc_fp128
57*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt ppc_fp128 %ext, 0xM00000000000000000000000000000000
58*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
59*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test7(
60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp ogt float %x, 0.000000e+00
61*9880d681SAndroid Build Coastguard Worker}
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workerdefine float @test8(float %x) nounwind readnone optsize ssp {
64*9880d681SAndroid Build Coastguard Worker  %conv = fpext float %x to double
65*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt double %conv, 0.000000e+00
66*9880d681SAndroid Build Coastguard Worker  %conv1 = zext i1 %cmp to i32
67*9880d681SAndroid Build Coastguard Worker  %conv2 = sitofp i32 %conv1 to float
68*9880d681SAndroid Build Coastguard Worker  ret float %conv2
69*9880d681SAndroid Build Coastguard Worker; Float comparison to zero shouldn't cast to double.
70*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test8(
71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcmp olt float %x, 0.000000e+00
72*9880d681SAndroid Build Coastguard Worker}
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Workerdeclare double @fabs(double) nounwind readnone
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerdefine i32 @test9(double %a) nounwind {
77*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
78*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt double %call, 0.000000e+00
79*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
80*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
81*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test9(
82*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
83*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 0
84*9880d681SAndroid Build Coastguard Worker}
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerdefine i32 @test9_intrinsic(double %a) nounwind {
87*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
88*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt double %call, 0.000000e+00
89*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
90*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
91*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test9_intrinsic(
92*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
93*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 0
94*9880d681SAndroid Build Coastguard Worker}
95*9880d681SAndroid Build Coastguard Worker
96*9880d681SAndroid Build Coastguard Workerdefine i32 @test10(double %a) nounwind {
97*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
98*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ole double %call, 0.000000e+00
99*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
100*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
101*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test10(
102*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
103*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp oeq double %a, 0.000000e+00
104*9880d681SAndroid Build Coastguard Worker}
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Workerdefine i32 @test10_intrinsic(double %a) nounwind {
107*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
108*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ole double %call, 0.000000e+00
109*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
110*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
111*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test10_intrinsic(
112*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
113*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp oeq double %a, 0.000000e+00
114*9880d681SAndroid Build Coastguard Worker}
115*9880d681SAndroid Build Coastguard Worker
116*9880d681SAndroid Build Coastguard Workerdefine i32 @test11(double %a) nounwind {
117*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
118*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %call, 0.000000e+00
119*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
120*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
121*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test11(
122*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
123*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp one double %a, 0.000000e+00
124*9880d681SAndroid Build Coastguard Worker}
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workerdefine i32 @test11_intrinsic(double %a) nounwind {
127*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
128*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ogt double %call, 0.000000e+00
129*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
130*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
131*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test11_intrinsic(
132*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
133*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp one double %a, 0.000000e+00
134*9880d681SAndroid Build Coastguard Worker}
135*9880d681SAndroid Build Coastguard Worker
136*9880d681SAndroid Build Coastguard Workerdefine i32 @test12(double %a) nounwind {
137*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
138*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oge double %call, 0.000000e+00
139*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
140*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
141*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test12(
142*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
143*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp ord double %a, 0.000000e+00
144*9880d681SAndroid Build Coastguard Worker}
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Workerdefine i32 @test12_intrinsic(double %a) nounwind {
147*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
148*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oge double %call, 0.000000e+00
149*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
150*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
151*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test12_intrinsic(
152*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
153*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp ord double %a, 0.000000e+00
154*9880d681SAndroid Build Coastguard Worker}
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Workerdefine i32 @test13(double %a) nounwind {
157*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
158*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp une double %call, 0.000000e+00
159*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
160*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
161*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test13(
162*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
163*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp une double %a, 0.000000e+00
164*9880d681SAndroid Build Coastguard Worker}
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Workerdefine i32 @test13_intrinsic(double %a) nounwind {
167*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
168*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp une double %call, 0.000000e+00
169*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
170*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
171*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test13_intrinsic(
172*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
173*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp une double %a, 0.000000e+00
174*9880d681SAndroid Build Coastguard Worker}
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerdefine i32 @test14(double %a) nounwind {
177*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
178*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq double %call, 0.000000e+00
179*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
180*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test14(
182*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
183*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp oeq double %a, 0.000000e+00
184*9880d681SAndroid Build Coastguard Worker}
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Workerdefine i32 @test14_intrinsic(double %a) nounwind {
187*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
188*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq double %call, 0.000000e+00
189*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
190*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
191*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test14_intrinsic(
192*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
193*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp oeq double %a, 0.000000e+00
194*9880d681SAndroid Build Coastguard Worker}
195*9880d681SAndroid Build Coastguard Worker
196*9880d681SAndroid Build Coastguard Workerdefine i32 @test15(double %a) nounwind {
197*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
198*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp one double %call, 0.000000e+00
199*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
200*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
201*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test15(
202*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
203*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp one double %a, 0.000000e+00
204*9880d681SAndroid Build Coastguard Worker}
205*9880d681SAndroid Build Coastguard Worker
206*9880d681SAndroid Build Coastguard Workerdefine i32 @test15_intrinsic(double %a) nounwind {
207*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
208*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp one double %call, 0.000000e+00
209*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
210*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
211*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test15_intrinsic(
212*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
213*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp one double %a, 0.000000e+00
214*9880d681SAndroid Build Coastguard Worker}
215*9880d681SAndroid Build Coastguard Worker
216*9880d681SAndroid Build Coastguard Workerdefine i32 @test16(double %a) nounwind {
217*9880d681SAndroid Build Coastguard Worker  %call = tail call double @fabs(double %a) nounwind
218*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ueq double %call, 0.000000e+00
219*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
220*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
221*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test16(
222*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
223*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp ueq double %a, 0.000000e+00
224*9880d681SAndroid Build Coastguard Worker}
225*9880d681SAndroid Build Coastguard Worker
226*9880d681SAndroid Build Coastguard Workerdefine i32 @test16_intrinsic(double %a) nounwind {
227*9880d681SAndroid Build Coastguard Worker  %call = tail call double @llvm.fabs.f64(double %a) nounwind
228*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ueq double %call, 0.000000e+00
229*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
230*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test16_intrinsic(
232*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: fabs
233*9880d681SAndroid Build Coastguard Worker; CHECK: fcmp ueq double %a, 0.000000e+00
234*9880d681SAndroid Build Coastguard Worker}
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Worker; Don't crash.
237*9880d681SAndroid Build Coastguard Workerdefine i32 @test17(double %a, double (double)* %p) nounwind {
238*9880d681SAndroid Build Coastguard Worker  %call = tail call double %p(double %a) nounwind
239*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ueq double %call, 0.000000e+00
240*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
241*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
242*9880d681SAndroid Build Coastguard Worker}
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Worker; Can fold fcmp with undef on one side by choosing NaN for the undef
245*9880d681SAndroid Build Coastguard Workerdefine i32 @test18_undef_unordered(float %a) nounwind {
246*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test18_undef_unordered
247*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 1
248*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ueq float %a, undef
249*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
250*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
251*9880d681SAndroid Build Coastguard Worker}
252*9880d681SAndroid Build Coastguard Worker; Can fold fcmp with undef on one side by choosing NaN for the undef
253*9880d681SAndroid Build Coastguard Workerdefine i32 @test18_undef_ordered(float %a) nounwind {
254*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test18_undef_ordered
255*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 0
256*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq float %a, undef
257*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
258*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
259*9880d681SAndroid Build Coastguard Worker}
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Worker; Can fold fcmp with undef on both side
262*9880d681SAndroid Build Coastguard Worker;   fcmp u_pred undef, undef -> true
263*9880d681SAndroid Build Coastguard Worker;   fcmp o_pred undef, undef -> false
264*9880d681SAndroid Build Coastguard Worker; because whatever you choose for the first undef
265*9880d681SAndroid Build Coastguard Worker; you can choose NaN for the other undef
266*9880d681SAndroid Build Coastguard Workerdefine i1 @test19_undef_unordered() nounwind {
267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test19_undef
268*9880d681SAndroid Build Coastguard Worker; CHECK: ret i1 true
269*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp ueq float undef, undef
270*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Workerdefine i1 @test19_undef_ordered() nounwind {
273*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test19_undef
274*9880d681SAndroid Build Coastguard Worker; CHECK: ret i1 false
275*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp oeq float undef, undef
276*9880d681SAndroid Build Coastguard Worker  ret i1 %cmp
277*9880d681SAndroid Build Coastguard Worker}
278