brintos

brintos / llvm-project-archived public Read only

0
0
Text · 35.1 KiB · 405a385 Raw
1291 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(i32 signext %a, i32 signext %b) {21; CHECK-LABEL: setnbc1:22; CHECK:       # %bb.0: # %entry23; CHECK-NEXT:    cmpw r3, r424; CHECK-NEXT:    setnbc r3, lt25; CHECK-NEXT:    blr26entry:27  %cmp = icmp slt i32 %a, %b28  %conv = sext i1 %cmp to i3229  ret i32 %conv30}31 32define dso_local signext i32 @setnbc2(i32 signext %a, i32 signext %b) {33; CHECK-LABEL: setnbc2:34; CHECK:       # %bb.0: # %entry35; CHECK-NEXT:    cmpw r3, r436; CHECK-NEXT:    setnbc r3, eq37; CHECK-NEXT:    blr38entry:39  %cmp = icmp eq i32 %a, %b40  %conv = sext i1 %cmp to i3241  ret i32 %conv42}43 44define dso_local signext i32 @setnbc3(i32 signext %a, i32 signext %b) {45; CHECK-LABEL: setnbc3:46; CHECK:       # %bb.0: # %entry47; CHECK-NEXT:    cmpw r3, r448; CHECK-NEXT:    setnbc r3, gt49; CHECK-NEXT:    blr50entry:51  %cmp = icmp sgt i32 %a, %b52  %conv = sext i1 %cmp to i3253  ret i32 %conv54}55 56define dso_local signext i32 @setnbc4(i8 signext %a, i8 signext %b) {57; CHECK-LABEL: setnbc4:58; CHECK:       # %bb.0: # %entry59; CHECK-NEXT:    cmpw r3, r460; CHECK-NEXT:    setnbc r3, eq61; CHECK-NEXT:    blr62entry:63  %cmp = icmp eq i8 %a, %b64  %conv = sext i1 %cmp to i3265  ret i32 %conv66}67 68; function attrs: norecurse nounwind69define dso_local void @setnbc5(i8 signext %a, i8 signext %b) {70; CHECK-LE-LABEL: setnbc5:71; CHECK-LE:       # %bb.0: # %entry72; CHECK-LE-NEXT:    cmpw r3, r473; CHECK-LE-NEXT:    setnbc r3, eq74; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 175; CHECK-LE-NEXT:    blr76;77; CHECK-BE-LABEL: setnbc5:78; CHECK-BE:       # %bb.0: # %entry79; CHECK-BE-NEXT:    cmpw r3, r480; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha81; CHECK-BE-NEXT:    setnbc r3, eq82; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)83; CHECK-BE-NEXT:    blr84entry:85  %cmp = icmp eq i8 %a, %b86  %conv3 = sext i1 %cmp to i887  store i8 %conv3, ptr @globalVal, align 188  ret void89}90 91define dso_local void @setnbc6(i32 signext %a, i32 signext %b) {92; CHECK-LE-LABEL: setnbc6:93; CHECK-LE:       # %bb.0: # %entry94; CHECK-LE-NEXT:    cmpw r3, r495; CHECK-LE-NEXT:    setnbc r3, eq96; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 197; CHECK-LE-NEXT:    blr98;99; CHECK-BE-LABEL: setnbc6:100; CHECK-BE:       # %bb.0: # %entry101; CHECK-BE-NEXT:    cmpw r3, r4102; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha103; CHECK-BE-NEXT:    setnbc r3, eq104; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)105; CHECK-BE-NEXT:    blr106entry:107  %cmp = icmp eq i32 %a, %b108  %conv = sext i1 %cmp to i32109  store i32 %conv, ptr @globalVal2, align 4110  ret void111}112 113define dso_local signext i32 @setnbc7(i64 %a, i64 %b) {114; CHECK-LABEL: setnbc7:115; CHECK:       # %bb.0: # %entry116; CHECK-NEXT:    cmpd r3, r4117; CHECK-NEXT:    setnbc r3, eq118; CHECK-NEXT:    blr119entry:120  %cmp = icmp eq i64 %a, %b121  %conv = sext i1 %cmp to i32122  ret i32 %conv123}124 125define signext i64 @setnbc8(i64 %a, i64 %b) {126; CHECK-LABEL: setnbc8:127; CHECK:       # %bb.0: # %entry128; CHECK-NEXT:    cmpd r3, r4129; CHECK-NEXT:    setnbc r3, eq130; CHECK-NEXT:    blr131entry:132  %cmp = icmp eq i64 %a, %b133  %conv = sext i1 %cmp to i64134  ret i64 %conv135}136 137define dso_local void @setnbc9(i64 %a, i64 %b) {138; CHECK-LE-LABEL: setnbc9:139; CHECK-LE:       # %bb.0: # %entry140; CHECK-LE-NEXT:    cmpd r3, r4141; CHECK-LE-NEXT:    setnbc r3, eq142; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1143; CHECK-LE-NEXT:    blr144;145; CHECK-BE-LABEL: setnbc9:146; CHECK-BE:       # %bb.0: # %entry147; CHECK-BE-NEXT:    cmpd r3, r4148; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha149; CHECK-BE-NEXT:    setnbc r3, eq150; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)151; CHECK-BE-NEXT:    blr152entry:153  %cmp = icmp eq i64 %a, %b154  %conv1 = sext i1 %cmp to i64155  store i64 %conv1, ptr @globalVal3, align 8156  ret void157}158 159define dso_local signext i32 @setnbc10(i16 signext %a, i16 signext %b) {160; CHECK-LABEL: setnbc10:161; CHECK:       # %bb.0: # %entry162; CHECK-NEXT:    cmpw r3, r4163; CHECK-NEXT:    setnbc r3, eq164; CHECK-NEXT:    blr165entry:166  %cmp = icmp eq i16 %a, %b167  %conv = sext i1 %cmp to i32168  ret i32 %conv169}170 171define dso_local void @setnbc11(i16 signext %a, i16 signext %b) {172; CHECK-LE-LABEL: setnbc11:173; CHECK-LE:       # %bb.0: # %entry174; CHECK-LE-NEXT:    cmpw r3, r4175; CHECK-LE-NEXT:    setnbc r3, eq176; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1177; CHECK-LE-NEXT:    blr178;179; CHECK-BE-LABEL: setnbc11:180; CHECK-BE:       # %bb.0: # %entry181; CHECK-BE-NEXT:    cmpw r3, r4182; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha183; CHECK-BE-NEXT:    setnbc r3, eq184; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)185; CHECK-BE-NEXT:    blr186entry:187  %cmp = icmp eq i16 %a, %b188  %conv3 = sext i1 %cmp to i16189  store i16 %conv3, ptr @globalVal4, align 2190  ret void191}192 193define dso_local signext i32 @setnbc12(i8 zeroext %a, i8 zeroext %b) {194; CHECK-LABEL: setnbc12:195; CHECK:       # %bb.0: # %entry196; CHECK-NEXT:    cmpw r3, r4197; CHECK-NEXT:    setnbc r3, eq198; CHECK-NEXT:    blr199entry:200  %cmp = icmp eq i8 %a, %b201  %conv = sext i1 %cmp to i32202  ret i32 %conv203}204 205define dso_local void @setnbc13(i8 zeroext %a, i8 zeroext %b) {206; CHECK-LE-LABEL: setnbc13:207; CHECK-LE:       # %bb.0: # %entry208; CHECK-LE-NEXT:    cmpw r3, r4209; CHECK-LE-NEXT:    setnbc r3, eq210; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1211; CHECK-LE-NEXT:    blr212;213; CHECK-BE-LABEL: setnbc13:214; CHECK-BE:       # %bb.0: # %entry215; CHECK-BE-NEXT:    cmpw r3, r4216; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha217; CHECK-BE-NEXT:    setnbc r3, eq218; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)219; CHECK-BE-NEXT:    blr220entry:221  %cmp = icmp eq i8 %a, %b222  %conv3 = sext i1 %cmp to i8223  store i8 %conv3, ptr @globalVal, align 1224  ret void225}226 227define dso_local signext i32 @setnbc14(i32 zeroext %a, i32 zeroext %b) {228; CHECK-LABEL: setnbc14:229; CHECK:       # %bb.0: # %entry230; CHECK-NEXT:    cmpw r3, r4231; CHECK-NEXT:    setnbc r3, eq232; CHECK-NEXT:    blr233entry:234  %cmp = icmp eq i32 %a, %b235  %conv = sext i1 %cmp to i32236  ret i32 %conv237}238 239define dso_local void @setnbc15(i32 zeroext %a, i32 zeroext %b) {240; CHECK-LE-LABEL: setnbc15:241; CHECK-LE:       # %bb.0: # %entry242; CHECK-LE-NEXT:    cmpw r3, r4243; CHECK-LE-NEXT:    setnbc r3, eq244; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1245; CHECK-LE-NEXT:    blr246;247; CHECK-BE-LABEL: setnbc15:248; CHECK-BE:       # %bb.0: # %entry249; CHECK-BE-NEXT:    cmpw r3, r4250; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha251; CHECK-BE-NEXT:    setnbc r3, eq252; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)253; CHECK-BE-NEXT:    blr254entry:255  %cmp = icmp eq i32 %a, %b256  %conv = sext i1 %cmp to i32257  store i32 %conv, ptr @globalVal2, align 4258  ret void259}260 261define dso_local signext i32 @setnbc16(i16 zeroext %a, i16 zeroext %b) {262; CHECK-LABEL: setnbc16:263; CHECK:       # %bb.0: # %entry264; CHECK-NEXT:    cmpw r3, r4265; CHECK-NEXT:    setnbc r3, eq266; CHECK-NEXT:    blr267entry:268  %cmp = icmp eq i16 %a, %b269  %conv = sext i1 %cmp to i32270  ret i32 %conv271}272 273define dso_local void @setnbc17(i16 zeroext %a, i16 zeroext %b) {274; CHECK-LE-LABEL: setnbc17:275; CHECK-LE:       # %bb.0: # %entry276; CHECK-LE-NEXT:    cmpw r3, r4277; CHECK-LE-NEXT:    setnbc r3, eq278; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1279; CHECK-LE-NEXT:    blr280;281; CHECK-BE-LABEL: setnbc17:282; CHECK-BE:       # %bb.0: # %entry283; CHECK-BE-NEXT:    cmpw r3, r4284; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha285; CHECK-BE-NEXT:    setnbc r3, eq286; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)287; CHECK-BE-NEXT:    blr288entry:289  %cmp = icmp eq i16 %a, %b290  %conv3 = sext i1 %cmp to i16291  store i16 %conv3, ptr @globalVal4, align 2292  ret void293}294 295define dso_local signext i32 @setnbc18(i8 signext %a, i8 signext %b) {296; CHECK-LABEL: setnbc18:297; CHECK:       # %bb.0: # %entry298; CHECK-NEXT:    cmpw r3, r4299; CHECK-NEXT:    setnbc r3, gt300; CHECK-NEXT:    blr301entry:302  %cmp = icmp sgt i8 %a, %b303  %sub = sext i1 %cmp to i32304  ret i32 %sub305}306 307define dso_local void @setnbc19(i8 signext %a, i8 signext %b) {308; CHECK-LE-LABEL: setnbc19:309; CHECK-LE:       # %bb.0: # %entry310; CHECK-LE-NEXT:    cmpw r3, r4311; CHECK-LE-NEXT:    setnbc r3, gt312; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1313; CHECK-LE-NEXT:    blr314;315; CHECK-BE-LABEL: setnbc19:316; CHECK-BE:       # %bb.0: # %entry317; CHECK-BE-NEXT:    cmpw r3, r4318; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha319; CHECK-BE-NEXT:    setnbc r3, gt320; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)321; CHECK-BE-NEXT:    blr322entry:323  %cmp = icmp sgt i8 %a, %b324  %conv3 = sext i1 %cmp to i8325  store i8 %conv3, ptr @globalVal, align 1326  ret void327}328 329define dso_local void @setnbc20(i32 signext %a, i32 signext %b) {330; CHECK-LE-LABEL: setnbc20:331; CHECK-LE:       # %bb.0: # %entry332; CHECK-LE-NEXT:    cmpw r3, r4333; CHECK-LE-NEXT:    setnbc r3, gt334; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1335; CHECK-LE-NEXT:    blr336;337; CHECK-BE-LABEL: setnbc20:338; CHECK-BE:       # %bb.0: # %entry339; CHECK-BE-NEXT:    cmpw r3, r4340; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha341; CHECK-BE-NEXT:    setnbc r3, gt342; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)343; CHECK-BE-NEXT:    blr344entry:345  %cmp = icmp sgt i32 %a, %b346  %sub = sext i1 %cmp to i32347  store i32 %sub, ptr @globalVal2, align 4348  ret void349}350 351define dso_local signext i32 @setnbc21(i64 %a, i64 %b) {352; CHECK-LABEL: setnbc21:353; CHECK:       # %bb.0: # %entry354; CHECK-NEXT:    cmpd r3, r4355; CHECK-NEXT:    setnbc r3, gt356; CHECK-NEXT:    blr357entry:358  %cmp = icmp sgt i64 %a, %b359  %sub = sext i1 %cmp to i32360  ret i32 %sub361}362 363define dso_local void @setnbc22(i64 %a, i64 %b) {364; CHECK-LE-LABEL: setnbc22:365; CHECK-LE:       # %bb.0: # %entry366; CHECK-LE-NEXT:    cmpd r3, r4367; CHECK-LE-NEXT:    setnbc r3, gt368; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1369; CHECK-LE-NEXT:    blr370;371; CHECK-BE-LABEL: setnbc22:372; CHECK-BE:       # %bb.0: # %entry373; CHECK-BE-NEXT:    cmpd r3, r4374; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha375; CHECK-BE-NEXT:    setnbc r3, gt376; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)377; CHECK-BE-NEXT:    blr378entry:379  %cmp = icmp sgt i64 %a, %b380  %conv1 = sext i1 %cmp to i64381  store i64 %conv1, ptr @globalVal3, align 8382  ret void383}384 385define dso_local signext i32 @setnbc23(i16 signext %a, i16 signext %b) {386; CHECK-LABEL: setnbc23:387; CHECK:       # %bb.0: # %entry388; CHECK-NEXT:    cmpw r3, r4389; CHECK-NEXT:    setnbc r3, gt390; CHECK-NEXT:    blr391entry:392  %cmp = icmp sgt i16 %a, %b393  %sub = sext i1 %cmp to i32394  ret i32 %sub395}396 397define dso_local void @setnbc24(i16 signext %a, i16 signext %b) {398; CHECK-LE-LABEL: setnbc24:399; CHECK-LE:       # %bb.0: # %entry400; CHECK-LE-NEXT:    cmpw r3, r4401; CHECK-LE-NEXT:    setnbc r3, gt402; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1403; CHECK-LE-NEXT:    blr404;405; CHECK-BE-LABEL: setnbc24:406; CHECK-BE:       # %bb.0: # %entry407; CHECK-BE-NEXT:    cmpw r3, r4408; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha409; CHECK-BE-NEXT:    setnbc r3, gt410; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)411; CHECK-BE-NEXT:    blr412entry:413  %cmp = icmp sgt i16 %a, %b414  %conv3 = sext i1 %cmp to i16415  store i16 %conv3, ptr @globalVal4, align 2416  ret void417}418 419define dso_local signext i32 @setnbc25(i8 zeroext %a, i8 zeroext %b) {420; CHECK-LABEL: setnbc25:421; CHECK:       # %bb.0: # %entry422; CHECK-NEXT:    cmplw r3, r4423; CHECK-NEXT:    setnbc r3, gt424; CHECK-NEXT:    blr425entry:426  %cmp = icmp ugt i8 %a, %b427  %sub = sext i1 %cmp to i32428  ret i32 %sub429}430 431define dso_local void @setnbc26(i8 zeroext %a, i8 zeroext %b) {432; CHECK-LE-LABEL: setnbc26:433; CHECK-LE:       # %bb.0: # %entry434; CHECK-LE-NEXT:    cmplw r3, r4435; CHECK-LE-NEXT:    setnbc r3, gt436; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1437; CHECK-LE-NEXT:    blr438;439; CHECK-BE-LABEL: setnbc26:440; CHECK-BE:       # %bb.0: # %entry441; CHECK-BE-NEXT:    cmplw r3, r4442; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha443; CHECK-BE-NEXT:    setnbc r3, gt444; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)445; CHECK-BE-NEXT:    blr446entry:447  %cmp = icmp ugt i8 %a, %b448  %conv3 = sext i1 %cmp to i8449  store i8 %conv3, ptr @globalVal, align 1450  ret void451}452 453define dso_local signext i32 @setnbc27(i32 zeroext %a, i32 zeroext %b) {454; CHECK-LABEL: setnbc27:455; CHECK:       # %bb.0: # %entry456; CHECK-NEXT:    cmplw r3, r4457; CHECK-NEXT:    setnbc r3, gt458; CHECK-NEXT:    blr459entry:460  %cmp = icmp ugt i32 %a, %b461  %sub = sext i1 %cmp to i32462  ret i32 %sub463}464 465define dso_local void @setnbc28(i32 zeroext %a, i32 zeroext %b) {466; CHECK-LE-LABEL: setnbc28:467; CHECK-LE:       # %bb.0: # %entry468; CHECK-LE-NEXT:    cmplw r3, r4469; CHECK-LE-NEXT:    setnbc r3, gt470; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1471; CHECK-LE-NEXT:    blr472;473; CHECK-BE-LABEL: setnbc28:474; CHECK-BE:       # %bb.0: # %entry475; CHECK-BE-NEXT:    cmplw r3, r4476; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha477; CHECK-BE-NEXT:    setnbc r3, gt478; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)479; CHECK-BE-NEXT:    blr480entry:481  %cmp = icmp ugt i32 %a, %b482  %sub = sext i1 %cmp to i32483  store i32 %sub, ptr @globalVal2, align 4484  ret void485}486 487define dso_local signext i32 @setnbc29(i16 zeroext %a, i16 zeroext %b) {488; CHECK-LABEL: setnbc29:489; CHECK:       # %bb.0: # %entry490; CHECK-NEXT:    cmplw r3, r4491; CHECK-NEXT:    setnbc r3, gt492; CHECK-NEXT:    blr493entry:494  %cmp = icmp ugt i16 %a, %b495  %sub = sext i1 %cmp to i32496  ret i32 %sub497}498 499define dso_local void @setnbc30(i16 zeroext %a, i16 zeroext %b) {500; CHECK-LE-LABEL: setnbc30:501; CHECK-LE:       # %bb.0: # %entry502; CHECK-LE-NEXT:    cmplw r3, r4503; CHECK-LE-NEXT:    setnbc r3, gt504; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1505; CHECK-LE-NEXT:    blr506;507; CHECK-BE-LABEL: setnbc30:508; CHECK-BE:       # %bb.0: # %entry509; CHECK-BE-NEXT:    cmplw r3, r4510; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha511; CHECK-BE-NEXT:    setnbc r3, gt512; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)513; CHECK-BE-NEXT:    blr514entry:515  %cmp = icmp ugt i16 %a, %b516  %conv3 = sext i1 %cmp to i16517  store i16 %conv3, ptr @globalVal4, align 2518  ret void519}520 521define dso_local signext i32 @setnbc31(i8 signext %a, i8 signext %b) {522; CHECK-LABEL: setnbc31:523; CHECK:       # %bb.0: # %entry524; CHECK-NEXT:    cmpw r3, r4525; CHECK-NEXT:    setnbc r3, lt526; CHECK-NEXT:    blr527entry:528  %cmp = icmp slt i8 %a, %b529  %sub = sext i1 %cmp to i32530  ret i32 %sub531}532 533define dso_local void @setnbc32(i8 signext %a, i8 signext %b) {534; CHECK-LE-LABEL: setnbc32:535; CHECK-LE:       # %bb.0: # %entry536; CHECK-LE-NEXT:    cmpw r3, r4537; CHECK-LE-NEXT:    setnbc r3, lt538; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1539; CHECK-LE-NEXT:    blr540;541; CHECK-BE-LABEL: setnbc32:542; CHECK-BE:       # %bb.0: # %entry543; CHECK-BE-NEXT:    cmpw r3, r4544; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha545; CHECK-BE-NEXT:    setnbc r3, lt546; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)547; CHECK-BE-NEXT:    blr548entry:549  %cmp = icmp slt i8 %a, %b550  %conv3 = sext i1 %cmp to i8551  store i8 %conv3, ptr @globalVal, align 1552  ret void553}554 555define dso_local void @setnbc33(i32 signext %a, i32 signext %b) {556; CHECK-LE-LABEL: setnbc33:557; CHECK-LE:       # %bb.0: # %entry558; CHECK-LE-NEXT:    cmpw r3, r4559; CHECK-LE-NEXT:    setnbc r3, lt560; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1561; CHECK-LE-NEXT:    blr562;563; CHECK-BE-LABEL: setnbc33:564; CHECK-BE:       # %bb.0: # %entry565; CHECK-BE-NEXT:    cmpw r3, r4566; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha567; CHECK-BE-NEXT:    setnbc r3, lt568; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)569; CHECK-BE-NEXT:    blr570entry:571  %cmp = icmp slt i32 %a, %b572  %sub = sext i1 %cmp to i32573  store i32 %sub, ptr @globalVal2, align 4574  ret void575}576 577define dso_local signext i32 @setnbc34(i64 %a, i64 %b) {578; CHECK-LABEL: setnbc34:579; CHECK:       # %bb.0: # %entry580; CHECK-NEXT:    cmpd r3, r4581; CHECK-NEXT:    setnbc r3, lt582; CHECK-NEXT:    blr583entry:584  %cmp = icmp slt i64 %a, %b585  %sub = sext i1 %cmp to i32586  ret i32 %sub587}588 589define signext i64 @setnbc35(i64 %a, i64 %b) {590; CHECK-LABEL: setnbc35:591; CHECK:       # %bb.0: # %entry592; CHECK-NEXT:    cmpd r3, r4593; CHECK-NEXT:    setnbc r3, lt594; CHECK-NEXT:    blr595entry:596  %cmp = icmp slt i64 %a, %b597  %sub = sext i1 %cmp to i64598  ret i64 %sub599}600 601define dso_local void @setnbc36(i64 %a, i64 %b) {602; CHECK-LE-LABEL: setnbc36:603; CHECK-LE:       # %bb.0: # %entry604; CHECK-LE-NEXT:    cmpd r3, r4605; CHECK-LE-NEXT:    setnbc r3, lt606; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1607; CHECK-LE-NEXT:    blr608;609; CHECK-BE-LABEL: setnbc36:610; CHECK-BE:       # %bb.0: # %entry611; CHECK-BE-NEXT:    cmpd r3, r4612; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha613; CHECK-BE-NEXT:    setnbc r3, lt614; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)615; CHECK-BE-NEXT:    blr616entry:617  %cmp = icmp slt i64 %a, %b618  %conv1 = sext i1 %cmp to i64619  store i64 %conv1, ptr @globalVal3, align 8620  ret void621}622 623define dso_local signext i32 @setnbc37(i16 signext %a, i16 signext %b) {624; CHECK-LABEL: setnbc37:625; CHECK:       # %bb.0: # %entry626; CHECK-NEXT:    cmpw r3, r4627; CHECK-NEXT:    setnbc r3, lt628; CHECK-NEXT:    blr629entry:630  %cmp = icmp slt i16 %a, %b631  %sub = sext i1 %cmp to i32632  ret i32 %sub633}634 635define dso_local void @setnbc38(i16 signext %a, i16 signext %b) {636; CHECK-LE-LABEL: setnbc38:637; CHECK-LE:       # %bb.0: # %entry638; CHECK-LE-NEXT:    cmpw r3, r4639; CHECK-LE-NEXT:    setnbc r3, lt640; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1641; CHECK-LE-NEXT:    blr642;643; CHECK-BE-LABEL: setnbc38:644; CHECK-BE:       # %bb.0: # %entry645; CHECK-BE-NEXT:    cmpw r3, r4646; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha647; CHECK-BE-NEXT:    setnbc r3, lt648; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)649; CHECK-BE-NEXT:    blr650entry:651  %cmp = icmp slt i16 %a, %b652  %conv3 = sext i1 %cmp to i16653  store i16 %conv3, ptr @globalVal4, align 2654  ret void655}656 657define dso_local signext i32 @setnbc39(i8 zeroext %a, i8 zeroext %b) {658; CHECK-LABEL: setnbc39:659; CHECK:       # %bb.0: # %entry660; CHECK-NEXT:    cmplw r3, r4661; CHECK-NEXT:    setnbc r3, lt662; CHECK-NEXT:    blr663entry:664  %cmp = icmp ult i8 %a, %b665  %sub = sext i1 %cmp to i32666  ret i32 %sub667}668 669define dso_local void @setnbc40(i8 zeroext %a, i8 zeroext %b) {670; CHECK-LE-LABEL: setnbc40:671; CHECK-LE:       # %bb.0: # %entry672; CHECK-LE-NEXT:    cmplw r3, r4673; CHECK-LE-NEXT:    setnbc r3, lt674; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1675; CHECK-LE-NEXT:    blr676;677; CHECK-BE-LABEL: setnbc40:678; CHECK-BE:       # %bb.0: # %entry679; CHECK-BE-NEXT:    cmplw r3, r4680; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha681; CHECK-BE-NEXT:    setnbc r3, lt682; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)683; CHECK-BE-NEXT:    blr684entry:685  %cmp = icmp ult i8 %a, %b686  %conv3 = sext i1 %cmp to i8687  store i8 %conv3, ptr @globalVal, align 1688  ret void689}690 691define dso_local signext i32 @setnbc41(i32 zeroext %a, i32 zeroext %b) {692; CHECK-LABEL: setnbc41:693; CHECK:       # %bb.0: # %entry694; CHECK-NEXT:    cmplw r3, r4695; CHECK-NEXT:    setnbc r3, lt696; CHECK-NEXT:    blr697entry:698  %cmp = icmp ult i32 %a, %b699  %sub = sext i1 %cmp to i32700  ret i32 %sub701}702 703define dso_local void @setnbc42(i32 zeroext %a, i32 zeroext %b) {704; CHECK-LE-LABEL: setnbc42:705; CHECK-LE:       # %bb.0: # %entry706; CHECK-LE-NEXT:    cmplw r3, r4707; CHECK-LE-NEXT:    setnbc r3, lt708; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1709; CHECK-LE-NEXT:    blr710;711; CHECK-BE-LABEL: setnbc42:712; CHECK-BE:       # %bb.0: # %entry713; CHECK-BE-NEXT:    cmplw r3, r4714; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha715; CHECK-BE-NEXT:    setnbc r3, lt716; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)717; CHECK-BE-NEXT:    blr718entry:719  %cmp = icmp ult i32 %a, %b720  %sub = sext i1 %cmp to i32721  store i32 %sub, ptr @globalVal2, align 4722  ret void723}724 725define dso_local signext i32 @setnbc43(i16 zeroext %a, i16 zeroext %b) {726; CHECK-LABEL: setnbc43:727; CHECK:       # %bb.0: # %entry728; CHECK-NEXT:    cmplw r3, r4729; CHECK-NEXT:    setnbc r3, lt730; CHECK-NEXT:    blr731entry:732  %cmp = icmp ult i16 %a, %b733  %sub = sext i1 %cmp to i32734  ret i32 %sub735}736 737define dso_local void @setnbc44(i16 zeroext %a, i16 zeroext %b) {738; CHECK-LE-LABEL: setnbc44:739; CHECK-LE:       # %bb.0: # %entry740; CHECK-LE-NEXT:    cmplw r3, r4741; CHECK-LE-NEXT:    setnbc r3, lt742; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1743; CHECK-LE-NEXT:    blr744;745; CHECK-BE-LABEL: setnbc44:746; CHECK-BE:       # %bb.0: # %entry747; CHECK-BE-NEXT:    cmplw r3, r4748; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha749; CHECK-BE-NEXT:    setnbc r3, lt750; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)751; CHECK-BE-NEXT:    blr752entry:753  %cmp = icmp ult i16 %a, %b754  %conv3 = sext i1 %cmp to i16755  store i16 %conv3, ptr @globalVal4, align 2756  ret void757}758 759define i64 @setnbc45(i8 signext %a, i8 signext %b) {760; CHECK-LABEL: setnbc45:761; CHECK:       # %bb.0: # %entry762; CHECK-NEXT:    cmpw r3, r4763; CHECK-NEXT:    setnbc r3, eq764; CHECK-NEXT:    blr765entry:766  %cmp = icmp eq i8 %a, %b767  %conv3 = sext i1 %cmp to i64768  ret i64 %conv3769}770 771define dso_local void @setnbc46(i8 signext %a, i8 signext %b) {772; CHECK-LE-LABEL: setnbc46:773; CHECK-LE:       # %bb.0: # %entry774; CHECK-LE-NEXT:    cmpw r3, r4775; CHECK-LE-NEXT:    setnbc r3, eq776; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1777; CHECK-LE-NEXT:    blr778;779; CHECK-BE-LABEL: setnbc46:780; CHECK-BE:       # %bb.0: # %entry781; CHECK-BE-NEXT:    cmpw r3, r4782; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha783; CHECK-BE-NEXT:    setnbc r3, eq784; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)785; CHECK-BE-NEXT:    blr786entry:787  %cmp = icmp eq i8 %a, %b788  %conv3 = sext i1 %cmp to i8789  store i8 %conv3, ptr @globalVal, align 1790  ret void791}792 793define i64 @setnbc47(i32 signext %a, i32 signext %b) {794; CHECK-LABEL: setnbc47:795; CHECK:       # %bb.0: # %entry796; CHECK-NEXT:    cmpw r3, r4797; CHECK-NEXT:    setnbc r3, eq798; CHECK-NEXT:    blr799entry:800  %cmp = icmp eq i32 %a, %b801  %conv1 = sext i1 %cmp to i64802  ret i64 %conv1803}804 805define dso_local void @setnbc48(i32 signext %a, i32 signext %b) {806; CHECK-LE-LABEL: setnbc48:807; CHECK-LE:       # %bb.0: # %entry808; CHECK-LE-NEXT:    cmpw r3, r4809; CHECK-LE-NEXT:    setnbc r3, eq810; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1811; CHECK-LE-NEXT:    blr812;813; CHECK-BE-LABEL: setnbc48:814; CHECK-BE:       # %bb.0: # %entry815; CHECK-BE-NEXT:    cmpw r3, r4816; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha817; CHECK-BE-NEXT:    setnbc r3, eq818; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)819; CHECK-BE-NEXT:    blr820entry:821  %cmp = icmp eq i32 %a, %b822  %sub = sext i1 %cmp to i32823  store i32 %sub, ptr @globalVal2, align 4824  ret void825}826 827define dso_local void @setnbc49(i64 %a, i64 %b) {828; CHECK-LE-LABEL: setnbc49:829; CHECK-LE:       # %bb.0: # %entry830; CHECK-LE-NEXT:    cmpd r3, r4831; CHECK-LE-NEXT:    setnbc r3, eq832; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1833; CHECK-LE-NEXT:    blr834;835; CHECK-BE-LABEL: setnbc49:836; CHECK-BE:       # %bb.0: # %entry837; CHECK-BE-NEXT:    cmpd r3, r4838; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha839; CHECK-BE-NEXT:    setnbc r3, eq840; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)841; CHECK-BE-NEXT:    blr842entry:843  %cmp = icmp eq i64 %a, %b844  %conv1 = sext i1 %cmp to i64845  store i64 %conv1, ptr @globalVal3, align 8846  ret void847}848 849define i64 @setnbc50(i16 signext %a, i16 signext %b) {850; CHECK-LABEL: setnbc50:851; CHECK:       # %bb.0: # %entry852; CHECK-NEXT:    cmpw r3, r4853; CHECK-NEXT:    setnbc r3, eq854; CHECK-NEXT:    blr855entry:856  %cmp = icmp eq i16 %a, %b857  %conv3 = sext i1 %cmp to i64858  ret i64 %conv3859}860 861define dso_local void @setnbc51(i16 signext %a, i16 signext %b) {862; CHECK-LE-LABEL: setnbc51:863; CHECK-LE:       # %bb.0: # %entry864; CHECK-LE-NEXT:    cmpw r3, r4865; CHECK-LE-NEXT:    setnbc r3, eq866; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 1867; CHECK-LE-NEXT:    blr868;869; CHECK-BE-LABEL: setnbc51:870; CHECK-BE:       # %bb.0: # %entry871; CHECK-BE-NEXT:    cmpw r3, r4872; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha873; CHECK-BE-NEXT:    setnbc r3, eq874; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)875; CHECK-BE-NEXT:    blr876entry:877  %cmp = icmp eq i16 %a, %b878  %conv3 = sext i1 %cmp to i16879  store i16 %conv3, ptr @globalVal4, align 2880  ret void881}882 883define i64 @setnbc52(i8 zeroext %a, i8 zeroext %b) {884; CHECK-LABEL: setnbc52:885; CHECK:       # %bb.0: # %entry886; CHECK-NEXT:    cmpw r3, r4887; CHECK-NEXT:    setnbc r3, eq888; CHECK-NEXT:    blr889entry:890  %cmp = icmp eq i8 %a, %b891  %conv3 = sext i1 %cmp to i64892  ret i64 %conv3893}894 895define dso_local void @setnbc53(i8 zeroext %a, i8 zeroext %b) {896; CHECK-LE-LABEL: setnbc53:897; CHECK-LE:       # %bb.0: # %entry898; CHECK-LE-NEXT:    cmpw r3, r4899; CHECK-LE-NEXT:    setnbc r3, eq900; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 1901; CHECK-LE-NEXT:    blr902;903; CHECK-BE-LABEL: setnbc53:904; CHECK-BE:       # %bb.0: # %entry905; CHECK-BE-NEXT:    cmpw r3, r4906; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha907; CHECK-BE-NEXT:    setnbc r3, eq908; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)909; CHECK-BE-NEXT:    blr910entry:911  %cmp = icmp eq i8 %a, %b912  %conv3 = sext i1 %cmp to i8913  store i8 %conv3, ptr @globalVal, align 1914  ret void915}916 917define i64 @setnbc54(i32 zeroext %a, i32 zeroext %b) {918; CHECK-LABEL: setnbc54:919; CHECK:       # %bb.0: # %entry920; CHECK-NEXT:    cmpw r3, r4921; CHECK-NEXT:    setnbc r3, eq922; CHECK-NEXT:    blr923entry:924  %cmp = icmp eq i32 %a, %b925  %conv1 = sext i1 %cmp to i64926  ret i64 %conv1927}928 929define dso_local void @setnbc55(i32 zeroext %a, i32 zeroext %b) {930; CHECK-LE-LABEL: setnbc55:931; CHECK-LE:       # %bb.0: # %entry932; CHECK-LE-NEXT:    cmpw r3, r4933; CHECK-LE-NEXT:    setnbc r3, eq934; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 1935; CHECK-LE-NEXT:    blr936;937; CHECK-BE-LABEL: setnbc55:938; CHECK-BE:       # %bb.0: # %entry939; CHECK-BE-NEXT:    cmpw r3, r4940; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha941; CHECK-BE-NEXT:    setnbc r3, eq942; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)943; CHECK-BE-NEXT:    blr944entry:945  %cmp = icmp eq i32 %a, %b946  %sub = sext i1 %cmp to i32947  store i32 %sub, ptr @globalVal2, align 4948  ret void949}950 951define i64 @setnbc56(i64 %a, i64 %b) {952; CHECK-LABEL: setnbc56:953; CHECK:       # %bb.0: # %entry954; CHECK-NEXT:    cmpd r3, r4955; CHECK-NEXT:    setnbc r3, eq956; CHECK-NEXT:    blr957entry:958  %cmp = icmp eq i64 %a, %b959  %conv1 = sext i1 %cmp to i64960  ret i64 %conv1961}962 963define dso_local void @setnbc57(i64 %a, i64 %b) {964; CHECK-LE-LABEL: setnbc57:965; CHECK-LE:       # %bb.0: # %entry966; CHECK-LE-NEXT:    cmpd r3, r4967; CHECK-LE-NEXT:    setnbc r3, eq968; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 1969; CHECK-LE-NEXT:    blr970;971; CHECK-BE-LABEL: setnbc57:972; CHECK-BE:       # %bb.0: # %entry973; CHECK-BE-NEXT:    cmpd r3, r4974; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha975; CHECK-BE-NEXT:    setnbc r3, eq976; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)977; CHECK-BE-NEXT:    blr978entry:979  %cmp = icmp eq i64 %a, %b980  %conv1 = sext i1 %cmp to i64981  store i64 %conv1, ptr @globalVal3, align 8982  ret void983}984 985define i64 @setnbc58(i16 zeroext %a, i16 zeroext %b) {986; CHECK-LABEL: setnbc58:987; CHECK:       # %bb.0: # %entry988; CHECK-NEXT:    cmpw r3, r4989; CHECK-NEXT:    setnbc r3, eq990; CHECK-NEXT:    blr991entry:992  %cmp = icmp eq i16 %a, %b993  %conv3 = sext i1 %cmp to i64994  ret i64 %conv3995}996 997define dso_local void @setnbc59(i16 zeroext %a, i16 zeroext %b) {998; CHECK-LE-LABEL: setnbc59:999; CHECK-LE:       # %bb.0: # %entry1000; CHECK-LE-NEXT:    cmpw r3, r41001; CHECK-LE-NEXT:    setnbc r3, eq1002; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 11003; CHECK-LE-NEXT:    blr1004;1005; CHECK-BE-LABEL: setnbc59:1006; CHECK-BE:       # %bb.0: # %entry1007; CHECK-BE-NEXT:    cmpw r3, r41008; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha1009; CHECK-BE-NEXT:    setnbc r3, eq1010; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)1011; CHECK-BE-NEXT:    blr1012entry:1013  %cmp = icmp eq i16 %a, %b1014  %conv3 = sext i1 %cmp to i161015  store i16 %conv3, ptr @globalVal4, align 21016  ret void1017}1018 1019define i64 @setnbc60(i64 %a, i64 %b) {1020; CHECK-LABEL: setnbc60:1021; CHECK:       # %bb.0: # %entry1022; CHECK-NEXT:    cmpd r3, r41023; CHECK-NEXT:    setnbc r3, gt1024; CHECK-NEXT:    blr1025entry:1026  %cmp = icmp sgt i64 %a, %b1027  %conv1 = sext i1 %cmp to i641028  ret i64 %conv11029}1030 1031define dso_local void @setnbc61(i64 %a, i64 %b) {1032; CHECK-LE-LABEL: setnbc61:1033; CHECK-LE:       # %bb.0: # %entry1034; CHECK-LE-NEXT:    cmpd r3, r41035; CHECK-LE-NEXT:    setnbc r3, gt1036; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 11037; CHECK-LE-NEXT:    blr1038;1039; CHECK-BE-LABEL: setnbc61:1040; CHECK-BE:       # %bb.0: # %entry1041; CHECK-BE-NEXT:    cmpd r3, r41042; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha1043; CHECK-BE-NEXT:    setnbc r3, gt1044; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)1045; CHECK-BE-NEXT:    blr1046entry:1047  %cmp = icmp sgt i64 %a, %b1048  %conv1 = sext i1 %cmp to i641049  store i64 %conv1, ptr @globalVal3, align 81050  ret void1051}1052 1053define i64 @setnbc62(i8 zeroext %a, i8 zeroext %b) {1054; CHECK-LABEL: setnbc62:1055; CHECK:       # %bb.0: # %entry1056; CHECK-NEXT:    cmplw r3, r41057; CHECK-NEXT:    setnbc r3, gt1058; CHECK-NEXT:    blr1059entry:1060  %cmp = icmp ugt i8 %a, %b1061  %conv3 = sext i1 %cmp to i641062  ret i64 %conv31063}1064 1065define dso_local void @setnbc63(i8 zeroext %a, i8 zeroext %b) {1066; CHECK-LE-LABEL: setnbc63:1067; CHECK-LE:       # %bb.0: # %entry1068; CHECK-LE-NEXT:    cmplw r3, r41069; CHECK-LE-NEXT:    setnbc r3, gt1070; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 11071; CHECK-LE-NEXT:    blr1072;1073; CHECK-BE-LABEL: setnbc63:1074; CHECK-BE:       # %bb.0: # %entry1075; CHECK-BE-NEXT:    cmplw r3, r41076; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha1077; CHECK-BE-NEXT:    setnbc r3, gt1078; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)1079; CHECK-BE-NEXT:    blr1080entry:1081  %cmp = icmp ugt i8 %a, %b1082  %conv3 = sext i1 %cmp to i81083  store i8 %conv3, ptr @globalVal, align 11084  ret void1085}1086 1087define i64 @setnbc64(i32 zeroext %a, i32 zeroext %b) {1088; CHECK-LABEL: setnbc64:1089; CHECK:       # %bb.0: # %entry1090; CHECK-NEXT:    cmplw r3, r41091; CHECK-NEXT:    setnbc r3, gt1092; CHECK-NEXT:    blr1093entry:1094  %cmp = icmp ugt i32 %a, %b1095  %conv1 = sext i1 %cmp to i641096  ret i64 %conv11097}1098 1099define dso_local void @setnbc65(i32 zeroext %a, i32 zeroext %b) {1100; CHECK-LE-LABEL: setnbc65:1101; CHECK-LE:       # %bb.0: # %entry1102; CHECK-LE-NEXT:    cmplw r3, r41103; CHECK-LE-NEXT:    setnbc r3, gt1104; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 11105; CHECK-LE-NEXT:    blr1106;1107; CHECK-BE-LABEL: setnbc65:1108; CHECK-BE:       # %bb.0: # %entry1109; CHECK-BE-NEXT:    cmplw r3, r41110; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha1111; CHECK-BE-NEXT:    setnbc r3, gt1112; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)1113; CHECK-BE-NEXT:    blr1114entry:1115  %cmp = icmp ugt i32 %a, %b1116  %sub = sext i1 %cmp to i321117  store i32 %sub, ptr @globalVal2, align 41118  ret void1119}1120 1121define i64 @setnbc66(i16 zeroext %a, i16 zeroext %b) {1122; CHECK-LABEL: setnbc66:1123; CHECK:       # %bb.0: # %entry1124; CHECK-NEXT:    cmplw r3, r41125; CHECK-NEXT:    setnbc r3, gt1126; CHECK-NEXT:    blr1127entry:1128  %cmp = icmp ugt i16 %a, %b1129  %conv3 = sext i1 %cmp to i641130  ret i64 %conv31131}1132 1133define dso_local void @setnbc67(i16 zeroext %a, i16 zeroext %b) {1134; CHECK-LE-LABEL: setnbc67:1135; CHECK-LE:       # %bb.0: # %entry1136; CHECK-LE-NEXT:    cmplw r3, r41137; CHECK-LE-NEXT:    setnbc r3, gt1138; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 11139; CHECK-LE-NEXT:    blr1140;1141; CHECK-BE-LABEL: setnbc67:1142; CHECK-BE:       # %bb.0: # %entry1143; CHECK-BE-NEXT:    cmplw r3, r41144; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha1145; CHECK-BE-NEXT:    setnbc r3, gt1146; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)1147; CHECK-BE-NEXT:    blr1148entry:1149  %cmp = icmp ugt i16 %a, %b1150  %conv3 = sext i1 %cmp to i161151  store i16 %conv3, ptr @globalVal4, align 21152  ret void1153}1154 1155define i64 @setnbc68(i64 %a, i64 %b) {1156; CHECK-LABEL: setnbc68:1157; CHECK:       # %bb.0: # %entry1158; CHECK-NEXT:    cmpd r3, r41159; CHECK-NEXT:    setnbc r3, lt1160; CHECK-NEXT:    blr1161entry:1162  %cmp = icmp slt i64 %a, %b1163  %conv1 = sext i1 %cmp to i641164  ret i64 %conv11165}1166 1167define dso_local void @setnbc69(i64 %a, i64 %b) {1168; CHECK-LE-LABEL: setnbc69:1169; CHECK-LE:       # %bb.0: # %entry1170; CHECK-LE-NEXT:    cmpd r3, r41171; CHECK-LE-NEXT:    setnbc r3, lt1172; CHECK-LE-NEXT:    pstd r3, globalVal3@PCREL(0), 11173; CHECK-LE-NEXT:    blr1174;1175; CHECK-BE-LABEL: setnbc69:1176; CHECK-BE:       # %bb.0: # %entry1177; CHECK-BE-NEXT:    cmpd r3, r41178; CHECK-BE-NEXT:    addis r4, r2, globalVal3@toc@ha1179; CHECK-BE-NEXT:    setnbc r3, lt1180; CHECK-BE-NEXT:    std r3, globalVal3@toc@l(r4)1181; CHECK-BE-NEXT:    blr1182entry:1183  %cmp = icmp slt i64 %a, %b1184  %conv1 = sext i1 %cmp to i641185  store i64 %conv1, ptr @globalVal3, align 81186  ret void1187}1188 1189define i64 @setnbc70(i8 zeroext %a, i8 zeroext %b) {1190; CHECK-LABEL: setnbc70:1191; CHECK:       # %bb.0: # %entry1192; CHECK-NEXT:    cmplw r3, r41193; CHECK-NEXT:    setnbc r3, lt1194; CHECK-NEXT:    blr1195entry:1196  %cmp = icmp ult i8 %a, %b1197  %conv3 = sext i1 %cmp to i641198  ret i64 %conv31199}1200 1201define dso_local void @setnbc71(i8 zeroext %a, i8 zeroext %b) {1202; CHECK-LE-LABEL: setnbc71:1203; CHECK-LE:       # %bb.0: # %entry1204; CHECK-LE-NEXT:    cmplw r3, r41205; CHECK-LE-NEXT:    setnbc r3, lt1206; CHECK-LE-NEXT:    pstb r3, globalVal@PCREL(0), 11207; CHECK-LE-NEXT:    blr1208;1209; CHECK-BE-LABEL: setnbc71:1210; CHECK-BE:       # %bb.0: # %entry1211; CHECK-BE-NEXT:    cmplw r3, r41212; CHECK-BE-NEXT:    addis r4, r2, globalVal@toc@ha1213; CHECK-BE-NEXT:    setnbc r3, lt1214; CHECK-BE-NEXT:    stb r3, globalVal@toc@l(r4)1215; CHECK-BE-NEXT:    blr1216entry:1217  %cmp = icmp ult i8 %a, %b1218  %conv3 = sext i1 %cmp to i81219  store i8 %conv3, ptr @globalVal, align 11220  ret void1221}1222 1223define i64 @setnbc72(i32 zeroext %a, i32 zeroext %b) {1224; CHECK-LABEL: setnbc72:1225; CHECK:       # %bb.0: # %entry1226; CHECK-NEXT:    cmplw r3, r41227; CHECK-NEXT:    setnbc r3, lt1228; CHECK-NEXT:    blr1229entry:1230  %cmp = icmp ult i32 %a, %b1231  %conv1 = sext i1 %cmp to i641232  ret i64 %conv11233}1234 1235define dso_local void @setnbc73(i32 zeroext %a, i32 zeroext %b) {1236; CHECK-LE-LABEL: setnbc73:1237; CHECK-LE:       # %bb.0: # %entry1238; CHECK-LE-NEXT:    cmplw r3, r41239; CHECK-LE-NEXT:    setnbc r3, lt1240; CHECK-LE-NEXT:    pstw r3, globalVal2@PCREL(0), 11241; CHECK-LE-NEXT:    blr1242;1243; CHECK-BE-LABEL: setnbc73:1244; CHECK-BE:       # %bb.0: # %entry1245; CHECK-BE-NEXT:    cmplw r3, r41246; CHECK-BE-NEXT:    addis r4, r2, globalVal2@toc@ha1247; CHECK-BE-NEXT:    setnbc r3, lt1248; CHECK-BE-NEXT:    stw r3, globalVal2@toc@l(r4)1249; CHECK-BE-NEXT:    blr1250entry:1251  %cmp = icmp ult i32 %a, %b1252  %sub = sext i1 %cmp to i321253  store i32 %sub, ptr @globalVal2, align 41254  ret void1255}1256 1257define i64 @setnbc74(i16 zeroext %a, i16 zeroext %b) {1258; CHECK-LABEL: setnbc74:1259; CHECK:       # %bb.0: # %entry1260; CHECK-NEXT:    cmplw r3, r41261; CHECK-NEXT:    setnbc r3, lt1262; CHECK-NEXT:    blr1263entry:1264  %cmp = icmp ult i16 %a, %b1265  %conv3 = sext i1 %cmp to i641266  ret i64 %conv31267}1268 1269define dso_local void @setnbc75(i16 zeroext %a, i16 zeroext %b) {1270; CHECK-LE-LABEL: setnbc75:1271; CHECK-LE:       # %bb.0: # %entry1272; CHECK-LE-NEXT:    cmplw r3, r41273; CHECK-LE-NEXT:    setnbc r3, lt1274; CHECK-LE-NEXT:    psth r3, globalVal4@PCREL(0), 11275; CHECK-LE-NEXT:    blr1276;1277; CHECK-BE-LABEL: setnbc75:1278; CHECK-BE:       # %bb.0: # %entry1279; CHECK-BE-NEXT:    cmplw r3, r41280; CHECK-BE-NEXT:    addis r4, r2, globalVal4@toc@ha1281; CHECK-BE-NEXT:    setnbc r3, lt1282; CHECK-BE-NEXT:    sth r3, globalVal4@toc@l(r4)1283; CHECK-BE-NEXT:    blr1284entry:1285  %cmp = icmp ult i16 %a, %b1286  %conv3 = sext i1 %cmp to i161287  store i16 %conv3, ptr @globalVal4, align 21288  ret void1289}1290 1291