1463 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \3; RUN: -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \5; RUN: -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s6 7; Function Attrs: norecurse nounwind readnone8define signext i32 @setbc(float %a, float %b) {9; CHECK-LABEL: setbc:10; CHECK: # %bb.0: # %entry11; CHECK-NEXT: fcmpu cr0, f1, f212; CHECK-NEXT: setbc r3, lt13; CHECK-NEXT: blr14entry:15 %cmp = fcmp olt float %a, %b16 %conv = zext i1 %cmp to i3217 ret i32 %conv18}19 20; Function Attrs: norecurse nounwind readnone21define signext i32 @setnbc(float %a, float %b) {22; CHECK-LABEL: setnbc:23; CHECK: # %bb.0: # %entry24; CHECK-NEXT: fcmpu cr0, f1, f225; CHECK-NEXT: setnbc r3, lt26; CHECK-NEXT: blr27entry:28 %cmp = fcmp olt float %a, %b29 %sub = sext i1 %cmp to i3230 ret i32 %sub31}32 33; Function Attrs: norecurse nounwind readnone34define signext i32 @setbcr(float %a, float %b) {35; CHECK-LABEL: setbcr:36; CHECK: # %bb.0: # %entry37; CHECK-NEXT: fcmpu cr0, f1, f238; CHECK-NEXT: setbcr r3, lt39; CHECK-NEXT: blr40entry:41 %cmp = fcmp uge float %a, %b42 %lnot.ext = zext i1 %cmp to i3243 ret i32 %lnot.ext44}45 46; Function Attrs: norecurse nounwind readnone47define signext i32 @setnbcr(float %a, float %b) {48; CHECK-LABEL: setnbcr:49; CHECK: # %bb.0: # %entry50; CHECK-NEXT: fcmpu cr0, f1, f251; CHECK-NEXT: setnbcr r3, lt52; CHECK-NEXT: blr53entry:54 %cmp = fcmp uge float %a, %b55 %sub = sext i1 %cmp to i3256 ret i32 %sub57}58 59; Function Attrs: norecurse nounwind readnone60define signext i64 @setbc2(float %a, float %b) {61; CHECK-LABEL: setbc2:62; CHECK: # %bb.0: # %entry63; CHECK-NEXT: fcmpu cr0, f1, f264; CHECK-NEXT: setbc r3, lt65; CHECK-NEXT: blr66entry:67 %cmp = fcmp olt float %a, %b68 %conv = zext i1 %cmp to i6469 ret i64 %conv70}71 72; Function Attrs: norecurse nounwind readnone73define signext i64 @setnbc2(float %a, float %b) {74; CHECK-LABEL: setnbc2:75; CHECK: # %bb.0: # %entry76; CHECK-NEXT: fcmpu cr0, f1, f277; CHECK-NEXT: setnbc r3, lt78; CHECK-NEXT: blr79entry:80 %cmp = fcmp olt float %a, %b81 %sub = sext i1 %cmp to i6482 ret i64 %sub83}84 85; Function Attrs: norecurse nounwind readnone86define signext i64 @setbcr2(float %a, float %b) {87; CHECK-LABEL: setbcr2:88; CHECK: # %bb.0: # %entry89; CHECK-NEXT: fcmpu cr0, f1, f290; CHECK-NEXT: setbcr r3, lt91; CHECK-NEXT: blr92entry:93 %cmp = fcmp uge float %a, %b94 %lnot.ext = zext i1 %cmp to i6495 ret i64 %lnot.ext96}97 98; Function Attrs: norecurse nounwind readnone99define signext i64 @setnbcr2(float %a, float %b) {100; CHECK-LABEL: setnbcr2:101; CHECK: # %bb.0: # %entry102; CHECK-NEXT: fcmpu cr0, f1, f2103; CHECK-NEXT: setnbcr r3, lt104; CHECK-NEXT: blr105entry:106 %cmp = fcmp uge float %a, %b107 %sub = sext i1 %cmp to i64108 ret i64 %sub109}110 111; Function Attrs: norecurse nounwind readnone112define signext i64 @setbc3(double %a, double %b) {113; CHECK-LABEL: setbc3:114; CHECK: # %bb.0: # %entry115; CHECK-NEXT: fcmpu cr0, f1, f2116; CHECK-NEXT: setbc r3, lt117; CHECK-NEXT: blr118entry:119 %cmp = fcmp olt double %a, %b120 %conv = zext i1 %cmp to i64121 ret i64 %conv122}123 124; Function Attrs: norecurse nounwind readnone125define signext i64 @setnbc3(double %a, double %b) {126; CHECK-LABEL: setnbc3:127; CHECK: # %bb.0: # %entry128; CHECK-NEXT: fcmpu cr0, f1, f2129; CHECK-NEXT: setnbc r3, lt130; CHECK-NEXT: blr131entry:132 %cmp = fcmp olt double %a, %b133 %sub = sext i1 %cmp to i64134 ret i64 %sub135}136 137; Function Attrs: norecurse nounwind readnone138define signext i64 @setbcr3(double %a, double %b) {139; CHECK-LABEL: setbcr3:140; CHECK: # %bb.0: # %entry141; CHECK-NEXT: fcmpu cr0, f1, f2142; CHECK-NEXT: setbcr r3, lt143; CHECK-NEXT: blr144entry:145 %cmp = fcmp uge double %a, %b146 %lnot.ext = zext i1 %cmp to i64147 ret i64 %lnot.ext148}149 150; Function Attrs: norecurse nounwind readnone151define signext i64 @setnbcr3(double %a, double %b) {152; CHECK-LABEL: setnbcr3:153; CHECK: # %bb.0: # %entry154; CHECK-NEXT: fcmpu cr0, f1, f2155; CHECK-NEXT: setnbcr r3, lt156; CHECK-NEXT: blr157entry:158 %cmp = fcmp uge double %a, %b159 %sub = sext i1 %cmp to i64160 ret i64 %sub161}162 163; Function Attrs: norecurse nounwind readnone164define signext i32 @setbc4(double %a, double %b) {165; CHECK-LABEL: setbc4:166; CHECK: # %bb.0: # %entry167; CHECK-NEXT: fcmpu cr0, f1, f2168; CHECK-NEXT: setbc r3, lt169; CHECK-NEXT: blr170entry:171 %cmp = fcmp olt double %a, %b172 %conv = zext i1 %cmp to i32173 ret i32 %conv174}175 176; Function Attrs: norecurse nounwind readnone177define signext i32 @setnbc4(double %a, double %b) {178; CHECK-LABEL: setnbc4:179; CHECK: # %bb.0: # %entry180; CHECK-NEXT: fcmpu cr0, f1, f2181; CHECK-NEXT: setnbc r3, lt182; CHECK-NEXT: blr183entry:184 %cmp = fcmp olt double %a, %b185 %sub = sext i1 %cmp to i32186 ret i32 %sub187}188 189; Function Attrs: norecurse nounwind readnone190define signext i32 @setbcr4(double %a, double %b) {191; CHECK-LABEL: setbcr4:192; CHECK: # %bb.0: # %entry193; CHECK-NEXT: fcmpu cr0, f1, f2194; CHECK-NEXT: setbcr r3, lt195; CHECK-NEXT: blr196entry:197 %cmp = fcmp uge double %a, %b198 %lnot.ext = zext i1 %cmp to i32199 ret i32 %lnot.ext200}201 202; Function Attrs: norecurse nounwind readnone203define signext i32 @setnbcr4(double %a, double %b) {204; CHECK-LABEL: setnbcr4:205; CHECK: # %bb.0: # %entry206; CHECK-NEXT: fcmpu cr0, f1, f2207; CHECK-NEXT: setnbcr r3, lt208; CHECK-NEXT: blr209entry:210 %cmp = fcmp uge double %a, %b211 %sub = sext i1 %cmp to i32212 ret i32 %sub213}214 215 216; Function Attrs: norecurse nounwind readnone217define signext i32 @setbc5(float %a, float %b) {218; CHECK-LABEL: setbc5:219; CHECK: # %bb.0: # %entry220; CHECK-NEXT: fcmpu cr0, f1, f2221; CHECK-NEXT: setbc r3, gt222; CHECK-NEXT: blr223entry:224 %cmp = fcmp ogt float %a, %b225 %conv = zext i1 %cmp to i32226 ret i32 %conv227}228 229; Function Attrs: norecurse nounwind readnone230define signext i32 @setnbc5(float %a, float %b) {231; CHECK-LABEL: setnbc5:232; CHECK: # %bb.0: # %entry233; CHECK-NEXT: fcmpu cr0, f1, f2234; CHECK-NEXT: setnbc r3, gt235; CHECK-NEXT: blr236entry:237 %cmp = fcmp ogt float %a, %b238 %sub = sext i1 %cmp to i32239 ret i32 %sub240}241 242; Function Attrs: norecurse nounwind readnone243define signext i32 @setbcr5(float %a, float %b) {244; CHECK-LABEL: setbcr5:245; CHECK: # %bb.0: # %entry246; CHECK-NEXT: fcmpu cr0, f1, f2247; CHECK-NEXT: setbcr r3, gt248; CHECK-NEXT: blr249entry:250 %cmp = fcmp ule float %a, %b251 %lnot.ext = zext i1 %cmp to i32252 ret i32 %lnot.ext253}254 255; Function Attrs: norecurse nounwind readnone256define signext i32 @setnbcr5(float %a, float %b) {257; CHECK-LABEL: setnbcr5:258; CHECK: # %bb.0: # %entry259; CHECK-NEXT: fcmpu cr0, f1, f2260; CHECK-NEXT: setnbcr r3, gt261; CHECK-NEXT: blr262entry:263 %cmp = fcmp ule float %a, %b264 %sub = sext i1 %cmp to i32265 ret i32 %sub266}267 268; Function Attrs: norecurse nounwind readnone269define signext i32 @setbc6(double %a, double %b) {270; CHECK-LABEL: setbc6:271; CHECK: # %bb.0: # %entry272; CHECK-NEXT: fcmpu cr0, f1, f2273; CHECK-NEXT: setbc r3, gt274; CHECK-NEXT: blr275entry:276 %cmp = fcmp ogt double %a, %b277 %conv = zext i1 %cmp to i32278 ret i32 %conv279}280 281; Function Attrs: norecurse nounwind readnone282define signext i32 @setnbc6(double %a, double %b) {283; CHECK-LABEL: setnbc6:284; CHECK: # %bb.0: # %entry285; CHECK-NEXT: fcmpu cr0, f1, f2286; CHECK-NEXT: setnbc r3, gt287; CHECK-NEXT: blr288entry:289 %cmp = fcmp ogt double %a, %b290 %sub = sext i1 %cmp to i32291 ret i32 %sub292}293 294; Function Attrs: norecurse nounwind readnone295define signext i32 @setbcr6(double %a, double %b) {296; CHECK-LABEL: setbcr6:297; CHECK: # %bb.0: # %entry298; CHECK-NEXT: fcmpu cr0, f1, f2299; CHECK-NEXT: setbcr r3, gt300; CHECK-NEXT: blr301entry:302 %cmp = fcmp ule double %a, %b303 %lnot.ext = zext i1 %cmp to i32304 ret i32 %lnot.ext305}306 307; Function Attrs: norecurse nounwind readnone308define signext i32 @setnbcr6(double %a, double %b) {309; CHECK-LABEL: setnbcr6:310; CHECK: # %bb.0: # %entry311; CHECK-NEXT: fcmpu cr0, f1, f2312; CHECK-NEXT: setnbcr r3, gt313; CHECK-NEXT: blr314entry:315 %cmp = fcmp ule double %a, %b316 %sub = sext i1 %cmp to i32317 ret i32 %sub318}319 320; Function Attrs: norecurse nounwind readnone321define signext i64 @setbc7(float %a, float %b) {322; CHECK-LABEL: setbc7:323; CHECK: # %bb.0: # %entry324; CHECK-NEXT: fcmpu cr0, f1, f2325; CHECK-NEXT: setbc r3, gt326; CHECK-NEXT: blr327entry:328 %cmp = fcmp ogt float %a, %b329 %conv = zext i1 %cmp to i64330 ret i64 %conv331}332 333; Function Attrs: norecurse nounwind readnone334define signext i64 @setnbc7(float %a, float %b) {335; CHECK-LABEL: setnbc7:336; CHECK: # %bb.0: # %entry337; CHECK-NEXT: fcmpu cr0, f1, f2338; CHECK-NEXT: setnbc r3, gt339; CHECK-NEXT: blr340entry:341 %cmp = fcmp ogt float %a, %b342 %sub = sext i1 %cmp to i64343 ret i64 %sub344}345 346; Function Attrs: norecurse nounwind readnone347define signext i64 @setbcr7(float %a, float %b) {348; CHECK-LABEL: setbcr7:349; CHECK: # %bb.0: # %entry350; CHECK-NEXT: fcmpu cr0, f1, f2351; CHECK-NEXT: setbcr r3, gt352; CHECK-NEXT: blr353entry:354 %cmp = fcmp ule float %a, %b355 %lnot.ext = zext i1 %cmp to i64356 ret i64 %lnot.ext357}358 359; Function Attrs: norecurse nounwind readnone360define signext i64 @setnbcr7(float %a, float %b) {361; CHECK-LABEL: setnbcr7:362; CHECK: # %bb.0: # %entry363; CHECK-NEXT: fcmpu cr0, f1, f2364; CHECK-NEXT: setnbcr r3, gt365; CHECK-NEXT: blr366entry:367 %cmp = fcmp ule float %a, %b368 %sub = sext i1 %cmp to i64369 ret i64 %sub370}371 372; Function Attrs: norecurse nounwind readnone373define signext i64 @setbc8(double %a, double %b) {374; CHECK-LABEL: setbc8:375; CHECK: # %bb.0: # %entry376; CHECK-NEXT: fcmpu cr0, f1, f2377; CHECK-NEXT: setbc r3, gt378; CHECK-NEXT: blr379entry:380 %cmp = fcmp ogt double %a, %b381 %conv = zext i1 %cmp to i64382 ret i64 %conv383}384 385; Function Attrs: norecurse nounwind readnone386define signext i64 @setnbc8(double %a, double %b) {387; CHECK-LABEL: setnbc8:388; CHECK: # %bb.0: # %entry389; CHECK-NEXT: fcmpu cr0, f1, f2390; CHECK-NEXT: setnbc r3, gt391; CHECK-NEXT: blr392entry:393 %cmp = fcmp ogt double %a, %b394 %sub = sext i1 %cmp to i64395 ret i64 %sub396}397 398; Function Attrs: norecurse nounwind readnone399define signext i64 @setbcr8(double %a, double %b) {400; CHECK-LABEL: setbcr8:401; CHECK: # %bb.0: # %entry402; CHECK-NEXT: fcmpu cr0, f1, f2403; CHECK-NEXT: setbcr r3, gt404; CHECK-NEXT: blr405entry:406 %cmp = fcmp ule double %a, %b407 %lnot.ext = zext i1 %cmp to i64408 ret i64 %lnot.ext409}410 411; Function Attrs: norecurse nounwind readnone412define signext i64 @setnbcr8(double %a, double %b) {413; CHECK-LABEL: setnbcr8:414; CHECK: # %bb.0: # %entry415; CHECK-NEXT: fcmpu cr0, f1, f2416; CHECK-NEXT: setnbcr r3, gt417; CHECK-NEXT: blr418entry:419 %cmp = fcmp ule double %a, %b420 %sub = sext i1 %cmp to i64421 ret i64 %sub422}423 424; Function Attrs: norecurse nounwind readnone425define signext i32 @setbc9(float %a, float %b) {426; CHECK-LABEL: setbc9:427; CHECK: # %bb.0: # %entry428; CHECK-NEXT: fcmpu cr0, f1, f2429; CHECK-NEXT: setbc r3, eq430; CHECK-NEXT: blr431entry:432 %cmp = fcmp oeq float %a, %b433 %conv = zext i1 %cmp to i32434 ret i32 %conv435}436 437; Function Attrs: norecurse nounwind readnone438define signext i32 @setnbc9(float %a, float %b) {439; CHECK-LABEL: setnbc9:440; CHECK: # %bb.0: # %entry441; CHECK-NEXT: fcmpu cr0, f1, f2442; CHECK-NEXT: setnbc r3, eq443; CHECK-NEXT: blr444entry:445 %cmp = fcmp oeq float %a, %b446 %sub = sext i1 %cmp to i32447 ret i32 %sub448}449 450; Function Attrs: norecurse nounwind readnone451define signext i32 @setbcr9(float %a, float %b) {452; CHECK-LABEL: setbcr9:453; CHECK: # %bb.0: # %entry454; CHECK-NEXT: fcmpu cr0, f1, f2455; CHECK-NEXT: setbcr r3, eq456; CHECK-NEXT: blr457entry:458 %cmp = fcmp une float %a, %b459 %lnot.ext = zext i1 %cmp to i32460 ret i32 %lnot.ext461}462 463; Function Attrs: norecurse nounwind readnone464define signext i32 @setnbcr9(float %a, float %b) {465; CHECK-LABEL: setnbcr9:466; CHECK: # %bb.0: # %entry467; CHECK-NEXT: fcmpu cr0, f1, f2468; CHECK-NEXT: setnbcr r3, eq469; CHECK-NEXT: blr470entry:471 %cmp = fcmp une float %a, %b472 %sub = sext i1 %cmp to i32473 ret i32 %sub474}475 476; Function Attrs: norecurse nounwind readnone477define signext i32 @setbc10(double %a, double %b) {478; CHECK-LABEL: setbc10:479; CHECK: # %bb.0: # %entry480; CHECK-NEXT: fcmpu cr0, f1, f2481; CHECK-NEXT: setbc r3, eq482; CHECK-NEXT: blr483entry:484 %cmp = fcmp oeq double %a, %b485 %conv = zext i1 %cmp to i32486 ret i32 %conv487}488 489; Function Attrs: norecurse nounwind readnone490define signext i32 @setnbc10(double %a, double %b) {491; CHECK-LABEL: setnbc10:492; CHECK: # %bb.0: # %entry493; CHECK-NEXT: fcmpu cr0, f1, f2494; CHECK-NEXT: setnbc r3, eq495; CHECK-NEXT: blr496entry:497 %cmp = fcmp oeq double %a, %b498 %sub = sext i1 %cmp to i32499 ret i32 %sub500}501 502; Function Attrs: norecurse nounwind readnone503define signext i32 @setbcr10(double %a, double %b) {504; CHECK-LABEL: setbcr10:505; CHECK: # %bb.0: # %entry506; CHECK-NEXT: fcmpu cr0, f1, f2507; CHECK-NEXT: setbcr r3, eq508; CHECK-NEXT: blr509entry:510 %cmp = fcmp une double %a, %b511 %lnot.ext = zext i1 %cmp to i32512 ret i32 %lnot.ext513}514 515; Function Attrs: norecurse nounwind readnone516define signext i32 @setnbcr10(double %a, double %b) {517; CHECK-LABEL: setnbcr10:518; CHECK: # %bb.0: # %entry519; CHECK-NEXT: fcmpu cr0, f1, f2520; CHECK-NEXT: setnbcr r3, eq521; CHECK-NEXT: blr522entry:523 %cmp = fcmp une double %a, %b524 %sub = sext i1 %cmp to i32525 ret i32 %sub526}527 528; Function Attrs: norecurse nounwind readnone529define signext i64 @setbc11(float %a, float %b) {530; CHECK-LABEL: setbc11:531; CHECK: # %bb.0: # %entry532; CHECK-NEXT: fcmpu cr0, f1, f2533; CHECK-NEXT: setbc r3, eq534; CHECK-NEXT: blr535entry:536 %cmp = fcmp oeq float %a, %b537 %conv = zext i1 %cmp to i64538 ret i64 %conv539}540 541; Function Attrs: norecurse nounwind readnone542define signext i64 @setnbc11(float %a, float %b) {543; CHECK-LABEL: setnbc11:544; CHECK: # %bb.0: # %entry545; CHECK-NEXT: fcmpu cr0, f1, f2546; CHECK-NEXT: setnbc r3, eq547; CHECK-NEXT: blr548entry:549 %cmp = fcmp oeq float %a, %b550 %sub = sext i1 %cmp to i64551 ret i64 %sub552}553 554; Function Attrs: norecurse nounwind readnone555define signext i64 @setbcr11(float %a, float %b) {556; CHECK-LABEL: setbcr11:557; CHECK: # %bb.0: # %entry558; CHECK-NEXT: fcmpu cr0, f1, f2559; CHECK-NEXT: setbcr r3, eq560; CHECK-NEXT: blr561entry:562 %cmp = fcmp une float %a, %b563 %lnot.ext = zext i1 %cmp to i64564 ret i64 %lnot.ext565}566 567; Function Attrs: norecurse nounwind readnone568define signext i64 @setnbcr11(float %a, float %b) {569; CHECK-LABEL: setnbcr11:570; CHECK: # %bb.0: # %entry571; CHECK-NEXT: fcmpu cr0, f1, f2572; CHECK-NEXT: setnbcr r3, eq573; CHECK-NEXT: blr574entry:575 %cmp = fcmp une float %a, %b576 %sub = sext i1 %cmp to i64577 ret i64 %sub578}579 580; Function Attrs: norecurse nounwind readnone581define signext i64 @setbc12(double %a, double %b) {582; CHECK-LABEL: setbc12:583; CHECK: # %bb.0: # %entry584; CHECK-NEXT: fcmpu cr0, f1, f2585; CHECK-NEXT: setbc r3, eq586; CHECK-NEXT: blr587entry:588 %cmp = fcmp oeq double %a, %b589 %conv = zext i1 %cmp to i64590 ret i64 %conv591}592 593; Function Attrs: norecurse nounwind readnone594define signext i64 @setnbc12(double %a, double %b) {595; CHECK-LABEL: setnbc12:596; CHECK: # %bb.0: # %entry597; CHECK-NEXT: fcmpu cr0, f1, f2598; CHECK-NEXT: setnbc r3, eq599; CHECK-NEXT: blr600entry:601 %cmp = fcmp oeq double %a, %b602 %sub = sext i1 %cmp to i64603 ret i64 %sub604}605 606; Function Attrs: norecurse nounwind readnone607define signext i64 @setbcr12(double %a, double %b) {608; CHECK-LABEL: setbcr12:609; CHECK: # %bb.0: # %entry610; CHECK-NEXT: fcmpu cr0, f1, f2611; CHECK-NEXT: setbcr r3, eq612; CHECK-NEXT: blr613entry:614 %cmp = fcmp une double %a, %b615 %lnot.ext = zext i1 %cmp to i64616 ret i64 %lnot.ext617}618 619; Function Attrs: norecurse nounwind readnone620define signext i64 @setnbcr12(double %a, double %b) {621; CHECK-LABEL: setnbcr12:622; CHECK: # %bb.0: # %entry623; CHECK-NEXT: fcmpu cr0, f1, f2624; CHECK-NEXT: setnbcr r3, eq625; CHECK-NEXT: blr626entry:627 %cmp = fcmp une double %a, %b628 %sub = sext i1 %cmp to i64629 ret i64 %sub630}631 632; Function Attrs: norecurse nounwind readnone633define signext i32 @setbc13(float %a, float %b) {634; CHECK-LABEL: setbc13:635; CHECK: # %bb.0: # %entry636; CHECK-NEXT: fcmpu cr0, f1, f2637; CHECK-NEXT: setbc r3, un638; CHECK-NEXT: blr639entry:640 %cmp = fcmp uno float %a, %b641 %conv = zext i1 %cmp to i32642 ret i32 %conv643}644 645; Function Attrs: norecurse nounwind readnone646define signext i32 @setnbc13(float %a, float %b) {647; CHECK-LABEL: setnbc13:648; CHECK: # %bb.0: # %entry649; CHECK-NEXT: fcmpu cr0, f1, f2650; CHECK-NEXT: setnbc r3, un651; CHECK-NEXT: blr652entry:653 %cmp = fcmp uno float %a, %b654 %sub = sext i1 %cmp to i32655 ret i32 %sub656}657 658; Function Attrs: norecurse nounwind readnone659define signext i32 @setbcr13(float %a, float %b) {660; CHECK-LABEL: setbcr13:661; CHECK: # %bb.0: # %entry662; CHECK-NEXT: fcmpu cr0, f1, f2663; CHECK-NEXT: setbcr r3, un664; CHECK-NEXT: blr665entry:666 %cmp = fcmp ord float %a, %b667 %lnot.ext = zext i1 %cmp to i32668 ret i32 %lnot.ext669}670 671; Function Attrs: norecurse nounwind readnone672define signext i32 @setnbcr13(float %a, float %b) {673; CHECK-LABEL: setnbcr13:674; CHECK: # %bb.0: # %entry675; CHECK-NEXT: fcmpu cr0, f1, f2676; CHECK-NEXT: setnbcr r3, un677; CHECK-NEXT: blr678entry:679 %cmp = fcmp ord float %a, %b680 %sub = sext i1 %cmp to i32681 ret i32 %sub682}683 684; Function Attrs: norecurse nounwind readnone685define signext i32 @setbc14(double %a, double %b) {686; CHECK-LABEL: setbc14:687; CHECK: # %bb.0: # %entry688; CHECK-NEXT: fcmpu cr0, f1, f2689; CHECK-NEXT: setbc r3, un690; CHECK-NEXT: blr691entry:692 %cmp = fcmp uno double %a, %b693 %conv = zext i1 %cmp to i32694 ret i32 %conv695}696 697; Function Attrs: norecurse nounwind readnone698define signext i32 @setnbc14(double %a, double %b) {699; CHECK-LABEL: setnbc14:700; CHECK: # %bb.0: # %entry701; CHECK-NEXT: fcmpu cr0, f1, f2702; CHECK-NEXT: setnbc r3, un703; CHECK-NEXT: blr704entry:705 %cmp = fcmp uno double %a, %b706 %sub = sext i1 %cmp to i32707 ret i32 %sub708}709 710; Function Attrs: norecurse nounwind readnone711define signext i32 @setbcr14(double %a, double %b) {712; CHECK-LABEL: setbcr14:713; CHECK: # %bb.0: # %entry714; CHECK-NEXT: fcmpu cr0, f1, f2715; CHECK-NEXT: setbcr r3, un716; CHECK-NEXT: blr717entry:718 %cmp = fcmp ord double %a, %b719 %lnot.ext = zext i1 %cmp to i32720 ret i32 %lnot.ext721}722 723; Function Attrs: norecurse nounwind readnone724define signext i32 @setnbcr14(double %a, double %b) {725; CHECK-LABEL: setnbcr14:726; CHECK: # %bb.0: # %entry727; CHECK-NEXT: fcmpu cr0, f1, f2728; CHECK-NEXT: setnbcr r3, un729; CHECK-NEXT: blr730entry:731 %cmp = fcmp ord double %a, %b732 %sub = sext i1 %cmp to i32733 ret i32 %sub734}735 736; Function Attrs: norecurse nounwind readnone737define signext i64 @setbc15(float %a, float %b) {738; CHECK-LABEL: setbc15:739; CHECK: # %bb.0: # %entry740; CHECK-NEXT: fcmpu cr0, f1, f2741; CHECK-NEXT: setbc r3, un742; CHECK-NEXT: blr743entry:744 %cmp = fcmp uno float %a, %b745 %conv = zext i1 %cmp to i64746 ret i64 %conv747}748 749; Function Attrs: norecurse nounwind readnone750define signext i64 @setnbc15(float %a, float %b) {751; CHECK-LABEL: setnbc15:752; CHECK: # %bb.0: # %entry753; CHECK-NEXT: fcmpu cr0, f1, f2754; CHECK-NEXT: setnbc r3, un755; CHECK-NEXT: blr756entry:757 %cmp = fcmp uno float %a, %b758 %sub = sext i1 %cmp to i64759 ret i64 %sub760}761 762; Function Attrs: norecurse nounwind readnone763define signext i64 @setbcr15(float %a, float %b) {764; CHECK-LABEL: setbcr15:765; CHECK: # %bb.0: # %entry766; CHECK-NEXT: fcmpu cr0, f1, f2767; CHECK-NEXT: setbcr r3, un768; CHECK-NEXT: blr769entry:770 %cmp = fcmp ord float %a, %b771 %lnot.ext = zext i1 %cmp to i64772 ret i64 %lnot.ext773}774 775; Function Attrs: norecurse nounwind readnone776define signext i64 @setnbcr15(float %a, float %b) {777; CHECK-LABEL: setnbcr15:778; CHECK: # %bb.0: # %entry779; CHECK-NEXT: fcmpu cr0, f1, f2780; CHECK-NEXT: setnbcr r3, un781; CHECK-NEXT: blr782entry:783 %cmp = fcmp ord float %a, %b784 %sub = sext i1 %cmp to i64785 ret i64 %sub786}787 788; Function Attrs: norecurse nounwind readnone789define signext i64 @setbc16(double %a, double %b) {790; CHECK-LABEL: setbc16:791; CHECK: # %bb.0: # %entry792; CHECK-NEXT: fcmpu cr0, f1, f2793; CHECK-NEXT: setbc r3, un794; CHECK-NEXT: blr795entry:796 %cmp = fcmp uno double %a, %b797 %conv = zext i1 %cmp to i64798 ret i64 %conv799}800 801; Function Attrs: norecurse nounwind readnone802define signext i64 @setnbc16(double %a, double %b) {803; CHECK-LABEL: setnbc16:804; CHECK: # %bb.0: # %entry805; CHECK-NEXT: fcmpu cr0, f1, f2806; CHECK-NEXT: setnbc r3, un807; CHECK-NEXT: blr808entry:809 %cmp = fcmp uno double %a, %b810 %sub = sext i1 %cmp to i64811 ret i64 %sub812}813 814; Function Attrs: norecurse nounwind readnone815define signext i64 @setbcr16(double %a, double %b) {816; CHECK-LABEL: setbcr16:817; CHECK: # %bb.0: # %entry818; CHECK-NEXT: fcmpu cr0, f1, f2819; CHECK-NEXT: setbcr r3, un820; CHECK-NEXT: blr821entry:822 %cmp = fcmp ord double %a, %b823 %lnot.ext = zext i1 %cmp to i64824 ret i64 %lnot.ext825}826 827; Function Attrs: norecurse nounwind readnone828define signext i64 @setnbcr16(double %a, double %b) {829; CHECK-LABEL: setnbcr16:830; CHECK: # %bb.0: # %entry831; CHECK-NEXT: fcmpu cr0, f1, f2832; CHECK-NEXT: setnbcr r3, un833; CHECK-NEXT: blr834entry:835 %cmp = fcmp ord double %a, %b836 %sub = sext i1 %cmp to i64837 ret i64 %sub838}839 840define signext i32 @setbc17(float %a, float %b) {841; CHECK-LABEL: setbc17:842; CHECK: # %bb.0: # %entry843; CHECK-NEXT: fcmpu cr0, f1, f2844; CHECK-NEXT: cror 4*cr5+lt, lt, un845; CHECK-NEXT: setbc r3, 4*cr5+lt846; CHECK-NEXT: blr847entry:848 %cmp = fcmp ult float %a, %b849 %conv = zext i1 %cmp to i32850 ret i32 %conv851}852 853define signext i32 @setnbc17(float %a, float %b) {854; CHECK-LABEL: setnbc17:855; CHECK: # %bb.0: # %entry856; CHECK-NEXT: fcmpu cr0, f1, f2857; CHECK-NEXT: cror 4*cr5+lt, lt, un858; CHECK-NEXT: setnbc r3, 4*cr5+lt859; CHECK-NEXT: blr860entry:861 %cmp = fcmp ult float %a, %b862 %conv = sext i1 %cmp to i32863 ret i32 %conv864}865 866define signext i32 @setbc18(double %a, double %b) {867; CHECK-LABEL: setbc18:868; CHECK: # %bb.0: # %entry869; CHECK-NEXT: fcmpu cr0, f1, f2870; CHECK-NEXT: cror 4*cr5+lt, lt, un871; CHECK-NEXT: setbc r3, 4*cr5+lt872; CHECK-NEXT: blr873entry:874 %cmp = fcmp ult double %a, %b875 %conv = zext i1 %cmp to i32876 ret i32 %conv877}878 879define signext i32 @setnbc18(double %a, double %b) {880; CHECK-LABEL: setnbc18:881; CHECK: # %bb.0: # %entry882; CHECK-NEXT: fcmpu cr0, f1, f2883; CHECK-NEXT: cror 4*cr5+lt, lt, un884; CHECK-NEXT: setnbc r3, 4*cr5+lt885; CHECK-NEXT: blr886entry:887 %cmp = fcmp ult double %a, %b888 %conv = sext i1 %cmp to i32889 ret i32 %conv890}891 892define signext i64 @setbc19(float %a, float %b) {893; CHECK-LABEL: setbc19:894; CHECK: # %bb.0: # %entry895; CHECK-NEXT: fcmpu cr0, f1, f2896; CHECK-NEXT: cror 4*cr5+lt, lt, un897; CHECK-NEXT: setbc r3, 4*cr5+lt898; CHECK-NEXT: blr899entry:900 %cmp = fcmp ult float %a, %b901 %conv = zext i1 %cmp to i64902 ret i64 %conv903}904 905define signext i64 @setnbc19(float %a, float %b) {906; CHECK-LABEL: setnbc19:907; CHECK: # %bb.0: # %entry908; CHECK-NEXT: fcmpu cr0, f1, f2909; CHECK-NEXT: cror 4*cr5+lt, lt, un910; CHECK-NEXT: setnbc r3, 4*cr5+lt911; CHECK-NEXT: blr912entry:913 %cmp = fcmp ult float %a, %b914 %conv = sext i1 %cmp to i64915 ret i64 %conv916}917 918define signext i64 @setbc20(double %a, double %b) {919; CHECK-LABEL: setbc20:920; CHECK: # %bb.0: # %entry921; CHECK-NEXT: fcmpu cr0, f1, f2922; CHECK-NEXT: cror 4*cr5+lt, lt, un923; CHECK-NEXT: setbc r3, 4*cr5+lt924; CHECK-NEXT: blr925entry:926 %cmp = fcmp ult double %a, %b927 %conv = zext i1 %cmp to i64928 ret i64 %conv929}930 931define signext i64 @setnbc20(double %a, double %b) {932; CHECK-LABEL: setnbc20:933; CHECK: # %bb.0: # %entry934; CHECK-NEXT: fcmpu cr0, f1, f2935; CHECK-NEXT: cror 4*cr5+lt, lt, un936; CHECK-NEXT: setnbc r3, 4*cr5+lt937; CHECK-NEXT: blr938entry:939 %cmp = fcmp ult double %a, %b940 %conv = sext i1 %cmp to i64941 ret i64 %conv942}943 944define signext i32 @setbc21(float %a, float %b) {945; CHECK-LABEL: setbc21:946; CHECK: # %bb.0: # %entry947; CHECK-NEXT: fcmpu cr0, f1, f2948; CHECK-NEXT: crnor 4*cr5+lt, un, lt949; CHECK-NEXT: setbc r3, 4*cr5+lt950; CHECK-NEXT: blr951entry:952 %cmp = fcmp oge float %a, %b953 %conv = zext i1 %cmp to i32954 ret i32 %conv955}956 957define signext i32 @setnbc21(float %a, float %b) {958; CHECK-LABEL: setnbc21:959; CHECK: # %bb.0: # %entry960; CHECK-NEXT: fcmpu cr0, f1, f2961; CHECK-NEXT: crnor 4*cr5+lt, un, lt962; CHECK-NEXT: setnbc r3, 4*cr5+lt963; CHECK-NEXT: blr964entry:965 %cmp = fcmp oge float %a, %b966 %conv = sext i1 %cmp to i32967 ret i32 %conv968}969 970define signext i32 @setbc22(double %a, double %b) {971; CHECK-LABEL: setbc22:972; CHECK: # %bb.0: # %entry973; CHECK-NEXT: fcmpu cr0, f1, f2974; CHECK-NEXT: crnor 4*cr5+lt, un, lt975; CHECK-NEXT: setbc r3, 4*cr5+lt976; CHECK-NEXT: blr977entry:978 %cmp = fcmp oge double %a, %b979 %conv = zext i1 %cmp to i32980 ret i32 %conv981}982 983define signext i32 @setnbc22(double %a, double %b) {984; CHECK-LABEL: setnbc22:985; CHECK: # %bb.0: # %entry986; CHECK-NEXT: fcmpu cr0, f1, f2987; CHECK-NEXT: crnor 4*cr5+lt, un, lt988; CHECK-NEXT: setnbc r3, 4*cr5+lt989; CHECK-NEXT: blr990entry:991 %cmp = fcmp oge double %a, %b992 %conv = sext i1 %cmp to i32993 ret i32 %conv994}995 996define signext i64 @setbc23(float %a, float %b) {997; CHECK-LABEL: setbc23:998; CHECK: # %bb.0: # %entry999; CHECK-NEXT: fcmpu cr0, f1, f21000; CHECK-NEXT: crnor 4*cr5+lt, un, lt1001; CHECK-NEXT: setbc r3, 4*cr5+lt1002; CHECK-NEXT: blr1003entry:1004 %cmp = fcmp oge float %a, %b1005 %conv = zext i1 %cmp to i641006 ret i64 %conv1007}1008 1009define signext i64 @setnbc23(float %a, float %b) {1010; CHECK-LABEL: setnbc23:1011; CHECK: # %bb.0: # %entry1012; CHECK-NEXT: fcmpu cr0, f1, f21013; CHECK-NEXT: crnor 4*cr5+lt, un, lt1014; CHECK-NEXT: setnbc r3, 4*cr5+lt1015; CHECK-NEXT: blr1016entry:1017 %cmp = fcmp oge float %a, %b1018 %conv = sext i1 %cmp to i641019 ret i64 %conv1020}1021 1022define signext i64 @setbc24(double %a, double %b) {1023; CHECK-LABEL: setbc24:1024; CHECK: # %bb.0: # %entry1025; CHECK-NEXT: fcmpu cr0, f1, f21026; CHECK-NEXT: crnor 4*cr5+lt, un, lt1027; CHECK-NEXT: setbc r3, 4*cr5+lt1028; CHECK-NEXT: blr1029entry:1030 %cmp = fcmp oge double %a, %b1031 %conv = zext i1 %cmp to i641032 ret i64 %conv1033}1034 1035define signext i64 @setnbc24(double %a, double %b) {1036; CHECK-LABEL: setnbc24:1037; CHECK: # %bb.0: # %entry1038; CHECK-NEXT: fcmpu cr0, f1, f21039; CHECK-NEXT: crnor 4*cr5+lt, un, lt1040; CHECK-NEXT: setnbc r3, 4*cr5+lt1041; CHECK-NEXT: blr1042entry:1043 %cmp = fcmp oge double %a, %b1044 %conv = sext i1 %cmp to i641045 ret i64 %conv1046}1047 1048define signext i32 @setbc25(float %a, float %b) {1049; CHECK-LABEL: setbc25:1050; CHECK: # %bb.0: # %entry1051; CHECK-NEXT: fcmpu cr0, f1, f21052; CHECK-NEXT: crnor 4*cr5+lt, un, gt1053; CHECK-NEXT: setbc r3, 4*cr5+lt1054; CHECK-NEXT: blr1055entry:1056 %cmp = fcmp ole float %a, %b1057 %conv = zext i1 %cmp to i321058 ret i32 %conv1059}1060 1061define signext i32 @setnbc25(float %a, float %b) {1062; CHECK-LABEL: setnbc25:1063; CHECK: # %bb.0: # %entry1064; CHECK-NEXT: fcmpu cr0, f1, f21065; CHECK-NEXT: crnor 4*cr5+lt, un, gt1066; CHECK-NEXT: setnbc r3, 4*cr5+lt1067; CHECK-NEXT: blr1068entry:1069 %cmp = fcmp ole float %a, %b1070 %conv = sext i1 %cmp to i321071 ret i32 %conv1072}1073 1074define signext i32 @setbc26(double %a, double %b) {1075; CHECK-LABEL: setbc26:1076; CHECK: # %bb.0: # %entry1077; CHECK-NEXT: fcmpu cr0, f1, f21078; CHECK-NEXT: crnor 4*cr5+lt, un, gt1079; CHECK-NEXT: setbc r3, 4*cr5+lt1080; CHECK-NEXT: blr1081entry:1082 %cmp = fcmp ole double %a, %b1083 %conv = zext i1 %cmp to i321084 ret i32 %conv1085}1086 1087define signext i32 @setnbc26(double %a, double %b) {1088; CHECK-LABEL: setnbc26:1089; CHECK: # %bb.0: # %entry1090; CHECK-NEXT: fcmpu cr0, f1, f21091; CHECK-NEXT: crnor 4*cr5+lt, un, gt1092; CHECK-NEXT: setnbc r3, 4*cr5+lt1093; CHECK-NEXT: blr1094entry:1095 %cmp = fcmp ole double %a, %b1096 %conv = sext i1 %cmp to i321097 ret i32 %conv1098}1099 1100define signext i64 @setbc27(float %a, float %b) {1101; CHECK-LABEL: setbc27:1102; CHECK: # %bb.0: # %entry1103; CHECK-NEXT: fcmpu cr0, f1, f21104; CHECK-NEXT: crnor 4*cr5+lt, un, gt1105; CHECK-NEXT: setbc r3, 4*cr5+lt1106; CHECK-NEXT: blr1107entry:1108 %cmp = fcmp ole float %a, %b1109 %conv = zext i1 %cmp to i641110 ret i64 %conv1111}1112 1113define signext i64 @setnbc27(float %a, float %b) {1114; CHECK-LABEL: setnbc27:1115; CHECK: # %bb.0: # %entry1116; CHECK-NEXT: fcmpu cr0, f1, f21117; CHECK-NEXT: crnor 4*cr5+lt, un, gt1118; CHECK-NEXT: setnbc r3, 4*cr5+lt1119; CHECK-NEXT: blr1120entry:1121 %cmp = fcmp ole float %a, %b1122 %conv = sext i1 %cmp to i641123 ret i64 %conv1124}1125 1126define signext i64 @setbc28(double %a, double %b) {1127; CHECK-LABEL: setbc28:1128; CHECK: # %bb.0: # %entry1129; CHECK-NEXT: fcmpu cr0, f1, f21130; CHECK-NEXT: crnor 4*cr5+lt, un, gt1131; CHECK-NEXT: setbc r3, 4*cr5+lt1132; CHECK-NEXT: blr1133entry:1134 %cmp = fcmp ole double %a, %b1135 %conv = zext i1 %cmp to i641136 ret i64 %conv1137}1138 1139define signext i64 @setnbc28(double %a, double %b) {1140; CHECK-LABEL: setnbc28:1141; CHECK: # %bb.0: # %entry1142; CHECK-NEXT: fcmpu cr0, f1, f21143; CHECK-NEXT: crnor 4*cr5+lt, un, gt1144; CHECK-NEXT: setnbc r3, 4*cr5+lt1145; CHECK-NEXT: blr1146entry:1147 %cmp = fcmp ole double %a, %b1148 %conv = sext i1 %cmp to i641149 ret i64 %conv1150}1151 1152define signext i32 @setbc29(float %a, float %b) {1153; CHECK-LABEL: setbc29:1154; CHECK: # %bb.0: # %entry1155; CHECK-NEXT: fcmpu cr0, f1, f21156; CHECK-NEXT: cror 4*cr5+lt, gt, un1157; CHECK-NEXT: setbc r3, 4*cr5+lt1158; CHECK-NEXT: blr1159entry:1160 %cmp = fcmp ugt float %a, %b1161 %conv = zext i1 %cmp to i321162 ret i32 %conv1163}1164 1165define signext i32 @setnbc29(float %a, float %b) {1166; CHECK-LABEL: setnbc29:1167; CHECK: # %bb.0: # %entry1168; CHECK-NEXT: fcmpu cr0, f1, f21169; CHECK-NEXT: cror 4*cr5+lt, gt, un1170; CHECK-NEXT: setnbc r3, 4*cr5+lt1171; CHECK-NEXT: blr1172entry:1173 %cmp = fcmp ugt float %a, %b1174 %conv = sext i1 %cmp to i321175 ret i32 %conv1176}1177 1178define signext i32 @setbc30(double %a, double %b) {1179; CHECK-LABEL: setbc30:1180; CHECK: # %bb.0: # %entry1181; CHECK-NEXT: fcmpu cr0, f1, f21182; CHECK-NEXT: cror 4*cr5+lt, gt, un1183; CHECK-NEXT: setbc r3, 4*cr5+lt1184; CHECK-NEXT: blr1185entry:1186 %cmp = fcmp ugt double %a, %b1187 %conv = zext i1 %cmp to i321188 ret i32 %conv1189}1190 1191define signext i32 @setnbc30(double %a, double %b) {1192; CHECK-LABEL: setnbc30:1193; CHECK: # %bb.0: # %entry1194; CHECK-NEXT: fcmpu cr0, f1, f21195; CHECK-NEXT: cror 4*cr5+lt, gt, un1196; CHECK-NEXT: setnbc r3, 4*cr5+lt1197; CHECK-NEXT: blr1198entry:1199 %cmp = fcmp ugt double %a, %b1200 %conv = sext i1 %cmp to i321201 ret i32 %conv1202}1203 1204define signext i64 @setbc31(float %a, float %b) {1205; CHECK-LABEL: setbc31:1206; CHECK: # %bb.0: # %entry1207; CHECK-NEXT: fcmpu cr0, f1, f21208; CHECK-NEXT: cror 4*cr5+lt, gt, un1209; CHECK-NEXT: setbc r3, 4*cr5+lt1210; CHECK-NEXT: blr1211entry:1212 %cmp = fcmp ugt float %a, %b1213 %conv = zext i1 %cmp to i641214 ret i64 %conv1215}1216 1217define signext i64 @setnbc31(float %a, float %b) {1218; CHECK-LABEL: setnbc31:1219; CHECK: # %bb.0: # %entry1220; CHECK-NEXT: fcmpu cr0, f1, f21221; CHECK-NEXT: cror 4*cr5+lt, gt, un1222; CHECK-NEXT: setnbc r3, 4*cr5+lt1223; CHECK-NEXT: blr1224entry:1225 %cmp = fcmp ugt float %a, %b1226 %conv = sext i1 %cmp to i641227 ret i64 %conv1228}1229 1230define signext i64 @setbc32(double %a, double %b) {1231; CHECK-LABEL: setbc32:1232; CHECK: # %bb.0: # %entry1233; CHECK-NEXT: fcmpu cr0, f1, f21234; CHECK-NEXT: cror 4*cr5+lt, gt, un1235; CHECK-NEXT: setbc r3, 4*cr5+lt1236; CHECK-NEXT: blr1237entry:1238 %cmp = fcmp ugt double %a, %b1239 %conv = zext i1 %cmp to i641240 ret i64 %conv1241}1242 1243define signext i64 @setnbc32(double %a, double %b) {1244; CHECK-LABEL: setnbc32:1245; CHECK: # %bb.0: # %entry1246; CHECK-NEXT: fcmpu cr0, f1, f21247; CHECK-NEXT: cror 4*cr5+lt, gt, un1248; CHECK-NEXT: setnbc r3, 4*cr5+lt1249; CHECK-NEXT: blr1250entry:1251 %cmp = fcmp ugt double %a, %b1252 %conv = sext i1 %cmp to i641253 ret i64 %conv1254}1255 1256define signext i32 @setbc33(float %a, float %b) {1257; CHECK-LABEL: setbc33:1258; CHECK: # %bb.0: # %entry1259; CHECK-NEXT: fcmpu cr0, f1, f21260; CHECK-NEXT: cror 4*cr5+lt, eq, un1261; CHECK-NEXT: setbc r3, 4*cr5+lt1262; CHECK-NEXT: blr1263entry:1264 %cmp = fcmp ueq float %a, %b1265 %conv = zext i1 %cmp to i321266 ret i32 %conv1267}1268 1269define signext i32 @setnbc33(float %a, float %b) {1270; CHECK-LABEL: setnbc33:1271; CHECK: # %bb.0: # %entry1272; CHECK-NEXT: fcmpu cr0, f1, f21273; CHECK-NEXT: cror 4*cr5+lt, eq, un1274; CHECK-NEXT: setnbc r3, 4*cr5+lt1275; CHECK-NEXT: blr1276entry:1277 %cmp = fcmp ueq float %a, %b1278 %conv = sext i1 %cmp to i321279 ret i32 %conv1280}1281 1282define signext i32 @setbc34(double %a, double %b) {1283; CHECK-LABEL: setbc34:1284; CHECK: # %bb.0: # %entry1285; CHECK-NEXT: fcmpu cr0, f1, f21286; CHECK-NEXT: cror 4*cr5+lt, eq, un1287; CHECK-NEXT: setbc r3, 4*cr5+lt1288; CHECK-NEXT: blr1289entry:1290 %cmp = fcmp ueq double %a, %b1291 %conv = zext i1 %cmp to i321292 ret i32 %conv1293}1294 1295define signext i32 @setnbc34(double %a, double %b) {1296; CHECK-LABEL: setnbc34:1297; CHECK: # %bb.0: # %entry1298; CHECK-NEXT: fcmpu cr0, f1, f21299; CHECK-NEXT: cror 4*cr5+lt, eq, un1300; CHECK-NEXT: setnbc r3, 4*cr5+lt1301; CHECK-NEXT: blr1302entry:1303 %cmp = fcmp ueq double %a, %b1304 %conv = sext i1 %cmp to i321305 ret i32 %conv1306}1307 1308define signext i64 @setbc35(float %a, float %b) {1309; CHECK-LABEL: setbc35:1310; CHECK: # %bb.0: # %entry1311; CHECK-NEXT: fcmpu cr0, f1, f21312; CHECK-NEXT: cror 4*cr5+lt, eq, un1313; CHECK-NEXT: setbc r3, 4*cr5+lt1314; CHECK-NEXT: blr1315entry:1316 %cmp = fcmp ueq float %a, %b1317 %conv = zext i1 %cmp to i641318 ret i64 %conv1319}1320 1321define signext i64 @setnbc35(float %a, float %b) {1322; CHECK-LABEL: setnbc35:1323; CHECK: # %bb.0: # %entry1324; CHECK-NEXT: fcmpu cr0, f1, f21325; CHECK-NEXT: cror 4*cr5+lt, eq, un1326; CHECK-NEXT: setnbc r3, 4*cr5+lt1327; CHECK-NEXT: blr1328entry:1329 %cmp = fcmp ueq float %a, %b1330 %conv = sext i1 %cmp to i641331 ret i64 %conv1332}1333 1334define signext i64 @setbc36(double %a, double %b) {1335; CHECK-LABEL: setbc36:1336; CHECK: # %bb.0: # %entry1337; CHECK-NEXT: fcmpu cr0, f1, f21338; CHECK-NEXT: cror 4*cr5+lt, eq, un1339; CHECK-NEXT: setbc r3, 4*cr5+lt1340; CHECK-NEXT: blr1341entry:1342 %cmp = fcmp ueq double %a, %b1343 %conv = zext i1 %cmp to i641344 ret i64 %conv1345}1346 1347define signext i64 @setnbc36(double %a, double %b) {1348; CHECK-LABEL: setnbc36:1349; CHECK: # %bb.0: # %entry1350; CHECK-NEXT: fcmpu cr0, f1, f21351; CHECK-NEXT: cror 4*cr5+lt, eq, un1352; CHECK-NEXT: setnbc r3, 4*cr5+lt1353; CHECK-NEXT: blr1354entry:1355 %cmp = fcmp ueq double %a, %b1356 %conv = sext i1 %cmp to i641357 ret i64 %conv1358}1359 1360define signext i32 @setbc37(float %a, float %b) {1361; CHECK-LABEL: setbc37:1362; CHECK: # %bb.0: # %entry1363; CHECK-NEXT: fcmpu cr0, f1, f21364; CHECK-NEXT: crnor 4*cr5+lt, un, eq1365; CHECK-NEXT: setbc r3, 4*cr5+lt1366; CHECK-NEXT: blr1367entry:1368 %cmp = fcmp one float %a, %b1369 %conv = zext i1 %cmp to i321370 ret i32 %conv1371}1372 1373define signext i32 @setnbc37(float %a, float %b) {1374; CHECK-LABEL: setnbc37:1375; CHECK: # %bb.0: # %entry1376; CHECK-NEXT: fcmpu cr0, f1, f21377; CHECK-NEXT: crnor 4*cr5+lt, un, eq1378; CHECK-NEXT: setnbc r3, 4*cr5+lt1379; CHECK-NEXT: blr1380entry:1381 %cmp = fcmp one float %a, %b1382 %conv = sext i1 %cmp to i321383 ret i32 %conv1384}1385 1386define signext i32 @setbc38(double %a, double %b) {1387; CHECK-LABEL: setbc38:1388; CHECK: # %bb.0: # %entry1389; CHECK-NEXT: fcmpu cr0, f1, f21390; CHECK-NEXT: crnor 4*cr5+lt, un, eq1391; CHECK-NEXT: setbc r3, 4*cr5+lt1392; CHECK-NEXT: blr1393entry:1394 %cmp = fcmp one double %a, %b1395 %conv = zext i1 %cmp to i321396 ret i32 %conv1397}1398 1399define signext i32 @setnbc38(double %a, double %b) {1400; CHECK-LABEL: setnbc38:1401; CHECK: # %bb.0: # %entry1402; CHECK-NEXT: fcmpu cr0, f1, f21403; CHECK-NEXT: crnor 4*cr5+lt, un, eq1404; CHECK-NEXT: setnbc r3, 4*cr5+lt1405; CHECK-NEXT: blr1406entry:1407 %cmp = fcmp one double %a, %b1408 %conv = sext i1 %cmp to i321409 ret i32 %conv1410}1411 1412define signext i64 @setbc39(float %a, float %b) {1413; CHECK-LABEL: setbc39:1414; CHECK: # %bb.0: # %entry1415; CHECK-NEXT: fcmpu cr0, f1, f21416; CHECK-NEXT: crnor 4*cr5+lt, un, eq1417; CHECK-NEXT: setbc r3, 4*cr5+lt1418; CHECK-NEXT: blr1419entry:1420 %cmp = fcmp one float %a, %b1421 %conv = zext i1 %cmp to i641422 ret i64 %conv1423}1424 1425define signext i64 @setnbc39(float %a, float %b) {1426; CHECK-LABEL: setnbc39:1427; CHECK: # %bb.0: # %entry1428; CHECK-NEXT: fcmpu cr0, f1, f21429; CHECK-NEXT: crnor 4*cr5+lt, un, eq1430; CHECK-NEXT: setnbc r3, 4*cr5+lt1431; CHECK-NEXT: blr1432entry:1433 %cmp = fcmp one float %a, %b1434 %conv = sext i1 %cmp to i641435 ret i64 %conv1436}1437 1438define signext i64 @setbc40(double %a, double %b) {1439; CHECK-LABEL: setbc40:1440; CHECK: # %bb.0: # %entry1441; CHECK-NEXT: fcmpu cr0, f1, f21442; CHECK-NEXT: crnor 4*cr5+lt, un, eq1443; CHECK-NEXT: setbc r3, 4*cr5+lt1444; CHECK-NEXT: blr1445entry:1446 %cmp = fcmp one double %a, %b1447 %conv = zext i1 %cmp to i641448 ret i64 %conv1449}1450 1451define signext i64 @setnbc40(double %a, double %b) {1452; CHECK-LABEL: setnbc40:1453; CHECK: # %bb.0: # %entry1454; CHECK-NEXT: fcmpu cr0, f1, f21455; CHECK-NEXT: crnor 4*cr5+lt, un, eq1456; CHECK-NEXT: setnbc r3, 4*cr5+lt1457; CHECK-NEXT: blr1458entry:1459 %cmp = fcmp one double %a, %b1460 %conv = sext i1 %cmp to i641461 ret i64 %conv1462}1463