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