; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc(float %a, float %b) { ; CHECK-LABEL: setbc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc(float %a, float %b) { ; CHECK-LABEL: setnbc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr(float %a, float %b) { ; CHECK-LABEL: setbcr: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge float %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr(float %a, float %b) { ; CHECK-LABEL: setnbcr: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc2(float %a, float %b) { ; CHECK-LABEL: setbc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc2(float %a, float %b) { ; CHECK-LABEL: setnbc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr2(float %a, float %b) { ; CHECK-LABEL: setbcr2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge float %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr2(float %a, float %b) { ; CHECK-LABEL: setnbcr2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc3(double %a, double %b) { ; CHECK-LABEL: setbc3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc3(double %a, double %b) { ; CHECK-LABEL: setnbc3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr3(double %a, double %b) { ; CHECK-LABEL: setbcr3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge double %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr3(double %a, double %b) { ; CHECK-LABEL: setnbcr3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc4(double %a, double %b) { ; CHECK-LABEL: setbc4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc4(double %a, double %b) { ; CHECK-LABEL: setnbc4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp olt double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr4(double %a, double %b) { ; CHECK-LABEL: setbcr4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge double %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr4(double %a, double %b) { ; CHECK-LABEL: setnbcr4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, lt ; CHECK-NEXT: blr entry: %cmp = fcmp uge double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc5(float %a, float %b) { ; CHECK-LABEL: setbc5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc5(float %a, float %b) { ; CHECK-LABEL: setnbc5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr5(float %a, float %b) { ; CHECK-LABEL: setbcr5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule float %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr5(float %a, float %b) { ; CHECK-LABEL: setnbcr5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc6(double %a, double %b) { ; CHECK-LABEL: setbc6: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc6(double %a, double %b) { ; CHECK-LABEL: setnbc6: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr6(double %a, double %b) { ; CHECK-LABEL: setbcr6: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule double %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr6(double %a, double %b) { ; CHECK-LABEL: setnbcr6: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc7(float %a, float %b) { ; CHECK-LABEL: setbc7: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc7(float %a, float %b) { ; CHECK-LABEL: setnbc7: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr7(float %a, float %b) { ; CHECK-LABEL: setbcr7: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule float %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr7(float %a, float %b) { ; CHECK-LABEL: setnbcr7: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc8(double %a, double %b) { ; CHECK-LABEL: setbc8: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc8(double %a, double %b) { ; CHECK-LABEL: setnbc8: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ogt double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr8(double %a, double %b) { ; CHECK-LABEL: setbcr8: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule double %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr8(double %a, double %b) { ; CHECK-LABEL: setnbcr8: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, gt ; CHECK-NEXT: blr entry: %cmp = fcmp ule double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc9(float %a, float %b) { ; CHECK-LABEL: setbc9: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc9(float %a, float %b) { ; CHECK-LABEL: setnbc9: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr9(float %a, float %b) { ; CHECK-LABEL: setbcr9: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une float %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr9(float %a, float %b) { ; CHECK-LABEL: setnbcr9: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc10(double %a, double %b) { ; CHECK-LABEL: setbc10: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc10(double %a, double %b) { ; CHECK-LABEL: setnbc10: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr10(double %a, double %b) { ; CHECK-LABEL: setbcr10: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une double %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr10(double %a, double %b) { ; CHECK-LABEL: setnbcr10: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc11(float %a, float %b) { ; CHECK-LABEL: setbc11: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc11(float %a, float %b) { ; CHECK-LABEL: setnbc11: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr11(float %a, float %b) { ; CHECK-LABEL: setbcr11: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une float %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr11(float %a, float %b) { ; CHECK-LABEL: setnbcr11: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc12(double %a, double %b) { ; CHECK-LABEL: setbc12: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc12(double %a, double %b) { ; CHECK-LABEL: setnbc12: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp oeq double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr12(double %a, double %b) { ; CHECK-LABEL: setbcr12: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une double %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr12(double %a, double %b) { ; CHECK-LABEL: setnbcr12: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, eq ; CHECK-NEXT: blr entry: %cmp = fcmp une double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc13(float %a, float %b) { ; CHECK-LABEL: setbc13: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc13(float %a, float %b) { ; CHECK-LABEL: setnbc13: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr13(float %a, float %b) { ; CHECK-LABEL: setbcr13: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord float %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr13(float %a, float %b) { ; CHECK-LABEL: setnbcr13: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord float %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbc14(double %a, double %b) { ; CHECK-LABEL: setbc14: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbc14(double %a, double %b) { ; CHECK-LABEL: setnbc14: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i32 @setbcr14(double %a, double %b) { ; CHECK-LABEL: setbcr14: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord double %a, %b %lnot.ext = zext i1 %cmp to i32 ret i32 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i32 @setnbcr14(double %a, double %b) { ; CHECK-LABEL: setnbcr14: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord double %a, %b %sub = sext i1 %cmp to i32 ret i32 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc15(float %a, float %b) { ; CHECK-LABEL: setbc15: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc15(float %a, float %b) { ; CHECK-LABEL: setnbc15: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr15(float %a, float %b) { ; CHECK-LABEL: setbcr15: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord float %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr15(float %a, float %b) { ; CHECK-LABEL: setnbcr15: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord float %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbc16(double %a, double %b) { ; CHECK-LABEL: setbc16: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbc16(double %a, double %b) { ; CHECK-LABEL: setnbc16: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbc r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp uno double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } ; Function Attrs: norecurse nounwind readnone define signext i64 @setbcr16(double %a, double %b) { ; CHECK-LABEL: setbcr16: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord double %a, %b %lnot.ext = zext i1 %cmp to i64 ret i64 %lnot.ext } ; Function Attrs: norecurse nounwind readnone define signext i64 @setnbcr16(double %a, double %b) { ; CHECK-LABEL: setnbcr16: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: setnbcr r3, un ; CHECK-NEXT: blr entry: %cmp = fcmp ord double %a, %b %sub = sext i1 %cmp to i64 ret i64 %sub } define signext i32 @setbc17(float %a, float %b) { ; CHECK-LABEL: setbc17: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc17(float %a, float %b) { ; CHECK-LABEL: setnbc17: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc18(double %a, double %b) { ; CHECK-LABEL: setbc18: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc18(double %a, double %b) { ; CHECK-LABEL: setnbc18: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc19(float %a, float %b) { ; CHECK-LABEL: setbc19: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc19(float %a, float %b) { ; CHECK-LABEL: setnbc19: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc20(double %a, double %b) { ; CHECK-LABEL: setbc20: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc20(double %a, double %b) { ; CHECK-LABEL: setnbc20: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, lt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ult double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i32 @setbc21(float %a, float %b) { ; CHECK-LABEL: setbc21: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc21(float %a, float %b) { ; CHECK-LABEL: setnbc21: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc22(double %a, double %b) { ; CHECK-LABEL: setbc22: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc22(double %a, double %b) { ; CHECK-LABEL: setnbc22: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc23(float %a, float %b) { ; CHECK-LABEL: setbc23: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc23(float %a, float %b) { ; CHECK-LABEL: setnbc23: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc24(double %a, double %b) { ; CHECK-LABEL: setbc24: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc24(double %a, double %b) { ; CHECK-LABEL: setnbc24: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, lt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp oge double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i32 @setbc25(float %a, float %b) { ; CHECK-LABEL: setbc25: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc25(float %a, float %b) { ; CHECK-LABEL: setnbc25: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc26(double %a, double %b) { ; CHECK-LABEL: setbc26: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc26(double %a, double %b) { ; CHECK-LABEL: setnbc26: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc27(float %a, float %b) { ; CHECK-LABEL: setbc27: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc27(float %a, float %b) { ; CHECK-LABEL: setnbc27: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc28(double %a, double %b) { ; CHECK-LABEL: setbc28: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc28(double %a, double %b) { ; CHECK-LABEL: setnbc28: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, gt ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ole double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i32 @setbc29(float %a, float %b) { ; CHECK-LABEL: setbc29: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc29(float %a, float %b) { ; CHECK-LABEL: setnbc29: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc30(double %a, double %b) { ; CHECK-LABEL: setbc30: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc30(double %a, double %b) { ; CHECK-LABEL: setnbc30: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc31(float %a, float %b) { ; CHECK-LABEL: setbc31: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc31(float %a, float %b) { ; CHECK-LABEL: setnbc31: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc32(double %a, double %b) { ; CHECK-LABEL: setbc32: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc32(double %a, double %b) { ; CHECK-LABEL: setnbc32: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, gt, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ugt double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i32 @setbc33(float %a, float %b) { ; CHECK-LABEL: setbc33: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc33(float %a, float %b) { ; CHECK-LABEL: setnbc33: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc34(double %a, double %b) { ; CHECK-LABEL: setbc34: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc34(double %a, double %b) { ; CHECK-LABEL: setnbc34: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc35(float %a, float %b) { ; CHECK-LABEL: setbc35: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc35(float %a, float %b) { ; CHECK-LABEL: setnbc35: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc36(double %a, double %b) { ; CHECK-LABEL: setbc36: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc36(double %a, double %b) { ; CHECK-LABEL: setnbc36: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: cror 4*cr5+lt, eq, un ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp ueq double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i32 @setbc37(float %a, float %b) { ; CHECK-LABEL: setbc37: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one float %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc37(float %a, float %b) { ; CHECK-LABEL: setnbc37: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one float %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i32 @setbc38(double %a, double %b) { ; CHECK-LABEL: setbc38: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one double %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define signext i32 @setnbc38(double %a, double %b) { ; CHECK-LABEL: setnbc38: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one double %a, %b %conv = sext i1 %cmp to i32 ret i32 %conv } define signext i64 @setbc39(float %a, float %b) { ; CHECK-LABEL: setbc39: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one float %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc39(float %a, float %b) { ; CHECK-LABEL: setnbc39: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one float %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv } define signext i64 @setbc40(double %a, double %b) { ; CHECK-LABEL: setbc40: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one double %a, %b %conv = zext i1 %cmp to i64 ret i64 %conv } define signext i64 @setnbc40(double %a, double %b) { ; CHECK-LABEL: setnbc40: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fcmpu cr0, f1, f2 ; CHECK-NEXT: crnor 4*cr5+lt, un, eq ; CHECK-NEXT: setnbc r3, 4*cr5+lt ; CHECK-NEXT: blr entry: %cmp = fcmp one double %a, %b %conv = sext i1 %cmp to i64 ret i64 %conv }