xref: /llvm-project/llvm/test/CodeGen/PowerPC/p10-setboolean-ext-fp.ll (revision 803cc3aff2ce7fe07a59289070477d0ea0c9cf09)
1*803cc3afSAmy Kwan; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*803cc3afSAmy Kwan; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \
3*803cc3afSAmy Kwan; RUN:     -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s
4*803cc3afSAmy Kwan; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \
5*803cc3afSAmy Kwan; RUN:     -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s
6*803cc3afSAmy Kwan
7*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
8*803cc3afSAmy Kwandefine signext i32 @setbc(float %a, float %b) {
9*803cc3afSAmy Kwan; CHECK-LABEL: setbc:
10*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
11*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
12*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, lt
13*803cc3afSAmy Kwan; CHECK-NEXT:    blr
14*803cc3afSAmy Kwanentry:
15*803cc3afSAmy Kwan  %cmp = fcmp olt float %a, %b
16*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
17*803cc3afSAmy Kwan  ret i32 %conv
18*803cc3afSAmy Kwan}
19*803cc3afSAmy Kwan
20*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
21*803cc3afSAmy Kwandefine signext i32 @setnbc(float %a, float %b) {
22*803cc3afSAmy Kwan; CHECK-LABEL: setnbc:
23*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
24*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
25*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, lt
26*803cc3afSAmy Kwan; CHECK-NEXT:    blr
27*803cc3afSAmy Kwanentry:
28*803cc3afSAmy Kwan  %cmp = fcmp olt float %a, %b
29*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
30*803cc3afSAmy Kwan  ret i32 %sub
31*803cc3afSAmy Kwan}
32*803cc3afSAmy Kwan
33*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
34*803cc3afSAmy Kwandefine signext i32 @setbcr(float %a, float %b) {
35*803cc3afSAmy Kwan; CHECK-LABEL: setbcr:
36*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
37*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
38*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, lt
39*803cc3afSAmy Kwan; CHECK-NEXT:    blr
40*803cc3afSAmy Kwanentry:
41*803cc3afSAmy Kwan  %cmp = fcmp uge float %a, %b
42*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
43*803cc3afSAmy Kwan  ret i32 %lnot.ext
44*803cc3afSAmy Kwan}
45*803cc3afSAmy Kwan
46*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
47*803cc3afSAmy Kwandefine signext i32 @setnbcr(float %a, float %b) {
48*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr:
49*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
50*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
51*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, lt
52*803cc3afSAmy Kwan; CHECK-NEXT:    blr
53*803cc3afSAmy Kwanentry:
54*803cc3afSAmy Kwan  %cmp = fcmp uge float %a, %b
55*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
56*803cc3afSAmy Kwan  ret i32 %sub
57*803cc3afSAmy Kwan}
58*803cc3afSAmy Kwan
59*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
60*803cc3afSAmy Kwandefine signext i64 @setbc2(float %a, float %b) {
61*803cc3afSAmy Kwan; CHECK-LABEL: setbc2:
62*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
63*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
64*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, lt
65*803cc3afSAmy Kwan; CHECK-NEXT:    blr
66*803cc3afSAmy Kwanentry:
67*803cc3afSAmy Kwan  %cmp = fcmp olt float %a, %b
68*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
69*803cc3afSAmy Kwan  ret i64 %conv
70*803cc3afSAmy Kwan}
71*803cc3afSAmy Kwan
72*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
73*803cc3afSAmy Kwandefine signext i64 @setnbc2(float %a, float %b) {
74*803cc3afSAmy Kwan; CHECK-LABEL: setnbc2:
75*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
76*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
77*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, lt
78*803cc3afSAmy Kwan; CHECK-NEXT:    blr
79*803cc3afSAmy Kwanentry:
80*803cc3afSAmy Kwan  %cmp = fcmp olt float %a, %b
81*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
82*803cc3afSAmy Kwan  ret i64 %sub
83*803cc3afSAmy Kwan}
84*803cc3afSAmy Kwan
85*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
86*803cc3afSAmy Kwandefine signext i64 @setbcr2(float %a, float %b) {
87*803cc3afSAmy Kwan; CHECK-LABEL: setbcr2:
88*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
89*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
90*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, lt
91*803cc3afSAmy Kwan; CHECK-NEXT:    blr
92*803cc3afSAmy Kwanentry:
93*803cc3afSAmy Kwan  %cmp = fcmp uge float %a, %b
94*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
95*803cc3afSAmy Kwan  ret i64 %lnot.ext
96*803cc3afSAmy Kwan}
97*803cc3afSAmy Kwan
98*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
99*803cc3afSAmy Kwandefine signext i64 @setnbcr2(float %a, float %b) {
100*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr2:
101*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
102*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
103*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, lt
104*803cc3afSAmy Kwan; CHECK-NEXT:    blr
105*803cc3afSAmy Kwanentry:
106*803cc3afSAmy Kwan  %cmp = fcmp uge float %a, %b
107*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
108*803cc3afSAmy Kwan  ret i64 %sub
109*803cc3afSAmy Kwan}
110*803cc3afSAmy Kwan
111*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
112*803cc3afSAmy Kwandefine signext i64 @setbc3(double %a, double %b) {
113*803cc3afSAmy Kwan; CHECK-LABEL: setbc3:
114*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
115*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
116*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, lt
117*803cc3afSAmy Kwan; CHECK-NEXT:    blr
118*803cc3afSAmy Kwanentry:
119*803cc3afSAmy Kwan  %cmp = fcmp olt double %a, %b
120*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
121*803cc3afSAmy Kwan  ret i64 %conv
122*803cc3afSAmy Kwan}
123*803cc3afSAmy Kwan
124*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
125*803cc3afSAmy Kwandefine signext i64 @setnbc3(double %a, double %b) {
126*803cc3afSAmy Kwan; CHECK-LABEL: setnbc3:
127*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
128*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
129*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, lt
130*803cc3afSAmy Kwan; CHECK-NEXT:    blr
131*803cc3afSAmy Kwanentry:
132*803cc3afSAmy Kwan  %cmp = fcmp olt double %a, %b
133*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
134*803cc3afSAmy Kwan  ret i64 %sub
135*803cc3afSAmy Kwan}
136*803cc3afSAmy Kwan
137*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
138*803cc3afSAmy Kwandefine signext i64 @setbcr3(double %a, double %b) {
139*803cc3afSAmy Kwan; CHECK-LABEL: setbcr3:
140*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
141*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
142*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, lt
143*803cc3afSAmy Kwan; CHECK-NEXT:    blr
144*803cc3afSAmy Kwanentry:
145*803cc3afSAmy Kwan  %cmp = fcmp uge double %a, %b
146*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
147*803cc3afSAmy Kwan  ret i64 %lnot.ext
148*803cc3afSAmy Kwan}
149*803cc3afSAmy Kwan
150*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
151*803cc3afSAmy Kwandefine signext i64 @setnbcr3(double %a, double %b) {
152*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr3:
153*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
154*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
155*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, lt
156*803cc3afSAmy Kwan; CHECK-NEXT:    blr
157*803cc3afSAmy Kwanentry:
158*803cc3afSAmy Kwan  %cmp = fcmp uge double %a, %b
159*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
160*803cc3afSAmy Kwan  ret i64 %sub
161*803cc3afSAmy Kwan}
162*803cc3afSAmy Kwan
163*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
164*803cc3afSAmy Kwandefine signext i32 @setbc4(double %a, double %b) {
165*803cc3afSAmy Kwan; CHECK-LABEL: setbc4:
166*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
167*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
168*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, lt
169*803cc3afSAmy Kwan; CHECK-NEXT:    blr
170*803cc3afSAmy Kwanentry:
171*803cc3afSAmy Kwan  %cmp = fcmp olt double %a, %b
172*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
173*803cc3afSAmy Kwan  ret i32 %conv
174*803cc3afSAmy Kwan}
175*803cc3afSAmy Kwan
176*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
177*803cc3afSAmy Kwandefine signext i32 @setnbc4(double %a, double %b) {
178*803cc3afSAmy Kwan; CHECK-LABEL: setnbc4:
179*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
180*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
181*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, lt
182*803cc3afSAmy Kwan; CHECK-NEXT:    blr
183*803cc3afSAmy Kwanentry:
184*803cc3afSAmy Kwan  %cmp = fcmp olt double %a, %b
185*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
186*803cc3afSAmy Kwan  ret i32 %sub
187*803cc3afSAmy Kwan}
188*803cc3afSAmy Kwan
189*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
190*803cc3afSAmy Kwandefine signext i32 @setbcr4(double %a, double %b) {
191*803cc3afSAmy Kwan; CHECK-LABEL: setbcr4:
192*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
193*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
194*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, lt
195*803cc3afSAmy Kwan; CHECK-NEXT:    blr
196*803cc3afSAmy Kwanentry:
197*803cc3afSAmy Kwan  %cmp = fcmp uge double %a, %b
198*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
199*803cc3afSAmy Kwan  ret i32 %lnot.ext
200*803cc3afSAmy Kwan}
201*803cc3afSAmy Kwan
202*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
203*803cc3afSAmy Kwandefine signext i32 @setnbcr4(double %a, double %b) {
204*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr4:
205*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
206*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
207*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, lt
208*803cc3afSAmy Kwan; CHECK-NEXT:    blr
209*803cc3afSAmy Kwanentry:
210*803cc3afSAmy Kwan  %cmp = fcmp uge double %a, %b
211*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
212*803cc3afSAmy Kwan  ret i32 %sub
213*803cc3afSAmy Kwan}
214*803cc3afSAmy Kwan
215*803cc3afSAmy Kwan
216*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
217*803cc3afSAmy Kwandefine signext i32 @setbc5(float %a, float %b) {
218*803cc3afSAmy Kwan; CHECK-LABEL: setbc5:
219*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
220*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
221*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, gt
222*803cc3afSAmy Kwan; CHECK-NEXT:    blr
223*803cc3afSAmy Kwanentry:
224*803cc3afSAmy Kwan  %cmp = fcmp ogt float %a, %b
225*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
226*803cc3afSAmy Kwan  ret i32 %conv
227*803cc3afSAmy Kwan}
228*803cc3afSAmy Kwan
229*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
230*803cc3afSAmy Kwandefine signext i32 @setnbc5(float %a, float %b) {
231*803cc3afSAmy Kwan; CHECK-LABEL: setnbc5:
232*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
233*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
234*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, gt
235*803cc3afSAmy Kwan; CHECK-NEXT:    blr
236*803cc3afSAmy Kwanentry:
237*803cc3afSAmy Kwan  %cmp = fcmp ogt float %a, %b
238*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
239*803cc3afSAmy Kwan  ret i32 %sub
240*803cc3afSAmy Kwan}
241*803cc3afSAmy Kwan
242*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
243*803cc3afSAmy Kwandefine signext i32 @setbcr5(float %a, float %b) {
244*803cc3afSAmy Kwan; CHECK-LABEL: setbcr5:
245*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
246*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
247*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, gt
248*803cc3afSAmy Kwan; CHECK-NEXT:    blr
249*803cc3afSAmy Kwanentry:
250*803cc3afSAmy Kwan  %cmp = fcmp ule float %a, %b
251*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
252*803cc3afSAmy Kwan  ret i32 %lnot.ext
253*803cc3afSAmy Kwan}
254*803cc3afSAmy Kwan
255*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
256*803cc3afSAmy Kwandefine signext i32 @setnbcr5(float %a, float %b) {
257*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr5:
258*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
259*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
260*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, gt
261*803cc3afSAmy Kwan; CHECK-NEXT:    blr
262*803cc3afSAmy Kwanentry:
263*803cc3afSAmy Kwan  %cmp = fcmp ule float %a, %b
264*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
265*803cc3afSAmy Kwan  ret i32 %sub
266*803cc3afSAmy Kwan}
267*803cc3afSAmy Kwan
268*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
269*803cc3afSAmy Kwandefine signext i32 @setbc6(double %a, double %b) {
270*803cc3afSAmy Kwan; CHECK-LABEL: setbc6:
271*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
272*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
273*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, gt
274*803cc3afSAmy Kwan; CHECK-NEXT:    blr
275*803cc3afSAmy Kwanentry:
276*803cc3afSAmy Kwan  %cmp = fcmp ogt double %a, %b
277*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
278*803cc3afSAmy Kwan  ret i32 %conv
279*803cc3afSAmy Kwan}
280*803cc3afSAmy Kwan
281*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
282*803cc3afSAmy Kwandefine signext i32 @setnbc6(double %a, double %b) {
283*803cc3afSAmy Kwan; CHECK-LABEL: setnbc6:
284*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
285*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
286*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, gt
287*803cc3afSAmy Kwan; CHECK-NEXT:    blr
288*803cc3afSAmy Kwanentry:
289*803cc3afSAmy Kwan  %cmp = fcmp ogt double %a, %b
290*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
291*803cc3afSAmy Kwan  ret i32 %sub
292*803cc3afSAmy Kwan}
293*803cc3afSAmy Kwan
294*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
295*803cc3afSAmy Kwandefine signext i32 @setbcr6(double %a, double %b) {
296*803cc3afSAmy Kwan; CHECK-LABEL: setbcr6:
297*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
298*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
299*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, gt
300*803cc3afSAmy Kwan; CHECK-NEXT:    blr
301*803cc3afSAmy Kwanentry:
302*803cc3afSAmy Kwan  %cmp = fcmp ule double %a, %b
303*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
304*803cc3afSAmy Kwan  ret i32 %lnot.ext
305*803cc3afSAmy Kwan}
306*803cc3afSAmy Kwan
307*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
308*803cc3afSAmy Kwandefine signext i32 @setnbcr6(double %a, double %b) {
309*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr6:
310*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
311*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
312*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, gt
313*803cc3afSAmy Kwan; CHECK-NEXT:    blr
314*803cc3afSAmy Kwanentry:
315*803cc3afSAmy Kwan  %cmp = fcmp ule double %a, %b
316*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
317*803cc3afSAmy Kwan  ret i32 %sub
318*803cc3afSAmy Kwan}
319*803cc3afSAmy Kwan
320*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
321*803cc3afSAmy Kwandefine signext i64 @setbc7(float %a, float %b) {
322*803cc3afSAmy Kwan; CHECK-LABEL: setbc7:
323*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
324*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
325*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, gt
326*803cc3afSAmy Kwan; CHECK-NEXT:    blr
327*803cc3afSAmy Kwanentry:
328*803cc3afSAmy Kwan  %cmp = fcmp ogt float %a, %b
329*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
330*803cc3afSAmy Kwan  ret i64 %conv
331*803cc3afSAmy Kwan}
332*803cc3afSAmy Kwan
333*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
334*803cc3afSAmy Kwandefine signext i64 @setnbc7(float %a, float %b) {
335*803cc3afSAmy Kwan; CHECK-LABEL: setnbc7:
336*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
337*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
338*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, gt
339*803cc3afSAmy Kwan; CHECK-NEXT:    blr
340*803cc3afSAmy Kwanentry:
341*803cc3afSAmy Kwan  %cmp = fcmp ogt float %a, %b
342*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
343*803cc3afSAmy Kwan  ret i64 %sub
344*803cc3afSAmy Kwan}
345*803cc3afSAmy Kwan
346*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
347*803cc3afSAmy Kwandefine signext i64 @setbcr7(float %a, float %b) {
348*803cc3afSAmy Kwan; CHECK-LABEL: setbcr7:
349*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
350*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
351*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, gt
352*803cc3afSAmy Kwan; CHECK-NEXT:    blr
353*803cc3afSAmy Kwanentry:
354*803cc3afSAmy Kwan  %cmp = fcmp ule float %a, %b
355*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
356*803cc3afSAmy Kwan  ret i64 %lnot.ext
357*803cc3afSAmy Kwan}
358*803cc3afSAmy Kwan
359*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
360*803cc3afSAmy Kwandefine signext i64 @setnbcr7(float %a, float %b) {
361*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr7:
362*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
363*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
364*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, gt
365*803cc3afSAmy Kwan; CHECK-NEXT:    blr
366*803cc3afSAmy Kwanentry:
367*803cc3afSAmy Kwan  %cmp = fcmp ule float %a, %b
368*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
369*803cc3afSAmy Kwan  ret i64 %sub
370*803cc3afSAmy Kwan}
371*803cc3afSAmy Kwan
372*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
373*803cc3afSAmy Kwandefine signext i64 @setbc8(double %a, double %b) {
374*803cc3afSAmy Kwan; CHECK-LABEL: setbc8:
375*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
376*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
377*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, gt
378*803cc3afSAmy Kwan; CHECK-NEXT:    blr
379*803cc3afSAmy Kwanentry:
380*803cc3afSAmy Kwan  %cmp = fcmp ogt double %a, %b
381*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
382*803cc3afSAmy Kwan  ret i64 %conv
383*803cc3afSAmy Kwan}
384*803cc3afSAmy Kwan
385*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
386*803cc3afSAmy Kwandefine signext i64 @setnbc8(double %a, double %b) {
387*803cc3afSAmy Kwan; CHECK-LABEL: setnbc8:
388*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
389*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
390*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, gt
391*803cc3afSAmy Kwan; CHECK-NEXT:    blr
392*803cc3afSAmy Kwanentry:
393*803cc3afSAmy Kwan  %cmp = fcmp ogt double %a, %b
394*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
395*803cc3afSAmy Kwan  ret i64 %sub
396*803cc3afSAmy Kwan}
397*803cc3afSAmy Kwan
398*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
399*803cc3afSAmy Kwandefine signext i64 @setbcr8(double %a, double %b) {
400*803cc3afSAmy Kwan; CHECK-LABEL: setbcr8:
401*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
402*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
403*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, gt
404*803cc3afSAmy Kwan; CHECK-NEXT:    blr
405*803cc3afSAmy Kwanentry:
406*803cc3afSAmy Kwan  %cmp = fcmp ule double %a, %b
407*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
408*803cc3afSAmy Kwan  ret i64 %lnot.ext
409*803cc3afSAmy Kwan}
410*803cc3afSAmy Kwan
411*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
412*803cc3afSAmy Kwandefine signext i64 @setnbcr8(double %a, double %b) {
413*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr8:
414*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
415*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
416*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, gt
417*803cc3afSAmy Kwan; CHECK-NEXT:    blr
418*803cc3afSAmy Kwanentry:
419*803cc3afSAmy Kwan  %cmp = fcmp ule double %a, %b
420*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
421*803cc3afSAmy Kwan  ret i64 %sub
422*803cc3afSAmy Kwan}
423*803cc3afSAmy Kwan
424*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
425*803cc3afSAmy Kwandefine signext i32 @setbc9(float %a, float %b) {
426*803cc3afSAmy Kwan; CHECK-LABEL: setbc9:
427*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
428*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
429*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, eq
430*803cc3afSAmy Kwan; CHECK-NEXT:    blr
431*803cc3afSAmy Kwanentry:
432*803cc3afSAmy Kwan  %cmp = fcmp oeq float %a, %b
433*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
434*803cc3afSAmy Kwan  ret i32 %conv
435*803cc3afSAmy Kwan}
436*803cc3afSAmy Kwan
437*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
438*803cc3afSAmy Kwandefine signext i32 @setnbc9(float %a, float %b) {
439*803cc3afSAmy Kwan; CHECK-LABEL: setnbc9:
440*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
441*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
442*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, eq
443*803cc3afSAmy Kwan; CHECK-NEXT:    blr
444*803cc3afSAmy Kwanentry:
445*803cc3afSAmy Kwan  %cmp = fcmp oeq float %a, %b
446*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
447*803cc3afSAmy Kwan  ret i32 %sub
448*803cc3afSAmy Kwan}
449*803cc3afSAmy Kwan
450*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
451*803cc3afSAmy Kwandefine signext i32 @setbcr9(float %a, float %b) {
452*803cc3afSAmy Kwan; CHECK-LABEL: setbcr9:
453*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
454*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
455*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, eq
456*803cc3afSAmy Kwan; CHECK-NEXT:    blr
457*803cc3afSAmy Kwanentry:
458*803cc3afSAmy Kwan  %cmp = fcmp une float %a, %b
459*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
460*803cc3afSAmy Kwan  ret i32 %lnot.ext
461*803cc3afSAmy Kwan}
462*803cc3afSAmy Kwan
463*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
464*803cc3afSAmy Kwandefine signext i32 @setnbcr9(float %a, float %b) {
465*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr9:
466*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
467*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
468*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, eq
469*803cc3afSAmy Kwan; CHECK-NEXT:    blr
470*803cc3afSAmy Kwanentry:
471*803cc3afSAmy Kwan  %cmp = fcmp une float %a, %b
472*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
473*803cc3afSAmy Kwan  ret i32 %sub
474*803cc3afSAmy Kwan}
475*803cc3afSAmy Kwan
476*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
477*803cc3afSAmy Kwandefine signext i32 @setbc10(double %a, double %b) {
478*803cc3afSAmy Kwan; CHECK-LABEL: setbc10:
479*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
480*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
481*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, eq
482*803cc3afSAmy Kwan; CHECK-NEXT:    blr
483*803cc3afSAmy Kwanentry:
484*803cc3afSAmy Kwan  %cmp = fcmp oeq double %a, %b
485*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
486*803cc3afSAmy Kwan  ret i32 %conv
487*803cc3afSAmy Kwan}
488*803cc3afSAmy Kwan
489*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
490*803cc3afSAmy Kwandefine signext i32 @setnbc10(double %a, double %b) {
491*803cc3afSAmy Kwan; CHECK-LABEL: setnbc10:
492*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
493*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
494*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, eq
495*803cc3afSAmy Kwan; CHECK-NEXT:    blr
496*803cc3afSAmy Kwanentry:
497*803cc3afSAmy Kwan  %cmp = fcmp oeq double %a, %b
498*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
499*803cc3afSAmy Kwan  ret i32 %sub
500*803cc3afSAmy Kwan}
501*803cc3afSAmy Kwan
502*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
503*803cc3afSAmy Kwandefine signext i32 @setbcr10(double %a, double %b) {
504*803cc3afSAmy Kwan; CHECK-LABEL: setbcr10:
505*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
506*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
507*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, eq
508*803cc3afSAmy Kwan; CHECK-NEXT:    blr
509*803cc3afSAmy Kwanentry:
510*803cc3afSAmy Kwan  %cmp = fcmp une double %a, %b
511*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
512*803cc3afSAmy Kwan  ret i32 %lnot.ext
513*803cc3afSAmy Kwan}
514*803cc3afSAmy Kwan
515*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
516*803cc3afSAmy Kwandefine signext i32 @setnbcr10(double %a, double %b) {
517*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr10:
518*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
519*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
520*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, eq
521*803cc3afSAmy Kwan; CHECK-NEXT:    blr
522*803cc3afSAmy Kwanentry:
523*803cc3afSAmy Kwan  %cmp = fcmp une double %a, %b
524*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
525*803cc3afSAmy Kwan  ret i32 %sub
526*803cc3afSAmy Kwan}
527*803cc3afSAmy Kwan
528*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
529*803cc3afSAmy Kwandefine signext i64 @setbc11(float %a, float %b) {
530*803cc3afSAmy Kwan; CHECK-LABEL: setbc11:
531*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
532*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
533*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, eq
534*803cc3afSAmy Kwan; CHECK-NEXT:    blr
535*803cc3afSAmy Kwanentry:
536*803cc3afSAmy Kwan  %cmp = fcmp oeq float %a, %b
537*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
538*803cc3afSAmy Kwan  ret i64 %conv
539*803cc3afSAmy Kwan}
540*803cc3afSAmy Kwan
541*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
542*803cc3afSAmy Kwandefine signext i64 @setnbc11(float %a, float %b) {
543*803cc3afSAmy Kwan; CHECK-LABEL: setnbc11:
544*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
545*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
546*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, eq
547*803cc3afSAmy Kwan; CHECK-NEXT:    blr
548*803cc3afSAmy Kwanentry:
549*803cc3afSAmy Kwan  %cmp = fcmp oeq float %a, %b
550*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
551*803cc3afSAmy Kwan  ret i64 %sub
552*803cc3afSAmy Kwan}
553*803cc3afSAmy Kwan
554*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
555*803cc3afSAmy Kwandefine signext i64 @setbcr11(float %a, float %b) {
556*803cc3afSAmy Kwan; CHECK-LABEL: setbcr11:
557*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
558*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
559*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, eq
560*803cc3afSAmy Kwan; CHECK-NEXT:    blr
561*803cc3afSAmy Kwanentry:
562*803cc3afSAmy Kwan  %cmp = fcmp une float %a, %b
563*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
564*803cc3afSAmy Kwan  ret i64 %lnot.ext
565*803cc3afSAmy Kwan}
566*803cc3afSAmy Kwan
567*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
568*803cc3afSAmy Kwandefine signext i64 @setnbcr11(float %a, float %b) {
569*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr11:
570*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
571*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
572*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, eq
573*803cc3afSAmy Kwan; CHECK-NEXT:    blr
574*803cc3afSAmy Kwanentry:
575*803cc3afSAmy Kwan  %cmp = fcmp une float %a, %b
576*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
577*803cc3afSAmy Kwan  ret i64 %sub
578*803cc3afSAmy Kwan}
579*803cc3afSAmy Kwan
580*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
581*803cc3afSAmy Kwandefine signext i64 @setbc12(double %a, double %b) {
582*803cc3afSAmy Kwan; CHECK-LABEL: setbc12:
583*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
584*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
585*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, eq
586*803cc3afSAmy Kwan; CHECK-NEXT:    blr
587*803cc3afSAmy Kwanentry:
588*803cc3afSAmy Kwan  %cmp = fcmp oeq double %a, %b
589*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
590*803cc3afSAmy Kwan  ret i64 %conv
591*803cc3afSAmy Kwan}
592*803cc3afSAmy Kwan
593*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
594*803cc3afSAmy Kwandefine signext i64 @setnbc12(double %a, double %b) {
595*803cc3afSAmy Kwan; CHECK-LABEL: setnbc12:
596*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
597*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
598*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, eq
599*803cc3afSAmy Kwan; CHECK-NEXT:    blr
600*803cc3afSAmy Kwanentry:
601*803cc3afSAmy Kwan  %cmp = fcmp oeq double %a, %b
602*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
603*803cc3afSAmy Kwan  ret i64 %sub
604*803cc3afSAmy Kwan}
605*803cc3afSAmy Kwan
606*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
607*803cc3afSAmy Kwandefine signext i64 @setbcr12(double %a, double %b) {
608*803cc3afSAmy Kwan; CHECK-LABEL: setbcr12:
609*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
610*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
611*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, eq
612*803cc3afSAmy Kwan; CHECK-NEXT:    blr
613*803cc3afSAmy Kwanentry:
614*803cc3afSAmy Kwan  %cmp = fcmp une double %a, %b
615*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
616*803cc3afSAmy Kwan  ret i64 %lnot.ext
617*803cc3afSAmy Kwan}
618*803cc3afSAmy Kwan
619*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
620*803cc3afSAmy Kwandefine signext i64 @setnbcr12(double %a, double %b) {
621*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr12:
622*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
623*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
624*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, eq
625*803cc3afSAmy Kwan; CHECK-NEXT:    blr
626*803cc3afSAmy Kwanentry:
627*803cc3afSAmy Kwan  %cmp = fcmp une double %a, %b
628*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
629*803cc3afSAmy Kwan  ret i64 %sub
630*803cc3afSAmy Kwan}
631*803cc3afSAmy Kwan
632*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
633*803cc3afSAmy Kwandefine signext i32 @setbc13(float %a, float %b) {
634*803cc3afSAmy Kwan; CHECK-LABEL: setbc13:
635*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
636*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
637*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, un
638*803cc3afSAmy Kwan; CHECK-NEXT:    blr
639*803cc3afSAmy Kwanentry:
640*803cc3afSAmy Kwan  %cmp = fcmp uno float %a, %b
641*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
642*803cc3afSAmy Kwan  ret i32 %conv
643*803cc3afSAmy Kwan}
644*803cc3afSAmy Kwan
645*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
646*803cc3afSAmy Kwandefine signext i32 @setnbc13(float %a, float %b) {
647*803cc3afSAmy Kwan; CHECK-LABEL: setnbc13:
648*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
649*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
650*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, un
651*803cc3afSAmy Kwan; CHECK-NEXT:    blr
652*803cc3afSAmy Kwanentry:
653*803cc3afSAmy Kwan  %cmp = fcmp uno float %a, %b
654*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
655*803cc3afSAmy Kwan  ret i32 %sub
656*803cc3afSAmy Kwan}
657*803cc3afSAmy Kwan
658*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
659*803cc3afSAmy Kwandefine signext i32 @setbcr13(float %a, float %b) {
660*803cc3afSAmy Kwan; CHECK-LABEL: setbcr13:
661*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
662*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
663*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, un
664*803cc3afSAmy Kwan; CHECK-NEXT:    blr
665*803cc3afSAmy Kwanentry:
666*803cc3afSAmy Kwan  %cmp = fcmp ord float %a, %b
667*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
668*803cc3afSAmy Kwan  ret i32 %lnot.ext
669*803cc3afSAmy Kwan}
670*803cc3afSAmy Kwan
671*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
672*803cc3afSAmy Kwandefine signext i32 @setnbcr13(float %a, float %b) {
673*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr13:
674*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
675*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
676*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, un
677*803cc3afSAmy Kwan; CHECK-NEXT:    blr
678*803cc3afSAmy Kwanentry:
679*803cc3afSAmy Kwan  %cmp = fcmp ord float %a, %b
680*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
681*803cc3afSAmy Kwan  ret i32 %sub
682*803cc3afSAmy Kwan}
683*803cc3afSAmy Kwan
684*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
685*803cc3afSAmy Kwandefine signext i32 @setbc14(double %a, double %b) {
686*803cc3afSAmy Kwan; CHECK-LABEL: setbc14:
687*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
688*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
689*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, un
690*803cc3afSAmy Kwan; CHECK-NEXT:    blr
691*803cc3afSAmy Kwanentry:
692*803cc3afSAmy Kwan  %cmp = fcmp uno double %a, %b
693*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
694*803cc3afSAmy Kwan  ret i32 %conv
695*803cc3afSAmy Kwan}
696*803cc3afSAmy Kwan
697*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
698*803cc3afSAmy Kwandefine signext i32 @setnbc14(double %a, double %b) {
699*803cc3afSAmy Kwan; CHECK-LABEL: setnbc14:
700*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
701*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
702*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, un
703*803cc3afSAmy Kwan; CHECK-NEXT:    blr
704*803cc3afSAmy Kwanentry:
705*803cc3afSAmy Kwan  %cmp = fcmp uno double %a, %b
706*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
707*803cc3afSAmy Kwan  ret i32 %sub
708*803cc3afSAmy Kwan}
709*803cc3afSAmy Kwan
710*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
711*803cc3afSAmy Kwandefine signext i32 @setbcr14(double %a, double %b) {
712*803cc3afSAmy Kwan; CHECK-LABEL: setbcr14:
713*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
714*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
715*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, un
716*803cc3afSAmy Kwan; CHECK-NEXT:    blr
717*803cc3afSAmy Kwanentry:
718*803cc3afSAmy Kwan  %cmp = fcmp ord double %a, %b
719*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i32
720*803cc3afSAmy Kwan  ret i32 %lnot.ext
721*803cc3afSAmy Kwan}
722*803cc3afSAmy Kwan
723*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
724*803cc3afSAmy Kwandefine signext i32 @setnbcr14(double %a, double %b) {
725*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr14:
726*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
727*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
728*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, un
729*803cc3afSAmy Kwan; CHECK-NEXT:    blr
730*803cc3afSAmy Kwanentry:
731*803cc3afSAmy Kwan  %cmp = fcmp ord double %a, %b
732*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i32
733*803cc3afSAmy Kwan  ret i32 %sub
734*803cc3afSAmy Kwan}
735*803cc3afSAmy Kwan
736*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
737*803cc3afSAmy Kwandefine signext i64 @setbc15(float %a, float %b) {
738*803cc3afSAmy Kwan; CHECK-LABEL: setbc15:
739*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
740*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
741*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, un
742*803cc3afSAmy Kwan; CHECK-NEXT:    blr
743*803cc3afSAmy Kwanentry:
744*803cc3afSAmy Kwan  %cmp = fcmp uno float %a, %b
745*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
746*803cc3afSAmy Kwan  ret i64 %conv
747*803cc3afSAmy Kwan}
748*803cc3afSAmy Kwan
749*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
750*803cc3afSAmy Kwandefine signext i64 @setnbc15(float %a, float %b) {
751*803cc3afSAmy Kwan; CHECK-LABEL: setnbc15:
752*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
753*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
754*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, un
755*803cc3afSAmy Kwan; CHECK-NEXT:    blr
756*803cc3afSAmy Kwanentry:
757*803cc3afSAmy Kwan  %cmp = fcmp uno float %a, %b
758*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
759*803cc3afSAmy Kwan  ret i64 %sub
760*803cc3afSAmy Kwan}
761*803cc3afSAmy Kwan
762*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
763*803cc3afSAmy Kwandefine signext i64 @setbcr15(float %a, float %b) {
764*803cc3afSAmy Kwan; CHECK-LABEL: setbcr15:
765*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
766*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
767*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, un
768*803cc3afSAmy Kwan; CHECK-NEXT:    blr
769*803cc3afSAmy Kwanentry:
770*803cc3afSAmy Kwan  %cmp = fcmp ord float %a, %b
771*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
772*803cc3afSAmy Kwan  ret i64 %lnot.ext
773*803cc3afSAmy Kwan}
774*803cc3afSAmy Kwan
775*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
776*803cc3afSAmy Kwandefine signext i64 @setnbcr15(float %a, float %b) {
777*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr15:
778*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
779*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
780*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, un
781*803cc3afSAmy Kwan; CHECK-NEXT:    blr
782*803cc3afSAmy Kwanentry:
783*803cc3afSAmy Kwan  %cmp = fcmp ord float %a, %b
784*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
785*803cc3afSAmy Kwan  ret i64 %sub
786*803cc3afSAmy Kwan}
787*803cc3afSAmy Kwan
788*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
789*803cc3afSAmy Kwandefine signext i64 @setbc16(double %a, double %b) {
790*803cc3afSAmy Kwan; CHECK-LABEL: setbc16:
791*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
792*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
793*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, un
794*803cc3afSAmy Kwan; CHECK-NEXT:    blr
795*803cc3afSAmy Kwanentry:
796*803cc3afSAmy Kwan  %cmp = fcmp uno double %a, %b
797*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
798*803cc3afSAmy Kwan  ret i64 %conv
799*803cc3afSAmy Kwan}
800*803cc3afSAmy Kwan
801*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
802*803cc3afSAmy Kwandefine signext i64 @setnbc16(double %a, double %b) {
803*803cc3afSAmy Kwan; CHECK-LABEL: setnbc16:
804*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
805*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
806*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, un
807*803cc3afSAmy Kwan; CHECK-NEXT:    blr
808*803cc3afSAmy Kwanentry:
809*803cc3afSAmy Kwan  %cmp = fcmp uno double %a, %b
810*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
811*803cc3afSAmy Kwan  ret i64 %sub
812*803cc3afSAmy Kwan}
813*803cc3afSAmy Kwan
814*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
815*803cc3afSAmy Kwandefine signext i64 @setbcr16(double %a, double %b) {
816*803cc3afSAmy Kwan; CHECK-LABEL: setbcr16:
817*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
818*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
819*803cc3afSAmy Kwan; CHECK-NEXT:    setbcr r3, un
820*803cc3afSAmy Kwan; CHECK-NEXT:    blr
821*803cc3afSAmy Kwanentry:
822*803cc3afSAmy Kwan  %cmp = fcmp ord double %a, %b
823*803cc3afSAmy Kwan  %lnot.ext = zext i1 %cmp to i64
824*803cc3afSAmy Kwan  ret i64 %lnot.ext
825*803cc3afSAmy Kwan}
826*803cc3afSAmy Kwan
827*803cc3afSAmy Kwan; Function Attrs: norecurse nounwind readnone
828*803cc3afSAmy Kwandefine signext i64 @setnbcr16(double %a, double %b) {
829*803cc3afSAmy Kwan; CHECK-LABEL: setnbcr16:
830*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
831*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
832*803cc3afSAmy Kwan; CHECK-NEXT:    setnbcr r3, un
833*803cc3afSAmy Kwan; CHECK-NEXT:    blr
834*803cc3afSAmy Kwanentry:
835*803cc3afSAmy Kwan  %cmp = fcmp ord double %a, %b
836*803cc3afSAmy Kwan  %sub = sext i1 %cmp to i64
837*803cc3afSAmy Kwan  ret i64 %sub
838*803cc3afSAmy Kwan}
839*803cc3afSAmy Kwan
840*803cc3afSAmy Kwandefine signext i32 @setbc17(float %a, float %b) {
841*803cc3afSAmy Kwan; CHECK-LABEL: setbc17:
842*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
843*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
844*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
845*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
846*803cc3afSAmy Kwan; CHECK-NEXT:    blr
847*803cc3afSAmy Kwanentry:
848*803cc3afSAmy Kwan  %cmp = fcmp ult float %a, %b
849*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
850*803cc3afSAmy Kwan  ret i32 %conv
851*803cc3afSAmy Kwan}
852*803cc3afSAmy Kwan
853*803cc3afSAmy Kwandefine signext i32 @setnbc17(float %a, float %b) {
854*803cc3afSAmy Kwan; CHECK-LABEL: setnbc17:
855*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
856*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
857*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
858*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
859*803cc3afSAmy Kwan; CHECK-NEXT:    blr
860*803cc3afSAmy Kwanentry:
861*803cc3afSAmy Kwan  %cmp = fcmp ult float %a, %b
862*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
863*803cc3afSAmy Kwan  ret i32 %conv
864*803cc3afSAmy Kwan}
865*803cc3afSAmy Kwan
866*803cc3afSAmy Kwandefine signext i32 @setbc18(double %a, double %b) {
867*803cc3afSAmy Kwan; CHECK-LABEL: setbc18:
868*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
869*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
870*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
871*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
872*803cc3afSAmy Kwan; CHECK-NEXT:    blr
873*803cc3afSAmy Kwanentry:
874*803cc3afSAmy Kwan  %cmp = fcmp ult double %a, %b
875*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
876*803cc3afSAmy Kwan  ret i32 %conv
877*803cc3afSAmy Kwan}
878*803cc3afSAmy Kwan
879*803cc3afSAmy Kwandefine signext i32 @setnbc18(double %a, double %b) {
880*803cc3afSAmy Kwan; CHECK-LABEL: setnbc18:
881*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
882*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
883*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
884*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
885*803cc3afSAmy Kwan; CHECK-NEXT:    blr
886*803cc3afSAmy Kwanentry:
887*803cc3afSAmy Kwan  %cmp = fcmp ult double %a, %b
888*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
889*803cc3afSAmy Kwan  ret i32 %conv
890*803cc3afSAmy Kwan}
891*803cc3afSAmy Kwan
892*803cc3afSAmy Kwandefine signext i64 @setbc19(float %a, float %b) {
893*803cc3afSAmy Kwan; CHECK-LABEL: setbc19:
894*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
895*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
896*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
897*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
898*803cc3afSAmy Kwan; CHECK-NEXT:    blr
899*803cc3afSAmy Kwanentry:
900*803cc3afSAmy Kwan  %cmp = fcmp ult float %a, %b
901*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
902*803cc3afSAmy Kwan  ret i64 %conv
903*803cc3afSAmy Kwan}
904*803cc3afSAmy Kwan
905*803cc3afSAmy Kwandefine signext i64 @setnbc19(float %a, float %b) {
906*803cc3afSAmy Kwan; CHECK-LABEL: setnbc19:
907*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
908*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
909*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
910*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
911*803cc3afSAmy Kwan; CHECK-NEXT:    blr
912*803cc3afSAmy Kwanentry:
913*803cc3afSAmy Kwan  %cmp = fcmp ult float %a, %b
914*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
915*803cc3afSAmy Kwan  ret i64 %conv
916*803cc3afSAmy Kwan}
917*803cc3afSAmy Kwan
918*803cc3afSAmy Kwandefine signext i64 @setbc20(double %a, double %b) {
919*803cc3afSAmy Kwan; CHECK-LABEL: setbc20:
920*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
921*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
922*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
923*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
924*803cc3afSAmy Kwan; CHECK-NEXT:    blr
925*803cc3afSAmy Kwanentry:
926*803cc3afSAmy Kwan  %cmp = fcmp ult double %a, %b
927*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
928*803cc3afSAmy Kwan  ret i64 %conv
929*803cc3afSAmy Kwan}
930*803cc3afSAmy Kwan
931*803cc3afSAmy Kwandefine signext i64 @setnbc20(double %a, double %b) {
932*803cc3afSAmy Kwan; CHECK-LABEL: setnbc20:
933*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
934*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
935*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, lt, un
936*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
937*803cc3afSAmy Kwan; CHECK-NEXT:    blr
938*803cc3afSAmy Kwanentry:
939*803cc3afSAmy Kwan  %cmp = fcmp ult double %a, %b
940*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
941*803cc3afSAmy Kwan  ret i64 %conv
942*803cc3afSAmy Kwan}
943*803cc3afSAmy Kwan
944*803cc3afSAmy Kwandefine signext i32 @setbc21(float %a, float %b) {
945*803cc3afSAmy Kwan; CHECK-LABEL: setbc21:
946*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
947*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
948*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
949*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
950*803cc3afSAmy Kwan; CHECK-NEXT:    blr
951*803cc3afSAmy Kwanentry:
952*803cc3afSAmy Kwan  %cmp = fcmp oge float %a, %b
953*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
954*803cc3afSAmy Kwan  ret i32 %conv
955*803cc3afSAmy Kwan}
956*803cc3afSAmy Kwan
957*803cc3afSAmy Kwandefine signext i32 @setnbc21(float %a, float %b) {
958*803cc3afSAmy Kwan; CHECK-LABEL: setnbc21:
959*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
960*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
961*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
962*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
963*803cc3afSAmy Kwan; CHECK-NEXT:    blr
964*803cc3afSAmy Kwanentry:
965*803cc3afSAmy Kwan  %cmp = fcmp oge float %a, %b
966*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
967*803cc3afSAmy Kwan  ret i32 %conv
968*803cc3afSAmy Kwan}
969*803cc3afSAmy Kwan
970*803cc3afSAmy Kwandefine signext i32 @setbc22(double %a, double %b) {
971*803cc3afSAmy Kwan; CHECK-LABEL: setbc22:
972*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
973*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
974*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
975*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
976*803cc3afSAmy Kwan; CHECK-NEXT:    blr
977*803cc3afSAmy Kwanentry:
978*803cc3afSAmy Kwan  %cmp = fcmp oge double %a, %b
979*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
980*803cc3afSAmy Kwan  ret i32 %conv
981*803cc3afSAmy Kwan}
982*803cc3afSAmy Kwan
983*803cc3afSAmy Kwandefine signext i32 @setnbc22(double %a, double %b) {
984*803cc3afSAmy Kwan; CHECK-LABEL: setnbc22:
985*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
986*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
987*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
988*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
989*803cc3afSAmy Kwan; CHECK-NEXT:    blr
990*803cc3afSAmy Kwanentry:
991*803cc3afSAmy Kwan  %cmp = fcmp oge double %a, %b
992*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
993*803cc3afSAmy Kwan  ret i32 %conv
994*803cc3afSAmy Kwan}
995*803cc3afSAmy Kwan
996*803cc3afSAmy Kwandefine signext i64 @setbc23(float %a, float %b) {
997*803cc3afSAmy Kwan; CHECK-LABEL: setbc23:
998*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
999*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1000*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
1001*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1002*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1003*803cc3afSAmy Kwanentry:
1004*803cc3afSAmy Kwan  %cmp = fcmp oge float %a, %b
1005*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1006*803cc3afSAmy Kwan  ret i64 %conv
1007*803cc3afSAmy Kwan}
1008*803cc3afSAmy Kwan
1009*803cc3afSAmy Kwandefine signext i64 @setnbc23(float %a, float %b) {
1010*803cc3afSAmy Kwan; CHECK-LABEL: setnbc23:
1011*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1012*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1013*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
1014*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1015*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1016*803cc3afSAmy Kwanentry:
1017*803cc3afSAmy Kwan  %cmp = fcmp oge float %a, %b
1018*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1019*803cc3afSAmy Kwan  ret i64 %conv
1020*803cc3afSAmy Kwan}
1021*803cc3afSAmy Kwan
1022*803cc3afSAmy Kwandefine signext i64 @setbc24(double %a, double %b) {
1023*803cc3afSAmy Kwan; CHECK-LABEL: setbc24:
1024*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1025*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1026*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
1027*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1028*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1029*803cc3afSAmy Kwanentry:
1030*803cc3afSAmy Kwan  %cmp = fcmp oge double %a, %b
1031*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1032*803cc3afSAmy Kwan  ret i64 %conv
1033*803cc3afSAmy Kwan}
1034*803cc3afSAmy Kwan
1035*803cc3afSAmy Kwandefine signext i64 @setnbc24(double %a, double %b) {
1036*803cc3afSAmy Kwan; CHECK-LABEL: setnbc24:
1037*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1038*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1039*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, lt
1040*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1041*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1042*803cc3afSAmy Kwanentry:
1043*803cc3afSAmy Kwan  %cmp = fcmp oge double %a, %b
1044*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1045*803cc3afSAmy Kwan  ret i64 %conv
1046*803cc3afSAmy Kwan}
1047*803cc3afSAmy Kwan
1048*803cc3afSAmy Kwandefine signext i32 @setbc25(float %a, float %b) {
1049*803cc3afSAmy Kwan; CHECK-LABEL: setbc25:
1050*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1051*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1052*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1053*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1054*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1055*803cc3afSAmy Kwanentry:
1056*803cc3afSAmy Kwan  %cmp = fcmp ole float %a, %b
1057*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1058*803cc3afSAmy Kwan  ret i32 %conv
1059*803cc3afSAmy Kwan}
1060*803cc3afSAmy Kwan
1061*803cc3afSAmy Kwandefine signext i32 @setnbc25(float %a, float %b) {
1062*803cc3afSAmy Kwan; CHECK-LABEL: setnbc25:
1063*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1064*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1065*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1066*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1067*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1068*803cc3afSAmy Kwanentry:
1069*803cc3afSAmy Kwan  %cmp = fcmp ole float %a, %b
1070*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1071*803cc3afSAmy Kwan  ret i32 %conv
1072*803cc3afSAmy Kwan}
1073*803cc3afSAmy Kwan
1074*803cc3afSAmy Kwandefine signext i32 @setbc26(double %a, double %b) {
1075*803cc3afSAmy Kwan; CHECK-LABEL: setbc26:
1076*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1077*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1078*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1079*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1080*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1081*803cc3afSAmy Kwanentry:
1082*803cc3afSAmy Kwan  %cmp = fcmp ole double %a, %b
1083*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1084*803cc3afSAmy Kwan  ret i32 %conv
1085*803cc3afSAmy Kwan}
1086*803cc3afSAmy Kwan
1087*803cc3afSAmy Kwandefine signext i32 @setnbc26(double %a, double %b) {
1088*803cc3afSAmy Kwan; CHECK-LABEL: setnbc26:
1089*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1090*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1091*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1092*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1093*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1094*803cc3afSAmy Kwanentry:
1095*803cc3afSAmy Kwan  %cmp = fcmp ole double %a, %b
1096*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1097*803cc3afSAmy Kwan  ret i32 %conv
1098*803cc3afSAmy Kwan}
1099*803cc3afSAmy Kwan
1100*803cc3afSAmy Kwandefine signext i64 @setbc27(float %a, float %b) {
1101*803cc3afSAmy Kwan; CHECK-LABEL: setbc27:
1102*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1103*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1104*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1105*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1106*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1107*803cc3afSAmy Kwanentry:
1108*803cc3afSAmy Kwan  %cmp = fcmp ole float %a, %b
1109*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1110*803cc3afSAmy Kwan  ret i64 %conv
1111*803cc3afSAmy Kwan}
1112*803cc3afSAmy Kwan
1113*803cc3afSAmy Kwandefine signext i64 @setnbc27(float %a, float %b) {
1114*803cc3afSAmy Kwan; CHECK-LABEL: setnbc27:
1115*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1116*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1117*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1118*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1119*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1120*803cc3afSAmy Kwanentry:
1121*803cc3afSAmy Kwan  %cmp = fcmp ole float %a, %b
1122*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1123*803cc3afSAmy Kwan  ret i64 %conv
1124*803cc3afSAmy Kwan}
1125*803cc3afSAmy Kwan
1126*803cc3afSAmy Kwandefine signext i64 @setbc28(double %a, double %b) {
1127*803cc3afSAmy Kwan; CHECK-LABEL: setbc28:
1128*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1129*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1130*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1131*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1132*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1133*803cc3afSAmy Kwanentry:
1134*803cc3afSAmy Kwan  %cmp = fcmp ole double %a, %b
1135*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1136*803cc3afSAmy Kwan  ret i64 %conv
1137*803cc3afSAmy Kwan}
1138*803cc3afSAmy Kwan
1139*803cc3afSAmy Kwandefine signext i64 @setnbc28(double %a, double %b) {
1140*803cc3afSAmy Kwan; CHECK-LABEL: setnbc28:
1141*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1142*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1143*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, gt
1144*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1145*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1146*803cc3afSAmy Kwanentry:
1147*803cc3afSAmy Kwan  %cmp = fcmp ole double %a, %b
1148*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1149*803cc3afSAmy Kwan  ret i64 %conv
1150*803cc3afSAmy Kwan}
1151*803cc3afSAmy Kwan
1152*803cc3afSAmy Kwandefine signext i32 @setbc29(float %a, float %b) {
1153*803cc3afSAmy Kwan; CHECK-LABEL: setbc29:
1154*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1155*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1156*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1157*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1158*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1159*803cc3afSAmy Kwanentry:
1160*803cc3afSAmy Kwan  %cmp = fcmp ugt float %a, %b
1161*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1162*803cc3afSAmy Kwan  ret i32 %conv
1163*803cc3afSAmy Kwan}
1164*803cc3afSAmy Kwan
1165*803cc3afSAmy Kwandefine signext i32 @setnbc29(float %a, float %b) {
1166*803cc3afSAmy Kwan; CHECK-LABEL: setnbc29:
1167*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1168*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1169*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1170*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1171*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1172*803cc3afSAmy Kwanentry:
1173*803cc3afSAmy Kwan  %cmp = fcmp ugt float %a, %b
1174*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1175*803cc3afSAmy Kwan  ret i32 %conv
1176*803cc3afSAmy Kwan}
1177*803cc3afSAmy Kwan
1178*803cc3afSAmy Kwandefine signext i32 @setbc30(double %a, double %b) {
1179*803cc3afSAmy Kwan; CHECK-LABEL: setbc30:
1180*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1181*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1182*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1183*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1184*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1185*803cc3afSAmy Kwanentry:
1186*803cc3afSAmy Kwan  %cmp = fcmp ugt double %a, %b
1187*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1188*803cc3afSAmy Kwan  ret i32 %conv
1189*803cc3afSAmy Kwan}
1190*803cc3afSAmy Kwan
1191*803cc3afSAmy Kwandefine signext i32 @setnbc30(double %a, double %b) {
1192*803cc3afSAmy Kwan; CHECK-LABEL: setnbc30:
1193*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1194*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1195*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1196*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1197*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1198*803cc3afSAmy Kwanentry:
1199*803cc3afSAmy Kwan  %cmp = fcmp ugt double %a, %b
1200*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1201*803cc3afSAmy Kwan  ret i32 %conv
1202*803cc3afSAmy Kwan}
1203*803cc3afSAmy Kwan
1204*803cc3afSAmy Kwandefine signext i64 @setbc31(float %a, float %b) {
1205*803cc3afSAmy Kwan; CHECK-LABEL: setbc31:
1206*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1207*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1208*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1209*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1210*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1211*803cc3afSAmy Kwanentry:
1212*803cc3afSAmy Kwan  %cmp = fcmp ugt float %a, %b
1213*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1214*803cc3afSAmy Kwan  ret i64 %conv
1215*803cc3afSAmy Kwan}
1216*803cc3afSAmy Kwan
1217*803cc3afSAmy Kwandefine signext i64 @setnbc31(float %a, float %b) {
1218*803cc3afSAmy Kwan; CHECK-LABEL: setnbc31:
1219*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1220*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1221*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1222*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1223*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1224*803cc3afSAmy Kwanentry:
1225*803cc3afSAmy Kwan  %cmp = fcmp ugt float %a, %b
1226*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1227*803cc3afSAmy Kwan  ret i64 %conv
1228*803cc3afSAmy Kwan}
1229*803cc3afSAmy Kwan
1230*803cc3afSAmy Kwandefine signext i64 @setbc32(double %a, double %b) {
1231*803cc3afSAmy Kwan; CHECK-LABEL: setbc32:
1232*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1233*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1234*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1235*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1236*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1237*803cc3afSAmy Kwanentry:
1238*803cc3afSAmy Kwan  %cmp = fcmp ugt double %a, %b
1239*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1240*803cc3afSAmy Kwan  ret i64 %conv
1241*803cc3afSAmy Kwan}
1242*803cc3afSAmy Kwan
1243*803cc3afSAmy Kwandefine signext i64 @setnbc32(double %a, double %b) {
1244*803cc3afSAmy Kwan; CHECK-LABEL: setnbc32:
1245*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1246*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1247*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, gt, un
1248*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1249*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1250*803cc3afSAmy Kwanentry:
1251*803cc3afSAmy Kwan  %cmp = fcmp ugt double %a, %b
1252*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1253*803cc3afSAmy Kwan  ret i64 %conv
1254*803cc3afSAmy Kwan}
1255*803cc3afSAmy Kwan
1256*803cc3afSAmy Kwandefine signext i32 @setbc33(float %a, float %b) {
1257*803cc3afSAmy Kwan; CHECK-LABEL: setbc33:
1258*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1259*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1260*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1261*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1262*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1263*803cc3afSAmy Kwanentry:
1264*803cc3afSAmy Kwan  %cmp = fcmp ueq float %a, %b
1265*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1266*803cc3afSAmy Kwan  ret i32 %conv
1267*803cc3afSAmy Kwan}
1268*803cc3afSAmy Kwan
1269*803cc3afSAmy Kwandefine signext i32 @setnbc33(float %a, float %b) {
1270*803cc3afSAmy Kwan; CHECK-LABEL: setnbc33:
1271*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1272*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1273*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1274*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1275*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1276*803cc3afSAmy Kwanentry:
1277*803cc3afSAmy Kwan  %cmp = fcmp ueq float %a, %b
1278*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1279*803cc3afSAmy Kwan  ret i32 %conv
1280*803cc3afSAmy Kwan}
1281*803cc3afSAmy Kwan
1282*803cc3afSAmy Kwandefine signext i32 @setbc34(double %a, double %b) {
1283*803cc3afSAmy Kwan; CHECK-LABEL: setbc34:
1284*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1285*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1286*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1287*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1288*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1289*803cc3afSAmy Kwanentry:
1290*803cc3afSAmy Kwan  %cmp = fcmp ueq double %a, %b
1291*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1292*803cc3afSAmy Kwan  ret i32 %conv
1293*803cc3afSAmy Kwan}
1294*803cc3afSAmy Kwan
1295*803cc3afSAmy Kwandefine signext i32 @setnbc34(double %a, double %b) {
1296*803cc3afSAmy Kwan; CHECK-LABEL: setnbc34:
1297*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1298*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1299*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1300*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1301*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1302*803cc3afSAmy Kwanentry:
1303*803cc3afSAmy Kwan  %cmp = fcmp ueq double %a, %b
1304*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1305*803cc3afSAmy Kwan  ret i32 %conv
1306*803cc3afSAmy Kwan}
1307*803cc3afSAmy Kwan
1308*803cc3afSAmy Kwandefine signext i64 @setbc35(float %a, float %b) {
1309*803cc3afSAmy Kwan; CHECK-LABEL: setbc35:
1310*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1311*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1312*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1313*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1314*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1315*803cc3afSAmy Kwanentry:
1316*803cc3afSAmy Kwan  %cmp = fcmp ueq float %a, %b
1317*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1318*803cc3afSAmy Kwan  ret i64 %conv
1319*803cc3afSAmy Kwan}
1320*803cc3afSAmy Kwan
1321*803cc3afSAmy Kwandefine signext i64 @setnbc35(float %a, float %b) {
1322*803cc3afSAmy Kwan; CHECK-LABEL: setnbc35:
1323*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1324*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1325*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1326*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1327*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1328*803cc3afSAmy Kwanentry:
1329*803cc3afSAmy Kwan  %cmp = fcmp ueq float %a, %b
1330*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1331*803cc3afSAmy Kwan  ret i64 %conv
1332*803cc3afSAmy Kwan}
1333*803cc3afSAmy Kwan
1334*803cc3afSAmy Kwandefine signext i64 @setbc36(double %a, double %b) {
1335*803cc3afSAmy Kwan; CHECK-LABEL: setbc36:
1336*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1337*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1338*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1339*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1340*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1341*803cc3afSAmy Kwanentry:
1342*803cc3afSAmy Kwan  %cmp = fcmp ueq double %a, %b
1343*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1344*803cc3afSAmy Kwan  ret i64 %conv
1345*803cc3afSAmy Kwan}
1346*803cc3afSAmy Kwan
1347*803cc3afSAmy Kwandefine signext i64 @setnbc36(double %a, double %b) {
1348*803cc3afSAmy Kwan; CHECK-LABEL: setnbc36:
1349*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1350*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1351*803cc3afSAmy Kwan; CHECK-NEXT:    cror 4*cr5+lt, eq, un
1352*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1353*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1354*803cc3afSAmy Kwanentry:
1355*803cc3afSAmy Kwan  %cmp = fcmp ueq double %a, %b
1356*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1357*803cc3afSAmy Kwan  ret i64 %conv
1358*803cc3afSAmy Kwan}
1359*803cc3afSAmy Kwan
1360*803cc3afSAmy Kwandefine signext i32 @setbc37(float %a, float %b) {
1361*803cc3afSAmy Kwan; CHECK-LABEL: setbc37:
1362*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1363*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1364*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1365*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1366*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1367*803cc3afSAmy Kwanentry:
1368*803cc3afSAmy Kwan  %cmp = fcmp one float %a, %b
1369*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1370*803cc3afSAmy Kwan  ret i32 %conv
1371*803cc3afSAmy Kwan}
1372*803cc3afSAmy Kwan
1373*803cc3afSAmy Kwandefine signext i32 @setnbc37(float %a, float %b) {
1374*803cc3afSAmy Kwan; CHECK-LABEL: setnbc37:
1375*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1376*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1377*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1378*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1379*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1380*803cc3afSAmy Kwanentry:
1381*803cc3afSAmy Kwan  %cmp = fcmp one float %a, %b
1382*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1383*803cc3afSAmy Kwan  ret i32 %conv
1384*803cc3afSAmy Kwan}
1385*803cc3afSAmy Kwan
1386*803cc3afSAmy Kwandefine signext i32 @setbc38(double %a, double %b) {
1387*803cc3afSAmy Kwan; CHECK-LABEL: setbc38:
1388*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1389*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1390*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1391*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1392*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1393*803cc3afSAmy Kwanentry:
1394*803cc3afSAmy Kwan  %cmp = fcmp one double %a, %b
1395*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i32
1396*803cc3afSAmy Kwan  ret i32 %conv
1397*803cc3afSAmy Kwan}
1398*803cc3afSAmy Kwan
1399*803cc3afSAmy Kwandefine signext i32 @setnbc38(double %a, double %b) {
1400*803cc3afSAmy Kwan; CHECK-LABEL: setnbc38:
1401*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1402*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1403*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1404*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1405*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1406*803cc3afSAmy Kwanentry:
1407*803cc3afSAmy Kwan  %cmp = fcmp one double %a, %b
1408*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i32
1409*803cc3afSAmy Kwan  ret i32 %conv
1410*803cc3afSAmy Kwan}
1411*803cc3afSAmy Kwan
1412*803cc3afSAmy Kwandefine signext i64 @setbc39(float %a, float %b) {
1413*803cc3afSAmy Kwan; CHECK-LABEL: setbc39:
1414*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1415*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1416*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1417*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1418*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1419*803cc3afSAmy Kwanentry:
1420*803cc3afSAmy Kwan  %cmp = fcmp one float %a, %b
1421*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1422*803cc3afSAmy Kwan  ret i64 %conv
1423*803cc3afSAmy Kwan}
1424*803cc3afSAmy Kwan
1425*803cc3afSAmy Kwandefine signext i64 @setnbc39(float %a, float %b) {
1426*803cc3afSAmy Kwan; CHECK-LABEL: setnbc39:
1427*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1428*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1429*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1430*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1431*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1432*803cc3afSAmy Kwanentry:
1433*803cc3afSAmy Kwan  %cmp = fcmp one float %a, %b
1434*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1435*803cc3afSAmy Kwan  ret i64 %conv
1436*803cc3afSAmy Kwan}
1437*803cc3afSAmy Kwan
1438*803cc3afSAmy Kwandefine signext i64 @setbc40(double %a, double %b) {
1439*803cc3afSAmy Kwan; CHECK-LABEL: setbc40:
1440*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1441*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1442*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1443*803cc3afSAmy Kwan; CHECK-NEXT:    setbc r3, 4*cr5+lt
1444*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1445*803cc3afSAmy Kwanentry:
1446*803cc3afSAmy Kwan  %cmp = fcmp one double %a, %b
1447*803cc3afSAmy Kwan  %conv = zext i1 %cmp to i64
1448*803cc3afSAmy Kwan  ret i64 %conv
1449*803cc3afSAmy Kwan}
1450*803cc3afSAmy Kwan
1451*803cc3afSAmy Kwandefine signext i64 @setnbc40(double %a, double %b) {
1452*803cc3afSAmy Kwan; CHECK-LABEL: setnbc40:
1453*803cc3afSAmy Kwan; CHECK:       # %bb.0: # %entry
1454*803cc3afSAmy Kwan; CHECK-NEXT:    fcmpu cr0, f1, f2
1455*803cc3afSAmy Kwan; CHECK-NEXT:    crnor 4*cr5+lt, un, eq
1456*803cc3afSAmy Kwan; CHECK-NEXT:    setnbc r3, 4*cr5+lt
1457*803cc3afSAmy Kwan; CHECK-NEXT:    blr
1458*803cc3afSAmy Kwanentry:
1459*803cc3afSAmy Kwan  %cmp = fcmp one double %a, %b
1460*803cc3afSAmy Kwan  %conv = sext i1 %cmp to i64
1461*803cc3afSAmy Kwan  ret i64 %conv
1462*803cc3afSAmy Kwan}
1463