brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.4 KiB · 64cfcc9 Raw
641 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 %s \4; RUN:     --check-prefixes=CHECK,CHECK-LE5; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \6; RUN:     -ppc-asm-full-reg-names -mcpu=pwr10 < %s | FileCheck %s \7; RUN:     --check-prefixes=CHECK,CHECK-BE8 9; This file does not contain many test cases involving comparisons and logical10; comparisons (cmplwi, cmpldi). This is because alternative code is generated11; when there is a compare (logical or not), followed by a sign or zero extend.12; This codegen will be re-evaluated at a later time on whether or not it should13; be emitted on P10.14 15@globalVal = common dso_local local_unnamed_addr global i8 0, align 116@globalVal2 = common dso_local local_unnamed_addr global i32 0, align 417@globalVal3 = common dso_local local_unnamed_addr global i64 0, align 818@globalVal4 = common dso_local local_unnamed_addr global i16 0, align 219 20define dso_local signext i32 @setbc1(i8 %a) {21; CHECK-LABEL: setbc1:22; CHECK:       # %bb.0: # %entry23; CHECK-NEXT:    extsb r3, r324; CHECK-NEXT:    cmpwi r3, 125; CHECK-NEXT:    setbc r3, lt26; CHECK-NEXT:    blr27entry:28  %cmp = icmp slt i8 %a, 129  %conv = zext i1 %cmp to i3230  ret i32 %conv31}32 33define dso_local signext i32 @setbc2(i32 %a) {34; CHECK-LABEL: setbc2:35; CHECK:       # %bb.0: # %entry36; CHECK-NEXT:    cmpwi r3, 137; CHECK-NEXT:    setbc r3, lt38; CHECK-NEXT:    blr39entry:40  %cmp = icmp slt i32 %a, 141  %conv = zext i1 %cmp to i3242  ret i32 %conv43}44 45define dso_local signext i32 @setbc3(i64 %a) {46; CHECK-LABEL: setbc3:47; CHECK:       # %bb.0: # %entry48; CHECK-NEXT:    cmpdi r3, 149; CHECK-NEXT:    setbc r3, lt50; CHECK-NEXT:    blr51entry:52  %cmp = icmp slt i64 %a, 153  %conv = zext i1 %cmp to i3254  ret i32 %conv55}56 57define dso_local signext i32 @setbc4(i16 %a) {58; CHECK-LABEL: setbc4:59; CHECK:       # %bb.0: # %entry60; CHECK-NEXT:    extsh r3, r361; CHECK-NEXT:    cmpwi r3, 162; CHECK-NEXT:    setbc r3, lt63; CHECK-NEXT:    blr64entry:65  %cmp = icmp slt i16 %a, 166  %conv = zext i1 %cmp to i3267  ret i32 %conv68}69 70define signext i64 @setbc5(i8 %a) {71; CHECK-LABEL: setbc5:72; CHECK:       # %bb.0: # %entry73; CHECK-NEXT:    extsb r3, r374; CHECK-NEXT:    cmpwi r3, 175; CHECK-NEXT:    setbc r3, lt76; CHECK-NEXT:    blr77entry:78  %cmp = icmp slt i8 %a, 179  %conv = zext i1 %cmp to i6480  ret i64 %conv81}82 83define signext i64 @setbc6(i32 %a) {84; CHECK-LABEL: setbc6:85; CHECK:       # %bb.0: # %entry86; CHECK-NEXT:    cmpwi r3, 187; CHECK-NEXT:    setbc r3, lt88; CHECK-NEXT:    blr89entry:90  %cmp = icmp slt i32 %a, 191  %conv = zext i1 %cmp to i6492  ret i64 %conv93}94 95define signext i64 @setbc7(i64 %a) {96; CHECK-LABEL: setbc7:97; CHECK:       # %bb.0: # %entry98; CHECK-NEXT:    cmpdi r3, 199; CHECK-NEXT:    setbc r3, lt100; CHECK-NEXT:    blr101entry:102  %cmp = icmp slt i64 %a, 1103  %conv = zext i1 %cmp to i64104  ret i64 %conv105}106 107define signext i64 @setbc8(i16 %a) {108; CHECK-LABEL: setbc8:109; CHECK:       # %bb.0: # %entry110; CHECK-NEXT:    extsh r3, r3111; CHECK-NEXT:    cmpwi r3, 1112; CHECK-NEXT:    setbc r3, lt113; CHECK-NEXT:    blr114entry:115  %cmp = icmp slt i16 %a, 1116  %conv = zext i1 %cmp to i64117  ret i64 %conv118}119 120define dso_local void @setbc9(i8 %a) {121; CHECK-LE-LABEL: setbc9:122; CHECK-LE:       # %bb.0: # %entry123; CHECK-LE-NEXT:    extsb r3, r3124; CHECK-LE-NEXT:    cmpwi r3, 1125; CHECK-LE-NEXT:    setbc r3, lt126; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1127; CHECK-LE-NEXT:    blr128;129; CHECK-BE-LABEL: setbc9:130; CHECK-BE:       # %bb.0: # %entry131; CHECK-BE-NEXT:    extsb r3, r3132; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha133; CHECK-BE-NEXT:    cmpwi r3, 1134; CHECK-BE-NEXT:    setbc r3, lt135; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)136; CHECK-BE-NEXT:    blr137entry:138  %cmp = icmp slt i8 %a, 1139  %conv1 = zext i1 %cmp to i8140  store i8 %conv1, ptr @globalVal, align 1141  ret void142}143 144define dso_local void @setbc10(i32 %a) {145; CHECK-LE-LABEL: setbc10:146; CHECK-LE:       # %bb.0: # %entry147; CHECK-LE-NEXT:    cmpwi r3, 1148; CHECK-LE-NEXT:    setbc r3, lt149; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1150; CHECK-LE-NEXT:    blr151;152; CHECK-BE-LABEL: setbc10:153; CHECK-BE:       # %bb.0: # %entry154; CHECK-BE-NEXT:    cmpwi r3, 1155; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha156; CHECK-BE-NEXT:    setbc r3, lt157; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)158; CHECK-BE-NEXT:    blr159entry:160  %cmp = icmp slt i32 %a, 1161  %conv1 = zext i1 %cmp to i32162  store i32 %conv1, ptr @globalVal2, align 4163  ret void164}165 166define dso_local void @setbc11(i64 %a) {167; CHECK-LE-LABEL: setbc11:168; CHECK-LE:       # %bb.0: # %entry169; CHECK-LE-NEXT:    cmpdi r3, 1170; CHECK-LE-NEXT:    setbc r3, lt171; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1172; CHECK-LE-NEXT:    blr173;174; CHECK-BE-LABEL: setbc11:175; CHECK-BE:       # %bb.0: # %entry176; CHECK-BE-NEXT:    cmpdi r3, 1177; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha178; CHECK-BE-NEXT:    setbc r3, lt179; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)180; CHECK-BE-NEXT:    blr181entry:182  %cmp = icmp slt i64 %a, 1183  %conv1 = zext i1 %cmp to i64184  store i64 %conv1, ptr @globalVal3, align 8185  ret void186}187 188define dso_local void @setbc12(i16 %a) {189; CHECK-LE-LABEL: setbc12:190; CHECK-LE:       # %bb.0: # %entry191; CHECK-LE-NEXT:    extsh r3, r3192; CHECK-LE-NEXT:    cmpwi r3, 1193; CHECK-LE-NEXT:    setbc r3, lt194; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1195; CHECK-LE-NEXT:    blr196;197; CHECK-BE-LABEL: setbc12:198; CHECK-BE:       # %bb.0: # %entry199; CHECK-BE-NEXT:    extsh r3, r3200; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha201; CHECK-BE-NEXT:    cmpwi r3, 1202; CHECK-BE-NEXT:    setbc r3, lt203; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)204; CHECK-BE-NEXT:    blr205entry:206  %cmp = icmp slt i16 %a, 1207  %conv1 = zext i1 %cmp to i16208  store i16 %conv1, ptr @globalVal4, align 2209  ret void210}211 212define dso_local signext i32 @setbc13(i8 %a) {213; CHECK-LABEL: setbc13:214; CHECK:       # %bb.0: # %entry215; CHECK-NEXT:    extsb r3, r3216; CHECK-NEXT:    cmpwi r3, 1217; CHECK-NEXT:    setbc r3, gt218; CHECK-NEXT:    blr219entry:220  %cmp = icmp sgt i8 %a, 1221  %conv = zext i1 %cmp to i32222  ret i32 %conv223}224 225define dso_local signext i32 @setbc14(i32 %a) {226; CHECK-LABEL: setbc14:227; CHECK:       # %bb.0: # %entry228; CHECK-NEXT:    cmpwi r3, 1229; CHECK-NEXT:    setbc r3, gt230; CHECK-NEXT:    blr231entry:232  %cmp = icmp sgt i32 %a, 1233  %conv = zext i1 %cmp to i32234  ret i32 %conv235}236 237define dso_local signext i32 @setbc15(i64 %a) {238; CHECK-LABEL: setbc15:239; CHECK:       # %bb.0: # %entry240; CHECK-NEXT:    cmpdi r3, 1241; CHECK-NEXT:    setbc r3, gt242; CHECK-NEXT:    blr243entry:244  %cmp = icmp sgt i64 %a, 1245  %conv = zext i1 %cmp to i32246  ret i32 %conv247}248 249define dso_local signext i32 @setbc16(i16 %a) {250; CHECK-LABEL: setbc16:251; CHECK:       # %bb.0: # %entry252; CHECK-NEXT:    extsh r3, r3253; CHECK-NEXT:    cmpwi r3, 1254; CHECK-NEXT:    setbc r3, gt255; CHECK-NEXT:    blr256entry:257  %cmp = icmp sgt i16 %a, 1258  %conv = zext i1 %cmp to i32259  ret i32 %conv260}261 262define signext i64 @setbc17(i8 %a) {263; CHECK-LABEL: setbc17:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    extsb r3, r3266; CHECK-NEXT:    cmpwi r3, 1267; CHECK-NEXT:    setbc r3, gt268; CHECK-NEXT:    blr269entry:270  %cmp = icmp sgt i8 %a, 1271  %conv = zext i1 %cmp to i64272  ret i64 %conv273}274 275define signext i64 @setbc18(i32 %a) {276; CHECK-LABEL: setbc18:277; CHECK:       # %bb.0: # %entry278; CHECK-NEXT:    cmpwi r3, 1279; CHECK-NEXT:    setbc r3, gt280; CHECK-NEXT:    blr281entry:282  %cmp = icmp sgt i32 %a, 1283  %conv = zext i1 %cmp to i64284  ret i64 %conv285}286 287define signext i64 @setbc19(i64 %a) {288; CHECK-LABEL: setbc19:289; CHECK:       # %bb.0: # %entry290; CHECK-NEXT:    cmpdi r3, 1291; CHECK-NEXT:    setbc r3, gt292; CHECK-NEXT:    blr293entry:294  %cmp = icmp sgt i64 %a, 1295  %conv = zext i1 %cmp to i64296  ret i64 %conv297}298 299define signext i64 @setbc20(i16 %a) {300; CHECK-LABEL: setbc20:301; CHECK:       # %bb.0: # %entry302; CHECK-NEXT:    extsh r3, r3303; CHECK-NEXT:    cmpwi r3, 1304; CHECK-NEXT:    setbc r3, gt305; CHECK-NEXT:    blr306entry:307  %cmp = icmp sgt i16 %a, 1308  %conv = zext i1 %cmp to i64309  ret i64 %conv310}311 312define dso_local void @setbc21(i8 %a) {313; CHECK-LE-LABEL: setbc21:314; CHECK-LE:       # %bb.0: # %entry315; CHECK-LE-NEXT:    extsb r3, r3316; CHECK-LE-NEXT:    cmpwi r3, 1317; CHECK-LE-NEXT:    setbc r3, gt318; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1319; CHECK-LE-NEXT:    blr320;321; CHECK-BE-LABEL: setbc21:322; CHECK-BE:       # %bb.0: # %entry323; CHECK-BE-NEXT:    extsb r3, r3324; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha325; CHECK-BE-NEXT:    cmpwi r3, 1326; CHECK-BE-NEXT:    setbc r3, gt327; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)328; CHECK-BE-NEXT:    blr329entry:330  %cmp = icmp sgt i8 %a, 1331  %conv1 = zext i1 %cmp to i8332  store i8 %conv1, ptr @globalVal, align 1333  ret void334}335 336define dso_local void @setbc22(i32 %a) {337; CHECK-LE-LABEL: setbc22:338; CHECK-LE:       # %bb.0: # %entry339; CHECK-LE-NEXT:    cmpwi r3, 1340; CHECK-LE-NEXT:    setbc r3, gt341; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1342; CHECK-LE-NEXT:    blr343;344; CHECK-BE-LABEL: setbc22:345; CHECK-BE:       # %bb.0: # %entry346; CHECK-BE-NEXT:    cmpwi r3, 1347; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha348; CHECK-BE-NEXT:    setbc r3, gt349; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)350; CHECK-BE-NEXT:    blr351entry:352  %cmp = icmp sgt i32 %a, 1353  %conv1 = zext i1 %cmp to i32354  store i32 %conv1, ptr @globalVal2, align 4355  ret void356}357 358define dso_local void @setbc23(i64 %a) {359; CHECK-LE-LABEL: setbc23:360; CHECK-LE:       # %bb.0: # %entry361; CHECK-LE-NEXT:    cmpdi r3, 1362; CHECK-LE-NEXT:    setbc r3, gt363; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1364; CHECK-LE-NEXT:    blr365;366; CHECK-BE-LABEL: setbc23:367; CHECK-BE:       # %bb.0: # %entry368; CHECK-BE-NEXT:    cmpdi r3, 1369; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha370; CHECK-BE-NEXT:    setbc r3, gt371; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)372; CHECK-BE-NEXT:    blr373entry:374  %cmp = icmp sgt i64 %a, 1375  %conv1 = zext i1 %cmp to i64376  store i64 %conv1, ptr @globalVal3, align 8377  ret void378}379 380define dso_local void @setbc24(i16 %a) {381; CHECK-LE-LABEL: setbc24:382; CHECK-LE:       # %bb.0: # %entry383; CHECK-LE-NEXT:    extsh r3, r3384; CHECK-LE-NEXT:    cmpwi r3, 1385; CHECK-LE-NEXT:    setbc r3, gt386; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1387; CHECK-LE-NEXT:    blr388;389; CHECK-BE-LABEL: setbc24:390; CHECK-BE:       # %bb.0: # %entry391; CHECK-BE-NEXT:    extsh r3, r3392; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha393; CHECK-BE-NEXT:    cmpwi r3, 1394; CHECK-BE-NEXT:    setbc r3, gt395; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)396; CHECK-BE-NEXT:    blr397entry:398  %cmp = icmp sgt i16 %a, 1399  %conv1 = zext i1 %cmp to i16400  store i16 %conv1, ptr @globalVal4, align 2401  ret void402}403 404define dso_local signext i32 @setbc25(i8 %a) {405; CHECK-LABEL: setbc25:406; CHECK:       # %bb.0: # %entry407; CHECK-NEXT:    clrlwi r3, r3, 24408; CHECK-NEXT:    cmpwi r3, 1409; CHECK-NEXT:    setbc r3, eq410; CHECK-NEXT:    blr411entry:412  %cmp = icmp eq i8 %a, 1413  %conv = zext i1 %cmp to i32414  ret i32 %conv415}416 417define dso_local signext i32 @setbc26(i32 %a) {418; CHECK-LABEL: setbc26:419; CHECK:       # %bb.0: # %entry420; CHECK-NEXT:    cmpwi r3, 1421; CHECK-NEXT:    setbc r3, eq422; CHECK-NEXT:    blr423entry:424  %cmp = icmp eq i32 %a, 1425  %conv = zext i1 %cmp to i32426  ret i32 %conv427}428 429define dso_local signext i32 @setbc27(i64 %a) {430; CHECK-LABEL: setbc27:431; CHECK:       # %bb.0: # %entry432; CHECK-NEXT:    cmpdi r3, 1433; CHECK-NEXT:    setbc r3, eq434; CHECK-NEXT:    blr435entry:436  %cmp = icmp eq i64 %a, 1437  %conv = zext i1 %cmp to i32438  ret i32 %conv439}440 441define dso_local signext i32 @setbc28(i16 %a) {442; CHECK-LABEL: setbc28:443; CHECK:       # %bb.0: # %entry444; CHECK-NEXT:    clrlwi r3, r3, 16445; CHECK-NEXT:    cmpwi r3, 1446; CHECK-NEXT:    setbc r3, eq447; CHECK-NEXT:    blr448entry:449  %cmp = icmp eq i16 %a, 1450  %conv = zext i1 %cmp to i32451  ret i32 %conv452}453 454define signext i64 @setbc29(i8 %a) {455; CHECK-LABEL: setbc29:456; CHECK:       # %bb.0: # %entry457; CHECK-NEXT:    clrlwi r3, r3, 24458; CHECK-NEXT:    cmpwi r3, 1459; CHECK-NEXT:    setbc r3, eq460; CHECK-NEXT:    blr461entry:462  %cmp = icmp eq i8 %a, 1463  %conv = zext i1 %cmp to i64464  ret i64 %conv465}466 467define signext i64 @setbc30(i32 %a) {468; CHECK-LABEL: setbc30:469; CHECK:       # %bb.0: # %entry470; CHECK-NEXT:    cmpwi r3, 1471; CHECK-NEXT:    setbc r3, eq472; CHECK-NEXT:    blr473entry:474  %cmp = icmp eq i32 %a, 1475  %conv = zext i1 %cmp to i64476  ret i64 %conv477}478 479define signext i64 @setbc31(i64 %a) {480; CHECK-LABEL: setbc31:481; CHECK:       # %bb.0: # %entry482; CHECK-NEXT:    cmpdi r3, 1483; CHECK-NEXT:    setbc r3, eq484; CHECK-NEXT:    blr485entry:486  %cmp = icmp eq i64 %a, 1487  %conv = zext i1 %cmp to i64488  ret i64 %conv489}490 491define signext i64 @setbc32(i16 %a) {492; CHECK-LABEL: setbc32:493; CHECK:       # %bb.0: # %entry494; CHECK-NEXT:    clrlwi r3, r3, 16495; CHECK-NEXT:    cmpwi r3, 1496; CHECK-NEXT:    setbc r3, eq497; CHECK-NEXT:    blr498entry:499  %cmp = icmp eq i16 %a, 1500  %conv = zext i1 %cmp to i64501  ret i64 %conv502}503 504define dso_local void @setbc33(i8 %a) {505; CHECK-LE-LABEL: setbc33:506; CHECK-LE:       # %bb.0: # %entry507; CHECK-LE-NEXT:    clrlwi r3, r3, 24508; CHECK-LE-NEXT:    cmpwi r3, 1509; CHECK-LE-NEXT:    setbc r3, eq510; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1511; CHECK-LE-NEXT:    blr512;513; CHECK-BE-LABEL: setbc33:514; CHECK-BE:       # %bb.0: # %entry515; CHECK-BE-NEXT:    clrlwi r3, r3, 24516; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha517; CHECK-BE-NEXT:    cmpwi r3, 1518; CHECK-BE-NEXT:    setbc r3, eq519; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)520; CHECK-BE-NEXT:    blr521entry:522  %cmp = icmp eq i8 %a, 1523  %conv1 = zext i1 %cmp to i8524  store i8 %conv1, ptr @globalVal, align 1525  ret void526}527 528define dso_local void @setbc34(i32 %a) {529; CHECK-LE-LABEL: setbc34:530; CHECK-LE:       # %bb.0: # %entry531; CHECK-LE-NEXT:    cmpwi r3, 1532; CHECK-LE-NEXT:    setbc r3, eq533; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1534; CHECK-LE-NEXT:    blr535;536; CHECK-BE-LABEL: setbc34:537; CHECK-BE:       # %bb.0: # %entry538; CHECK-BE-NEXT:    cmpwi r3, 1539; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha540; CHECK-BE-NEXT:    setbc r3, eq541; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)542; CHECK-BE-NEXT:    blr543entry:544  %cmp = icmp eq i32 %a, 1545  %conv1 = zext i1 %cmp to i32546  store i32 %conv1, ptr @globalVal2, align 4547  ret void548}549 550define dso_local void @setbc35(i64 %a) {551; CHECK-LE-LABEL: setbc35:552; CHECK-LE:       # %bb.0: # %entry553; CHECK-LE-NEXT:    cmpdi r3, 1554; CHECK-LE-NEXT:    setbc r3, eq555; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1556; CHECK-LE-NEXT:    blr557;558; CHECK-BE-LABEL: setbc35:559; CHECK-BE:       # %bb.0: # %entry560; CHECK-BE-NEXT:    cmpdi r3, 1561; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha562; CHECK-BE-NEXT:    setbc r3, eq563; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)564; CHECK-BE-NEXT:    blr565entry:566  %cmp = icmp eq i64 %a, 1567  %conv1 = zext i1 %cmp to i64568  store i64 %conv1, ptr @globalVal3, align 8569  ret void570}571 572define dso_local void @setbc36(i16 %a) {573; CHECK-LE-LABEL: setbc36:574; CHECK-LE:       # %bb.0: # %entry575; CHECK-LE-NEXT:    clrlwi r3, r3, 16576; CHECK-LE-NEXT:    cmpwi r3, 1577; CHECK-LE-NEXT:    setbc r3, eq578; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1579; CHECK-LE-NEXT:    blr580;581; CHECK-BE-LABEL: setbc36:582; CHECK-BE:       # %bb.0: # %entry583; CHECK-BE-NEXT:    clrlwi r3, r3, 16584; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha585; CHECK-BE-NEXT:    cmpwi r3, 1586; CHECK-BE-NEXT:    setbc r3, eq587; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)588; CHECK-BE-NEXT:    blr589entry:590  %cmp = icmp eq i16 %a, 1591  %conv1 = zext i1 %cmp to i16592  store i16 %conv1, ptr @globalVal4, align 2593  ret void594}595 596define dso_local signext i32 @setbc37(i64 %a) {597; CHECK-LABEL: setbc37:598; CHECK:       # %bb.0: # %entry599; CHECK-NEXT:    cmpldi r3, 1600; CHECK-NEXT:    setbc r3, gt601; CHECK-NEXT:    blr602entry:603  %cmp = icmp ugt i64 %a, 1604  %conv = zext i1 %cmp to i32605  ret i32 %conv606}607 608define signext i64 @setbc38(i64 %a) {609; CHECK-LABEL: setbc38:610; CHECK:       # %bb.0: # %entry611; CHECK-NEXT:    cmpldi r3, 1612; CHECK-NEXT:    setbc r3, gt613; CHECK-NEXT:    blr614entry:615  %cmp = icmp ugt i64 %a, 1616  %conv = zext i1 %cmp to i64617  ret i64 %conv618}619 620define dso_local void @setbc39(i64 %a) {621; CHECK-LE-LABEL: setbc39:622; CHECK-LE:       # %bb.0: # %entry623; CHECK-LE-NEXT:    cmpldi r3, 1624; CHECK-LE-NEXT:    setbc r3, gt625; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1626; CHECK-LE-NEXT:    blr627;628; CHECK-BE-LABEL: setbc39:629; CHECK-BE:       # %bb.0: # %entry630; CHECK-BE-NEXT:    cmpldi r3, 1631; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha632; CHECK-BE-NEXT:    setbc r3, gt633; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)634; CHECK-BE-NEXT:    blr635entry:636  %cmp = icmp ugt i64 %a, 1637  %conv1 = zext i1 %cmp to i64638  store i64 %conv1, ptr @globalVal3, align 8639  ret void640}641