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