brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.2 KiB · 04cbf97 Raw
1082 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 @setnbc1(i8 %a) {21; CHECK-LABEL: setnbc1:22; CHECK:       # %bb.0: # %entry23; CHECK-NEXT:    extsb r3, r324; CHECK-NEXT:    cmpwi r3, 125; CHECK-NEXT:    setnbc r3, lt26; CHECK-NEXT:    blr27entry:28  %cmp = icmp slt i8 %a, 129  %conv = sext i1 %cmp to i3230  ret i32 %conv31}32 33define dso_local signext i32 @setnbc2(i32 %a) {34; CHECK-LABEL: setnbc2:35; CHECK:       # %bb.0: # %entry36; CHECK-NEXT:    cmpwi r3, 137; CHECK-NEXT:    setnbc r3, lt38; CHECK-NEXT:    blr39entry:40  %cmp = icmp slt i32 %a, 141  %conv = sext i1 %cmp to i3242  ret i32 %conv43}44 45define dso_local signext i32 @setnbc3(i64 %a) {46; CHECK-LABEL: setnbc3:47; CHECK:       # %bb.0: # %entry48; CHECK-NEXT:    cmpdi r3, 149; CHECK-NEXT:    setnbc r3, lt50; CHECK-NEXT:    blr51entry:52  %cmp = icmp slt i64 %a, 153  %conv = sext i1 %cmp to i3254  ret i32 %conv55}56 57define dso_local signext i32 @setnbc4(i16 %a) {58; CHECK-LABEL: setnbc4:59; CHECK:       # %bb.0: # %entry60; CHECK-NEXT:    extsh r3, r361; CHECK-NEXT:    cmpwi r3, 162; CHECK-NEXT:    setnbc r3, lt63; CHECK-NEXT:    blr64entry:65  %cmp = icmp slt i16 %a, 166  %conv = sext i1 %cmp to i3267  ret i32 %conv68}69 70define signext i64 @setnbc5(i8 %a) {71; CHECK-LABEL: setnbc5:72; CHECK:       # %bb.0: # %entry73; CHECK-NEXT:    extsb r3, r374; CHECK-NEXT:    cmpwi r3, 175; CHECK-NEXT:    setnbc r3, lt76; CHECK-NEXT:    blr77entry:78  %cmp = icmp slt i8 %a, 179  %conv = sext i1 %cmp to i6480  ret i64 %conv81}82 83define signext i64 @setnbc6(i32 %a) {84; CHECK-LABEL: setnbc6:85; CHECK:       # %bb.0: # %entry86; CHECK-NEXT:    cmpwi r3, 187; CHECK-NEXT:    setnbc r3, lt88; CHECK-NEXT:    blr89entry:90  %cmp = icmp slt i32 %a, 191  %conv = sext i1 %cmp to i6492  ret i64 %conv93}94 95define signext i64 @setnbc7(i64 %a) {96; CHECK-LABEL: setnbc7:97; CHECK:       # %bb.0: # %entry98; CHECK-NEXT:    cmpdi r3, 199; CHECK-NEXT:    setnbc r3, lt100; CHECK-NEXT:    blr101entry:102  %cmp = icmp slt i64 %a, 1103  %conv = sext i1 %cmp to i64104  ret i64 %conv105}106 107define signext i64 @setnbc8(i16 %a) {108; CHECK-LABEL: setnbc8:109; CHECK:       # %bb.0: # %entry110; CHECK-NEXT:    extsh r3, r3111; CHECK-NEXT:    cmpwi r3, 1112; CHECK-NEXT:    setnbc r3, lt113; CHECK-NEXT:    blr114entry:115  %cmp = icmp slt i16 %a, 1116  %conv = sext i1 %cmp to i64117  ret i64 %conv118}119 120define dso_local void @setnbc9(i8 %a) {121; CHECK-LE-LABEL: setnbc9:122; CHECK-LE:       # %bb.0: # %entry123; CHECK-LE-NEXT:    extsb r3, r3124; CHECK-LE-NEXT:    cmpwi r3, 1125; CHECK-LE-NEXT:    setnbc r3, lt126; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1127; CHECK-LE-NEXT:    blr128;129; CHECK-BE-LABEL: setnbc9: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:    setnbc r3, lt135; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)136; CHECK-BE-NEXT:    blr137entry:138  %cmp = icmp slt i8 %a, 1139  %conv1 = sext i1 %cmp to i8140  store i8 %conv1, ptr @globalVal, align 1141  ret void142}143 144define dso_local void @setnbc10(i32 %a) {145; CHECK-LE-LABEL: setnbc10:146; CHECK-LE:       # %bb.0: # %entry147; CHECK-LE-NEXT:    cmpwi r3, 1148; CHECK-LE-NEXT:    setnbc r3, lt149; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1150; CHECK-LE-NEXT:    blr151;152; CHECK-BE-LABEL: setnbc10:153; CHECK-BE:       # %bb.0: # %entry154; CHECK-BE-NEXT:    cmpwi r3, 1155; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha156; CHECK-BE-NEXT:    setnbc r3, lt157; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)158; CHECK-BE-NEXT:    blr159entry:160  %cmp = icmp slt i32 %a, 1161  %conv1 = sext i1 %cmp to i32162  store i32 %conv1, ptr @globalVal2, align 4163  ret void164}165 166define dso_local void @setnbc11(i64 %a) {167; CHECK-LE-LABEL: setnbc11:168; CHECK-LE:       # %bb.0: # %entry169; CHECK-LE-NEXT:    cmpdi r3, 1170; CHECK-LE-NEXT:    setnbc r3, lt171; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1172; CHECK-LE-NEXT:    blr173;174; CHECK-BE-LABEL: setnbc11:175; CHECK-BE:       # %bb.0: # %entry176; CHECK-BE-NEXT:    cmpdi r3, 1177; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha178; CHECK-BE-NEXT:    setnbc r3, lt179; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)180; CHECK-BE-NEXT:    blr181entry:182  %cmp = icmp slt i64 %a, 1183  %conv1 = sext i1 %cmp to i64184  store i64 %conv1, ptr @globalVal3, align 8185  ret void186}187 188define dso_local void @setnbc12(i16 %a) {189; CHECK-LE-LABEL: setnbc12:190; CHECK-LE:       # %bb.0: # %entry191; CHECK-LE-NEXT:    extsh r3, r3192; CHECK-LE-NEXT:    cmpwi r3, 1193; CHECK-LE-NEXT:    setnbc r3, lt194; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1195; CHECK-LE-NEXT:    blr196;197; CHECK-BE-LABEL: setnbc12: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:    setnbc r3, lt203; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)204; CHECK-BE-NEXT:    blr205entry:206  %cmp = icmp slt i16 %a, 1207  %conv1 = sext i1 %cmp to i16208  store i16 %conv1, ptr @globalVal4, align 2209  ret void210}211 212define dso_local signext i32 @setnbc13(i8 %a) {213; CHECK-LABEL: setnbc13:214; CHECK:       # %bb.0: # %entry215; CHECK-NEXT:    extsb r3, r3216; CHECK-NEXT:    cmpwi r3, 1217; CHECK-NEXT:    setnbc r3, gt218; CHECK-NEXT:    blr219entry:220  %cmp = icmp sgt i8 %a, 1221  %conv = sext i1 %cmp to i32222  ret i32 %conv223}224 225define dso_local signext i32 @setnbc14(i32 %a) {226; CHECK-LABEL: setnbc14:227; CHECK:       # %bb.0: # %entry228; CHECK-NEXT:    cmpwi r3, 1229; CHECK-NEXT:    setnbc r3, gt230; CHECK-NEXT:    blr231entry:232  %cmp = icmp sgt i32 %a, 1233  %conv = sext i1 %cmp to i32234  ret i32 %conv235}236 237define dso_local signext i32 @setnbc15(i64 %a) {238; CHECK-LABEL: setnbc15:239; CHECK:       # %bb.0: # %entry240; CHECK-NEXT:    cmpdi r3, 1241; CHECK-NEXT:    setnbc r3, gt242; CHECK-NEXT:    blr243entry:244  %cmp = icmp sgt i64 %a, 1245  %conv = sext i1 %cmp to i32246  ret i32 %conv247}248 249define dso_local signext i32 @setnbc16(i16 %a) {250; CHECK-LABEL: setnbc16:251; CHECK:       # %bb.0: # %entry252; CHECK-NEXT:    extsh r3, r3253; CHECK-NEXT:    cmpwi r3, 1254; CHECK-NEXT:    setnbc r3, gt255; CHECK-NEXT:    blr256entry:257  %cmp = icmp sgt i16 %a, 1258  %conv = sext i1 %cmp to i32259  ret i32 %conv260}261 262define signext i64 @setnbc17(i8 %a) {263; CHECK-LABEL: setnbc17:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    extsb r3, r3266; CHECK-NEXT:    cmpwi r3, 1267; CHECK-NEXT:    setnbc r3, gt268; CHECK-NEXT:    blr269entry:270  %cmp = icmp sgt i8 %a, 1271  %conv = sext i1 %cmp to i64272  ret i64 %conv273}274 275define signext i64 @setnbc18(i32 %a) {276; CHECK-LABEL: setnbc18:277; CHECK:       # %bb.0: # %entry278; CHECK-NEXT:    cmpwi r3, 1279; CHECK-NEXT:    setnbc r3, gt280; CHECK-NEXT:    blr281entry:282  %cmp = icmp sgt i32 %a, 1283  %conv = sext i1 %cmp to i64284  ret i64 %conv285}286 287define signext i64 @setnbc19(i64 %a) {288; CHECK-LABEL: setnbc19:289; CHECK:       # %bb.0: # %entry290; CHECK-NEXT:    cmpdi r3, 1291; CHECK-NEXT:    setnbc r3, gt292; CHECK-NEXT:    blr293entry:294  %cmp = icmp sgt i64 %a, 1295  %conv = sext i1 %cmp to i64296  ret i64 %conv297}298 299define signext i64 @setnbc20(i16 %a) {300; CHECK-LABEL: setnbc20:301; CHECK:       # %bb.0: # %entry302; CHECK-NEXT:    extsh r3, r3303; CHECK-NEXT:    cmpwi r3, 1304; CHECK-NEXT:    setnbc r3, gt305; CHECK-NEXT:    blr306entry:307  %cmp = icmp sgt i16 %a, 1308  %conv = sext i1 %cmp to i64309  ret i64 %conv310}311 312define dso_local void @setnbc21(i8 %a) {313; CHECK-LE-LABEL: setnbc21:314; CHECK-LE:       # %bb.0: # %entry315; CHECK-LE-NEXT:    extsb r3, r3316; CHECK-LE-NEXT:    cmpwi r3, 1317; CHECK-LE-NEXT:    setnbc r3, gt318; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1319; CHECK-LE-NEXT:    blr320;321; CHECK-BE-LABEL: setnbc21: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:    setnbc r3, gt327; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)328; CHECK-BE-NEXT:    blr329entry:330  %cmp = icmp sgt i8 %a, 1331  %conv1 = sext i1 %cmp to i8332  store i8 %conv1, ptr @globalVal, align 1333  ret void334}335 336define dso_local void @setnbc22(i32 %a) {337; CHECK-LE-LABEL: setnbc22:338; CHECK-LE:       # %bb.0: # %entry339; CHECK-LE-NEXT:    cmpwi r3, 1340; CHECK-LE-NEXT:    setnbc r3, gt341; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1342; CHECK-LE-NEXT:    blr343;344; CHECK-BE-LABEL: setnbc22:345; CHECK-BE:       # %bb.0: # %entry346; CHECK-BE-NEXT:    cmpwi r3, 1347; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha348; CHECK-BE-NEXT:    setnbc r3, gt349; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)350; CHECK-BE-NEXT:    blr351entry:352  %cmp = icmp sgt i32 %a, 1353  %conv1 = sext i1 %cmp to i32354  store i32 %conv1, ptr @globalVal2, align 4355  ret void356}357 358define dso_local void @setnbc23(i64 %a) {359; CHECK-LE-LABEL: setnbc23:360; CHECK-LE:       # %bb.0: # %entry361; CHECK-LE-NEXT:    cmpdi r3, 1362; CHECK-LE-NEXT:    setnbc r3, gt363; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1364; CHECK-LE-NEXT:    blr365;366; CHECK-BE-LABEL: setnbc23:367; CHECK-BE:       # %bb.0: # %entry368; CHECK-BE-NEXT:    cmpdi r3, 1369; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha370; CHECK-BE-NEXT:    setnbc r3, gt371; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)372; CHECK-BE-NEXT:    blr373entry:374  %cmp = icmp sgt i64 %a, 1375  %conv1 = sext i1 %cmp to i64376  store i64 %conv1, ptr @globalVal3, align 8377  ret void378}379 380define dso_local void @setnbc24(i16 %a) {381; CHECK-LE-LABEL: setnbc24:382; CHECK-LE:       # %bb.0: # %entry383; CHECK-LE-NEXT:    extsh r3, r3384; CHECK-LE-NEXT:    cmpwi r3, 1385; CHECK-LE-NEXT:    setnbc r3, gt386; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1387; CHECK-LE-NEXT:    blr388;389; CHECK-BE-LABEL: setnbc24: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:    setnbc r3, gt395; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)396; CHECK-BE-NEXT:    blr397entry:398  %cmp = icmp sgt i16 %a, 1399  %conv1 = sext i1 %cmp to i16400  store i16 %conv1, ptr @globalVal4, align 2401  ret void402}403 404define dso_local signext i32 @setnbc25(i8 %a) {405; CHECK-LABEL: setnbc25:406; CHECK:       # %bb.0: # %entry407; CHECK-NEXT:    clrlwi r3, r3, 24408; CHECK-NEXT:    cmpwi r3, 1409; CHECK-NEXT:    setnbc r3, eq410; CHECK-NEXT:    blr411entry:412  %cmp = icmp eq i8 %a, 1413  %conv = sext i1 %cmp to i32414  ret i32 %conv415}416 417define dso_local signext i32 @setnbc26(i32 %a) {418; CHECK-LABEL: setnbc26:419; CHECK:       # %bb.0: # %entry420; CHECK-NEXT:    cmpwi r3, 1421; CHECK-NEXT:    setnbc r3, eq422; CHECK-NEXT:    blr423entry:424  %cmp = icmp eq i32 %a, 1425  %conv = sext i1 %cmp to i32426  ret i32 %conv427}428 429define dso_local signext i32 @setnbc27(i64 %a) {430; CHECK-LABEL: setnbc27:431; CHECK:       # %bb.0: # %entry432; CHECK-NEXT:    cmpdi r3, 1433; CHECK-NEXT:    setnbc r3, eq434; CHECK-NEXT:    blr435entry:436  %cmp = icmp eq i64 %a, 1437  %conv = sext i1 %cmp to i32438  ret i32 %conv439}440 441define dso_local signext i32 @setnbc28(i16 %a) {442; CHECK-LABEL: setnbc28:443; CHECK:       # %bb.0: # %entry444; CHECK-NEXT:    clrlwi r3, r3, 16445; CHECK-NEXT:    cmpwi r3, 1446; CHECK-NEXT:    setnbc r3, eq447; CHECK-NEXT:    blr448entry:449  %cmp = icmp eq i16 %a, 1450  %conv = sext i1 %cmp to i32451  ret i32 %conv452}453 454define signext i64 @setnbc29(i8 %a) {455; CHECK-LABEL: setnbc29:456; CHECK:       # %bb.0: # %entry457; CHECK-NEXT:    clrlwi r3, r3, 24458; CHECK-NEXT:    cmpwi r3, 1459; CHECK-NEXT:    setnbc r3, eq460; CHECK-NEXT:    blr461entry:462  %cmp = icmp eq i8 %a, 1463  %conv = sext i1 %cmp to i64464  ret i64 %conv465}466 467define signext i64 @setnbc30(i32 %a) {468; CHECK-LABEL: setnbc30:469; CHECK:       # %bb.0: # %entry470; CHECK-NEXT:    cmpwi r3, 1471; CHECK-NEXT:    setnbc r3, eq472; CHECK-NEXT:    blr473entry:474  %cmp = icmp eq i32 %a, 1475  %conv = sext i1 %cmp to i64476  ret i64 %conv477}478 479define signext i64 @setnbc31(i64 %a) {480; CHECK-LABEL: setnbc31:481; CHECK:       # %bb.0: # %entry482; CHECK-NEXT:    cmpdi r3, 1483; CHECK-NEXT:    setnbc r3, eq484; CHECK-NEXT:    blr485entry:486  %cmp = icmp eq i64 %a, 1487  %conv = sext i1 %cmp to i64488  ret i64 %conv489}490 491define signext i64 @setnbc32(i16 %a) {492; CHECK-LABEL: setnbc32:493; CHECK:       # %bb.0: # %entry494; CHECK-NEXT:    clrlwi r3, r3, 16495; CHECK-NEXT:    cmpwi r3, 1496; CHECK-NEXT:    setnbc r3, eq497; CHECK-NEXT:    blr498entry:499  %cmp = icmp eq i16 %a, 1500  %conv = sext i1 %cmp to i64501  ret i64 %conv502}503 504define dso_local void @setnbc33(i8 %a) {505; CHECK-LE-LABEL: setnbc33:506; CHECK-LE:       # %bb.0: # %entry507; CHECK-LE-NEXT:    clrlwi r3, r3, 24508; CHECK-LE-NEXT:    cmpwi r3, 1509; CHECK-LE-NEXT:    setnbc r3, eq510; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1511; CHECK-LE-NEXT:    blr512;513; CHECK-BE-LABEL: setnbc33: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:    setnbc r3, eq519; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)520; CHECK-BE-NEXT:    blr521entry:522  %cmp = icmp eq i8 %a, 1523  %conv1 = sext i1 %cmp to i8524  store i8 %conv1, ptr @globalVal, align 1525  ret void526}527 528define dso_local void @setnbc34(i32 %a) {529; CHECK-LE-LABEL: setnbc34:530; CHECK-LE:       # %bb.0: # %entry531; CHECK-LE-NEXT:    cmpwi r3, 1532; CHECK-LE-NEXT:    setnbc r3, eq533; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1534; CHECK-LE-NEXT:    blr535;536; CHECK-BE-LABEL: setnbc34:537; CHECK-BE:       # %bb.0: # %entry538; CHECK-BE-NEXT:    cmpwi r3, 1539; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha540; CHECK-BE-NEXT:    setnbc r3, eq541; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)542; CHECK-BE-NEXT:    blr543entry:544  %cmp = icmp eq i32 %a, 1545  %conv1 = sext i1 %cmp to i32546  store i32 %conv1, ptr @globalVal2, align 4547  ret void548}549 550define dso_local void @setnbc35(i64 %a) {551; CHECK-LE-LABEL: setnbc35:552; CHECK-LE:       # %bb.0: # %entry553; CHECK-LE-NEXT:    cmpdi r3, 1554; CHECK-LE-NEXT:    setnbc r3, eq555; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1556; CHECK-LE-NEXT:    blr557;558; CHECK-BE-LABEL: setnbc35:559; CHECK-BE:       # %bb.0: # %entry560; CHECK-BE-NEXT:    cmpdi r3, 1561; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha562; CHECK-BE-NEXT:    setnbc r3, eq563; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)564; CHECK-BE-NEXT:    blr565entry:566  %cmp = icmp eq i64 %a, 1567  %conv1 = sext i1 %cmp to i64568  store i64 %conv1, ptr @globalVal3, align 8569  ret void570}571 572define dso_local void @setnbc36(i16 %a) {573; CHECK-LE-LABEL: setnbc36:574; CHECK-LE:       # %bb.0: # %entry575; CHECK-LE-NEXT:    clrlwi r3, r3, 16576; CHECK-LE-NEXT:    cmpwi r3, 1577; CHECK-LE-NEXT:    setnbc r3, eq578; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1579; CHECK-LE-NEXT:    blr580;581; CHECK-BE-LABEL: setnbc36: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:    setnbc r3, eq587; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)588; CHECK-BE-NEXT:    blr589entry:590  %cmp = icmp eq i16 %a, 1591  %conv1 = sext i1 %cmp to i16592  store i16 %conv1, ptr @globalVal4, align 2593  ret void594}595 596define dso_local signext i32 @setnbc37(i64 %a) {597; CHECK-LABEL: setnbc37:598; CHECK:       # %bb.0: # %entry599; CHECK-NEXT:    cmpldi r3, 1600; CHECK-NEXT:    setnbc r3, gt601; CHECK-NEXT:    blr602entry:603  %cmp = icmp ugt i64 %a, 1604  %conv = sext i1 %cmp to i32605  ret i32 %conv606}607 608define signext i64 @setnbc38(i64 %a) {609; CHECK-LABEL: setnbc38:610; CHECK:       # %bb.0: # %entry611; CHECK-NEXT:    cmpldi r3, 1612; CHECK-NEXT:    setnbc r3, gt613; CHECK-NEXT:    blr614entry:615  %cmp = icmp ugt i64 %a, 1616  %conv = sext i1 %cmp to i64617  ret i64 %conv618}619 620define dso_local void @setnbc39(i64 %a) {621; CHECK-LE-LABEL: setnbc39:622; CHECK-LE:       # %bb.0: # %entry623; CHECK-LE-NEXT:    cmpldi r3, 1624; CHECK-LE-NEXT:    setnbc r3, gt625; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1626; CHECK-LE-NEXT:    blr627;628; CHECK-BE-LABEL: setnbc39:629; CHECK-BE:       # %bb.0: # %entry630; CHECK-BE-NEXT:    cmpldi r3, 1631; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha632; CHECK-BE-NEXT:    setnbc r3, gt633; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)634; CHECK-BE-NEXT:    blr635entry:636  %cmp = icmp ugt i64 %a, 1637  %conv1 = sext i1 %cmp to i64638  store i64 %conv1, ptr @globalVal3, align 8639  ret void640}641 642define dso_local signext i32 @setnbc40(i8 %a) {643; CHECK-LABEL: setnbc40:644; CHECK:       # %bb.0: # %entry645; CHECK-NEXT:    extsb. r3, r3646; CHECK-NEXT:    setnbc r3, lt647; CHECK-NEXT:    blr648entry:649  %cmp = icmp slt i8 %a, 0650  %conv = sext i1 %cmp to i32651  ret i32 %conv652}653 654define dso_local signext i32 @setnbc41(i32 %a) {655; CHECK-LABEL: setnbc41:656; CHECK:       # %bb.0: # %entry657; CHECK-NEXT:    cmpwi r3, 0658; CHECK-NEXT:    setnbc r3, lt659; CHECK-NEXT:    blr660entry:661  %cmp = icmp slt i32 %a, 0662  %conv = sext i1 %cmp to i32663  ret i32 %conv664}665 666define dso_local signext i32 @setnbc42(i16 %a) {667; CHECK-LABEL: setnbc42:668; CHECK:       # %bb.0: # %entry669; CHECK-NEXT:    extsh. r3, r3670; CHECK-NEXT:    setnbc r3, lt671; CHECK-NEXT:    blr672entry:673  %cmp = icmp slt i16 %a, 0674  %conv = sext i1 %cmp to i32675  ret i32 %conv676}677 678define signext i64 @setnbc43(i8 %a) {679; CHECK-LABEL: setnbc43:680; CHECK:       # %bb.0: # %entry681; CHECK-NEXT:    extsb. r3, r3682; CHECK-NEXT:    setnbc r3, lt683; CHECK-NEXT:    blr684entry:685  %cmp = icmp slt i8 %a, 0686  %conv = sext i1 %cmp to i64687  ret i64 %conv688}689 690define signext i64 @setnbc44(i32 %a) {691; CHECK-LABEL: setnbc44:692; CHECK:       # %bb.0: # %entry693; CHECK-NEXT:    cmpwi r3, 0694; CHECK-NEXT:    setnbc r3, lt695; CHECK-NEXT:    blr696entry:697  %cmp = icmp slt i32 %a, 0698  %conv = sext i1 %cmp to i64699  ret i64 %conv700}701 702define signext i64 @setnbc45(i16 %a) {703; CHECK-LABEL: setnbc45:704; CHECK:       # %bb.0: # %entry705; CHECK-NEXT:    extsh. r3, r3706; CHECK-NEXT:    setnbc r3, lt707; CHECK-NEXT:    blr708entry:709  %cmp = icmp slt i16 %a, 0710  %conv = sext i1 %cmp to i64711  ret i64 %conv712}713 714define dso_local signext i32 @setnbc46(i8 %a) {715; CHECK-LABEL: setnbc46:716; CHECK:       # %bb.0: # %entry717; CHECK-NEXT:    extsb. r3, r3718; CHECK-NEXT:    setnbc r3, gt719; CHECK-NEXT:    blr720entry:721  %cmp = icmp sgt i8 %a, 0722  %conv = sext i1 %cmp to i32723  ret i32 %conv724}725 726define dso_local signext i32 @setnbc47(i32 %a) {727; CHECK-LABEL: setnbc47:728; CHECK:       # %bb.0: # %entry729; CHECK-NEXT:    cmpwi r3, 0730; CHECK-NEXT:    setnbc r3, gt731; CHECK-NEXT:    blr732entry:733  %cmp = icmp sgt i32 %a, 0734  %conv = sext i1 %cmp to i32735  ret i32 %conv736}737 738define dso_local signext i32 @setnbc48(i64 %a) {739; CHECK-LABEL: setnbc48:740; CHECK:       # %bb.0: # %entry741; CHECK-NEXT:    cmpdi r3, 0742; CHECK-NEXT:    setnbc r3, gt743; CHECK-NEXT:    blr744entry:745  %cmp = icmp sgt i64 %a, 0746  %conv = sext i1 %cmp to i32747  ret i32 %conv748}749 750define dso_local signext i32 @setnbc49(i16 %a) {751; CHECK-LABEL: setnbc49:752; CHECK:       # %bb.0: # %entry753; CHECK-NEXT:    extsh. r3, r3754; CHECK-NEXT:    setnbc r3, gt755; CHECK-NEXT:    blr756entry:757  %cmp = icmp sgt i16 %a, 0758  %conv = sext i1 %cmp to i32759  ret i32 %conv760}761 762define signext i64 @setnbc50(i8 %a) {763; CHECK-LABEL: setnbc50:764; CHECK:       # %bb.0: # %entry765; CHECK-NEXT:    extsb. r3, r3766; CHECK-NEXT:    setnbc r3, gt767; CHECK-NEXT:    blr768entry:769  %cmp = icmp sgt i8 %a, 0770  %conv = sext i1 %cmp to i64771  ret i64 %conv772}773 774define signext i64 @setnbc51(i32 %a) {775; CHECK-LABEL: setnbc51:776; CHECK:       # %bb.0: # %entry777; CHECK-NEXT:    cmpwi r3, 0778; CHECK-NEXT:    setnbc r3, gt779; CHECK-NEXT:    blr780entry:781  %cmp = icmp sgt i32 %a, 0782  %conv = sext i1 %cmp to i64783  ret i64 %conv784}785 786define signext i64 @setnbc52(i64 %a) {787; CHECK-LABEL: setnbc52:788; CHECK:       # %bb.0: # %entry789; CHECK-NEXT:    cmpdi r3, 0790; CHECK-NEXT:    setnbc r3, gt791; CHECK-NEXT:    blr792entry:793  %cmp = icmp sgt i64 %a, 0794  %conv = sext i1 %cmp to i64795  ret i64 %conv796}797 798define signext i64 @setnbc53(i16 %a) {799; CHECK-LABEL: setnbc53:800; CHECK:       # %bb.0: # %entry801; CHECK-NEXT:    extsh. r3, r3802; CHECK-NEXT:    setnbc r3, gt803; CHECK-NEXT:    blr804entry:805  %cmp = icmp sgt i16 %a, 0806  %conv = sext i1 %cmp to i64807  ret i64 %conv808}809 810define dso_local void @setnbc54(i8 %a) {811; CHECK-LE-LABEL: setnbc54:812; CHECK-LE:       # %bb.0: # %entry813; CHECK-LE-NEXT:    extsb. r3, r3814; CHECK-LE-NEXT:    setnbc r3, gt815; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1816; CHECK-LE-NEXT:    blr817;818; CHECK-BE-LABEL: setnbc54:819; CHECK-BE:       # %bb.0: # %entry820; CHECK-BE-NEXT:    extsb. r3, r3821; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha822; CHECK-BE-NEXT:    setnbc r3, gt823; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)824; CHECK-BE-NEXT:    blr825entry:826  %cmp = icmp sgt i8 %a, 0827  %conv1 = sext i1 %cmp to i8828  store i8 %conv1, ptr @globalVal, align 1829  ret void830}831 832define dso_local void @setnbc55(i32 %a) {833; CHECK-LE-LABEL: setnbc55:834; CHECK-LE:       # %bb.0: # %entry835; CHECK-LE-NEXT:    cmpwi r3, 0836; CHECK-LE-NEXT:    setnbc r3, gt837; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1838; CHECK-LE-NEXT:    blr839;840; CHECK-BE-LABEL: setnbc55:841; CHECK-BE:       # %bb.0: # %entry842; CHECK-BE-NEXT:    cmpwi r3, 0843; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha844; CHECK-BE-NEXT:    setnbc r3, gt845; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)846; CHECK-BE-NEXT:    blr847entry:848  %cmp = icmp sgt i32 %a, 0849  %conv1 = sext i1 %cmp to i32850  store i32 %conv1, ptr @globalVal2, align 4851  ret void852}853 854define dso_local void @setnbc56(i64 %a) {855; CHECK-LE-LABEL: setnbc56:856; CHECK-LE:       # %bb.0: # %entry857; CHECK-LE-NEXT:    cmpdi r3, 0858; CHECK-LE-NEXT:    setnbc r3, gt859; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1860; CHECK-LE-NEXT:    blr861;862; CHECK-BE-LABEL: setnbc56:863; CHECK-BE:       # %bb.0: # %entry864; CHECK-BE-NEXT:    cmpdi r3, 0865; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha866; CHECK-BE-NEXT:    setnbc r3, gt867; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)868; CHECK-BE-NEXT:    blr869entry:870  %cmp = icmp sgt i64 %a, 0871  %conv1 = sext i1 %cmp to i64872  store i64 %conv1, ptr @globalVal3, align 8873  ret void874}875 876define dso_local void @setnbc57(i16 %a) {877; CHECK-LE-LABEL: setnbc57:878; CHECK-LE:       # %bb.0: # %entry879; CHECK-LE-NEXT:    extsh. r3, r3880; CHECK-LE-NEXT:    setnbc r3, gt881; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1882; CHECK-LE-NEXT:    blr883;884; CHECK-BE-LABEL: setnbc57:885; CHECK-BE:       # %bb.0: # %entry886; CHECK-BE-NEXT:    extsh. r3, r3887; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha888; CHECK-BE-NEXT:    setnbc r3, gt889; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)890; CHECK-BE-NEXT:    blr891entry:892  %cmp = icmp sgt i16 %a, 0893  %conv1 = sext i1 %cmp to i16894  store i16 %conv1, ptr @globalVal4, align 2895  ret void896}897 898define dso_local signext i32 @setnbc58(i8 %a) {899; CHECK-LABEL: setnbc58:900; CHECK:       # %bb.0: # %entry901; CHECK-NEXT:    andi. r3, r3, 255902; CHECK-NEXT:    setnbc r3, eq903; CHECK-NEXT:    blr904entry:905  %cmp = icmp eq i8 %a, 0906  %conv = sext i1 %cmp to i32907  ret i32 %conv908}909 910define dso_local signext i32 @setnbc59(i32 %a) {911; CHECK-LABEL: setnbc59:912; CHECK:       # %bb.0: # %entry913; CHECK-NEXT:    cmpwi r3, 0914; CHECK-NEXT:    setnbc r3, eq915; CHECK-NEXT:    blr916entry:917  %cmp = icmp eq i32 %a, 0918  %conv = sext i1 %cmp to i32919  ret i32 %conv920}921 922define dso_local signext i32 @setnbc60(i64 %a) {923; CHECK-LABEL: setnbc60:924; CHECK:       # %bb.0: # %entry925; CHECK-NEXT:    cmpdi r3, 0926; CHECK-NEXT:    setnbc r3, eq927; CHECK-NEXT:    blr928entry:929  %cmp = icmp eq i64 %a, 0930  %conv = sext i1 %cmp to i32931  ret i32 %conv932}933 934define dso_local signext i32 @setnbc61(i16 %a) {935; CHECK-LABEL: setnbc61:936; CHECK:       # %bb.0: # %entry937; CHECK-NEXT:    andi. r3, r3, 65535938; CHECK-NEXT:    setnbc r3, eq939; CHECK-NEXT:    blr940entry:941  %cmp = icmp eq i16 %a, 0942  %conv = sext i1 %cmp to i32943  ret i32 %conv944}945 946define signext i64 @setnbc62(i8 %a) {947; CHECK-LABEL: setnbc62:948; CHECK:       # %bb.0: # %entry949; CHECK-NEXT:    andi. r3, r3, 255950; CHECK-NEXT:    setnbc r3, eq951; CHECK-NEXT:    blr952entry:953  %cmp = icmp eq i8 %a, 0954  %conv = sext i1 %cmp to i64955  ret i64 %conv956}957 958define signext i64 @setnbc63(i32 %a) {959; CHECK-LABEL: setnbc63:960; CHECK:       # %bb.0: # %entry961; CHECK-NEXT:    cmpwi r3, 0962; CHECK-NEXT:    setnbc r3, eq963; CHECK-NEXT:    blr964entry:965  %cmp = icmp eq i32 %a, 0966  %conv = sext i1 %cmp to i64967  ret i64 %conv968}969 970define signext i64 @setnbc64(i64 %a) {971; CHECK-LABEL: setnbc64:972; CHECK:       # %bb.0: # %entry973; CHECK-NEXT:    cmpdi r3, 0974; CHECK-NEXT:    setnbc r3, eq975; CHECK-NEXT:    blr976entry:977  %cmp = icmp eq i64 %a, 0978  %conv = sext i1 %cmp to i64979  ret i64 %conv980}981 982define signext i64 @setnbc65(i16 %a) {983; CHECK-LABEL: setnbc65:984; CHECK:       # %bb.0: # %entry985; CHECK-NEXT:    andi. r3, r3, 65535986; CHECK-NEXT:    setnbc r3, eq987; CHECK-NEXT:    blr988entry:989  %cmp = icmp eq i16 %a, 0990  %conv = sext i1 %cmp to i64991  ret i64 %conv992}993 994define dso_local void @setnbc66(i8 %a) {995; CHECK-LE-LABEL: setnbc66:996; CHECK-LE:       # %bb.0: # %entry997; CHECK-LE-NEXT:    andi. r3, r3, 255998; CHECK-LE-NEXT:    setnbc r3, eq999; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 11000; CHECK-LE-NEXT:    blr1001;1002; CHECK-BE-LABEL: setnbc66:1003; CHECK-BE:       # %bb.0: # %entry1004; CHECK-BE-NEXT:    andi. r3, r3, 2551005; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha1006; CHECK-BE-NEXT:    setnbc r3, eq1007; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)1008; CHECK-BE-NEXT:    blr1009entry:1010  %cmp = icmp eq i8 %a, 01011  %conv1 = sext i1 %cmp to i81012  store i8 %conv1, ptr @globalVal, align 11013  ret void1014}1015 1016define dso_local void @setnbc67(i32 %a) {1017; CHECK-LE-LABEL: setnbc67:1018; CHECK-LE:       # %bb.0: # %entry1019; CHECK-LE-NEXT:    cmpwi r3, 01020; CHECK-LE-NEXT:    setnbc r3, eq1021; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 11022; CHECK-LE-NEXT:    blr1023;1024; CHECK-BE-LABEL: setnbc67:1025; CHECK-BE:       # %bb.0: # %entry1026; CHECK-BE-NEXT:    cmpwi r3, 01027; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha1028; CHECK-BE-NEXT:    setnbc r3, eq1029; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)1030; CHECK-BE-NEXT:    blr1031entry:1032  %cmp = icmp eq i32 %a, 01033  %conv1 = sext i1 %cmp to i321034  store i32 %conv1, ptr @globalVal2, align 41035  ret void1036}1037 1038define dso_local void @setnbc68(i64 %a) {1039; CHECK-LE-LABEL: setnbc68:1040; CHECK-LE:       # %bb.0: # %entry1041; CHECK-LE-NEXT:    cmpdi r3, 01042; CHECK-LE-NEXT:    setnbc r3, eq1043; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 11044; CHECK-LE-NEXT:    blr1045;1046; CHECK-BE-LABEL: setnbc68:1047; CHECK-BE:       # %bb.0: # %entry1048; CHECK-BE-NEXT:    cmpdi r3, 01049; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha1050; CHECK-BE-NEXT:    setnbc r3, eq1051; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)1052; CHECK-BE-NEXT:    blr1053entry:1054  %cmp = icmp eq i64 %a, 01055  %conv1 = sext i1 %cmp to i641056  store i64 %conv1, ptr @globalVal3, align 81057  ret void1058}1059 1060define dso_local void @setnbc69(i16 %a) {1061; CHECK-LE-LABEL: setnbc69:1062; CHECK-LE:       # %bb.0: # %entry1063; CHECK-LE-NEXT:    andi. r3, r3, 655351064; CHECK-LE-NEXT:    setnbc r3, eq1065; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 11066; CHECK-LE-NEXT:    blr1067;1068; CHECK-BE-LABEL: setnbc69:1069; CHECK-BE:       # %bb.0: # %entry1070; CHECK-BE-NEXT:    andi. r3, r3, 655351071; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha1072; CHECK-BE-NEXT:    setnbc r3, eq1073; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)1074; CHECK-BE-NEXT:    blr1075entry:1076  %cmp = icmp eq i16 %a, 01077  %conv1 = sext i1 %cmp to i161078  store i16 %conv1, ptr @globalVal4, align 21079  ret void1080}1081 1082