1188 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple arm64-apple-ios -mattr +cmpbr -verify-machineinstrs -o - < %s | FileCheck %s --check-prefix=CHECK-CMPBR3; RUN: llc -mtriple arm64-apple-ios -mattr -cmpbr -verify-machineinstrs -o - < %s | FileCheck %s --check-prefix=CHECK-NO-CMPBR4 5define void @cbgt_i8(i8 %a, i8 %b) {6; CHECK-CMPBR-LABEL: cbgt_i8:7; CHECK-CMPBR: ; %bb.0: ; %entry8; CHECK-CMPBR-NEXT: cbbgt w0, w1, LBB0_29; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end10; CHECK-CMPBR-NEXT: ret11; CHECK-CMPBR-NEXT: LBB0_2: ; %if.then12; CHECK-CMPBR-NEXT: brk #0x113;14; CHECK-NO-CMPBR-LABEL: cbgt_i8:15; CHECK-NO-CMPBR: ; %bb.0: ; %entry16; CHECK-NO-CMPBR-NEXT: sxtb w8, w017; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxtb18; CHECK-NO-CMPBR-NEXT: b.gt LBB0_219; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end20; CHECK-NO-CMPBR-NEXT: ret21; CHECK-NO-CMPBR-NEXT: LBB0_2: ; %if.then22; CHECK-NO-CMPBR-NEXT: brk #0x123entry:24 %cmp = icmp sgt i8 %a, %b25 br i1 %cmp, label %if.then, label %if.end26 27if.then:28 tail call void @llvm.trap()29 unreachable30 31if.end:32 ret void33}34 35define void @cbge_i8(i8 %a, i8 %b) {36; CHECK-CMPBR-LABEL: cbge_i8:37; CHECK-CMPBR: ; %bb.0: ; %entry38; CHECK-CMPBR-NEXT: cbbge w0, w1, LBB1_239; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end40; CHECK-CMPBR-NEXT: ret41; CHECK-CMPBR-NEXT: LBB1_2: ; %if.then42; CHECK-CMPBR-NEXT: brk #0x143;44; CHECK-NO-CMPBR-LABEL: cbge_i8:45; CHECK-NO-CMPBR: ; %bb.0: ; %entry46; CHECK-NO-CMPBR-NEXT: sxtb w8, w047; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxtb48; CHECK-NO-CMPBR-NEXT: b.ge LBB1_249; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end50; CHECK-NO-CMPBR-NEXT: ret51; CHECK-NO-CMPBR-NEXT: LBB1_2: ; %if.then52; CHECK-NO-CMPBR-NEXT: brk #0x153entry:54 %cmp = icmp sge i8 %a, %b55 br i1 %cmp, label %if.then, label %if.end56 57if.then:58 tail call void @llvm.trap()59 unreachable60 61if.end:62 ret void63}64 65 66define void @cbhi_i8(i8 %a, i8 %b) {67; CHECK-CMPBR-LABEL: cbhi_i8:68; CHECK-CMPBR: ; %bb.0: ; %entry69; CHECK-CMPBR-NEXT: cbbhi w0, w1, LBB2_270; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end71; CHECK-CMPBR-NEXT: ret72; CHECK-CMPBR-NEXT: LBB2_2: ; %if.then73; CHECK-CMPBR-NEXT: brk #0x174;75; CHECK-NO-CMPBR-LABEL: cbhi_i8:76; CHECK-NO-CMPBR: ; %bb.0: ; %entry77; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff78; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb79; CHECK-NO-CMPBR-NEXT: b.hi LBB2_280; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end81; CHECK-NO-CMPBR-NEXT: ret82; CHECK-NO-CMPBR-NEXT: LBB2_2: ; %if.then83; CHECK-NO-CMPBR-NEXT: brk #0x184entry:85 %cmp = icmp ugt i8 %a, %b86 br i1 %cmp, label %if.then, label %if.end87 88if.then:89 tail call void @llvm.trap()90 unreachable91 92if.end:93 ret void94}95 96define void @cbhs_i8(i8 %a, i8 %b) {97; CHECK-CMPBR-LABEL: cbhs_i8:98; CHECK-CMPBR: ; %bb.0: ; %entry99; CHECK-CMPBR-NEXT: cbbhs w0, w1, LBB3_2100; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end101; CHECK-CMPBR-NEXT: ret102; CHECK-CMPBR-NEXT: LBB3_2: ; %if.then103; CHECK-CMPBR-NEXT: brk #0x1104;105; CHECK-NO-CMPBR-LABEL: cbhs_i8:106; CHECK-NO-CMPBR: ; %bb.0: ; %entry107; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff108; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb109; CHECK-NO-CMPBR-NEXT: b.hs LBB3_2110; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end111; CHECK-NO-CMPBR-NEXT: ret112; CHECK-NO-CMPBR-NEXT: LBB3_2: ; %if.then113; CHECK-NO-CMPBR-NEXT: brk #0x1114entry:115 %cmp = icmp uge i8 %a, %b116 br i1 %cmp, label %if.then, label %if.end117 118if.then:119 tail call void @llvm.trap()120 unreachable121 122if.end:123 ret void124}125 126define void @cbeq_i8(i8 %a, i8 %b) {127; CHECK-CMPBR-LABEL: cbeq_i8:128; CHECK-CMPBR: ; %bb.0: ; %entry129; CHECK-CMPBR-NEXT: cbbeq w0, w1, LBB4_2130; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end131; CHECK-CMPBR-NEXT: ret132; CHECK-CMPBR-NEXT: LBB4_2: ; %if.then133; CHECK-CMPBR-NEXT: brk #0x1134;135; CHECK-NO-CMPBR-LABEL: cbeq_i8:136; CHECK-NO-CMPBR: ; %bb.0: ; %entry137; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff138; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb139; CHECK-NO-CMPBR-NEXT: b.eq LBB4_2140; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end141; CHECK-NO-CMPBR-NEXT: ret142; CHECK-NO-CMPBR-NEXT: LBB4_2: ; %if.then143; CHECK-NO-CMPBR-NEXT: brk #0x1144entry:145 %cmp = icmp eq i8 %a, %b146 br i1 %cmp, label %if.then, label %if.end147 148if.then:149 tail call void @llvm.trap()150 unreachable151 152if.end:153 ret void154}155 156define void @cbne_i8(i8 %a, i8 %b) {157; CHECK-CMPBR-LABEL: cbne_i8:158; CHECK-CMPBR: ; %bb.0: ; %entry159; CHECK-CMPBR-NEXT: cbbne w0, w1, LBB5_2160; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end161; CHECK-CMPBR-NEXT: ret162; CHECK-CMPBR-NEXT: LBB5_2: ; %if.then163; CHECK-CMPBR-NEXT: brk #0x1164;165; CHECK-NO-CMPBR-LABEL: cbne_i8:166; CHECK-NO-CMPBR: ; %bb.0: ; %entry167; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff168; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb169; CHECK-NO-CMPBR-NEXT: b.ne LBB5_2170; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end171; CHECK-NO-CMPBR-NEXT: ret172; CHECK-NO-CMPBR-NEXT: LBB5_2: ; %if.then173; CHECK-NO-CMPBR-NEXT: brk #0x1174entry:175 %cmp = icmp ne i8 %a, %b176 br i1 %cmp, label %if.then, label %if.end177 178if.then:179 tail call void @llvm.trap()180 unreachable181 182if.end:183 ret void184}185 186define void @cble_ge_swap_i8(i8 %a, i8 %b) {187; CHECK-CMPBR-LABEL: cble_ge_swap_i8:188; CHECK-CMPBR: ; %bb.0: ; %entry189; CHECK-CMPBR-NEXT: cbbge w1, w0, LBB6_2190; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end191; CHECK-CMPBR-NEXT: ret192; CHECK-CMPBR-NEXT: LBB6_2: ; %if.then193; CHECK-CMPBR-NEXT: brk #0x1194;195; CHECK-NO-CMPBR-LABEL: cble_ge_swap_i8:196; CHECK-NO-CMPBR: ; %bb.0: ; %entry197; CHECK-NO-CMPBR-NEXT: sxtb w8, w0198; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxtb199; CHECK-NO-CMPBR-NEXT: b.le LBB6_2200; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end201; CHECK-NO-CMPBR-NEXT: ret202; CHECK-NO-CMPBR-NEXT: LBB6_2: ; %if.then203; CHECK-NO-CMPBR-NEXT: brk #0x1204entry:205 %cmp = icmp sle i8 %a, %b206 br i1 %cmp, label %if.then, label %if.end207 208if.then:209 tail call void @llvm.trap()210 unreachable211 212if.end:213 ret void214}215 216define void @cblo_hi_swap_i8(i8 %a, i8 %b) {217; CHECK-CMPBR-LABEL: cblo_hi_swap_i8:218; CHECK-CMPBR: ; %bb.0: ; %entry219; CHECK-CMPBR-NEXT: cbbhi w1, w0, LBB7_2220; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end221; CHECK-CMPBR-NEXT: ret222; CHECK-CMPBR-NEXT: LBB7_2: ; %if.then223; CHECK-CMPBR-NEXT: brk #0x1224;225; CHECK-NO-CMPBR-LABEL: cblo_hi_swap_i8:226; CHECK-NO-CMPBR: ; %bb.0: ; %entry227; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff228; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb229; CHECK-NO-CMPBR-NEXT: b.lo LBB7_2230; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end231; CHECK-NO-CMPBR-NEXT: ret232; CHECK-NO-CMPBR-NEXT: LBB7_2: ; %if.then233; CHECK-NO-CMPBR-NEXT: brk #0x1234entry:235 %cmp = icmp ult i8 %a, %b236 br i1 %cmp, label %if.then, label %if.end237 238if.then:239 tail call void @llvm.trap()240 unreachable241 242if.end:243 ret void244}245 246define void @cbls_hs_swap_i8(i8 %a, i8 %b) {247; CHECK-CMPBR-LABEL: cbls_hs_swap_i8:248; CHECK-CMPBR: ; %bb.0: ; %entry249; CHECK-CMPBR-NEXT: cbbhs w1, w0, LBB8_2250; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end251; CHECK-CMPBR-NEXT: ret252; CHECK-CMPBR-NEXT: LBB8_2: ; %if.then253; CHECK-CMPBR-NEXT: brk #0x1254;255; CHECK-NO-CMPBR-LABEL: cbls_hs_swap_i8:256; CHECK-NO-CMPBR: ; %bb.0: ; %entry257; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xff258; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxtb259; CHECK-NO-CMPBR-NEXT: b.ls LBB8_2260; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end261; CHECK-NO-CMPBR-NEXT: ret262; CHECK-NO-CMPBR-NEXT: LBB8_2: ; %if.then263; CHECK-NO-CMPBR-NEXT: brk #0x1264entry:265 %cmp = icmp ule i8 %a, %b266 br i1 %cmp, label %if.then, label %if.end267 268if.then:269 tail call void @llvm.trap()270 unreachable271 272if.end:273 ret void274}275 276define void @cblt_gt_swap_i8(i8 %a, i8 %b) {277; CHECK-CMPBR-LABEL: cblt_gt_swap_i8:278; CHECK-CMPBR: ; %bb.0: ; %entry279; CHECK-CMPBR-NEXT: cbbgt w1, w0, LBB9_2280; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end281; CHECK-CMPBR-NEXT: ret282; CHECK-CMPBR-NEXT: LBB9_2: ; %if.then283; CHECK-CMPBR-NEXT: brk #0x1284;285; CHECK-NO-CMPBR-LABEL: cblt_gt_swap_i8:286; CHECK-NO-CMPBR: ; %bb.0: ; %entry287; CHECK-NO-CMPBR-NEXT: sxtb w8, w0288; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxtb289; CHECK-NO-CMPBR-NEXT: b.lt LBB9_2290; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end291; CHECK-NO-CMPBR-NEXT: ret292; CHECK-NO-CMPBR-NEXT: LBB9_2: ; %if.then293; CHECK-NO-CMPBR-NEXT: brk #0x1294entry:295 %cmp = icmp slt i8 %a, %b296 br i1 %cmp, label %if.then, label %if.end297 298if.then:299 tail call void @llvm.trap()300 unreachable301 302if.end:303 ret void304}305 306define void @cbgt_i16(i16 %a, i16 %b) {307; CHECK-CMPBR-LABEL: cbgt_i16:308; CHECK-CMPBR: ; %bb.0: ; %entry309; CHECK-CMPBR-NEXT: cbhgt w0, w1, LBB10_2310; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end311; CHECK-CMPBR-NEXT: ret312; CHECK-CMPBR-NEXT: LBB10_2: ; %if.then313; CHECK-CMPBR-NEXT: brk #0x1314;315; CHECK-NO-CMPBR-LABEL: cbgt_i16:316; CHECK-NO-CMPBR: ; %bb.0: ; %entry317; CHECK-NO-CMPBR-NEXT: sxth w8, w0318; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxth319; CHECK-NO-CMPBR-NEXT: b.gt LBB10_2320; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end321; CHECK-NO-CMPBR-NEXT: ret322; CHECK-NO-CMPBR-NEXT: LBB10_2: ; %if.then323; CHECK-NO-CMPBR-NEXT: brk #0x1324entry:325 %cmp = icmp sgt i16 %a, %b326 br i1 %cmp, label %if.then, label %if.end327 328if.then:329 tail call void @llvm.trap()330 unreachable331 332if.end:333 ret void334}335 336define void @cbge_i16(i16 %a, i16 %b) {337; CHECK-CMPBR-LABEL: cbge_i16:338; CHECK-CMPBR: ; %bb.0: ; %entry339; CHECK-CMPBR-NEXT: cbhge w0, w1, LBB11_2340; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end341; CHECK-CMPBR-NEXT: ret342; CHECK-CMPBR-NEXT: LBB11_2: ; %if.then343; CHECK-CMPBR-NEXT: brk #0x1344;345; CHECK-NO-CMPBR-LABEL: cbge_i16:346; CHECK-NO-CMPBR: ; %bb.0: ; %entry347; CHECK-NO-CMPBR-NEXT: sxth w8, w0348; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxth349; CHECK-NO-CMPBR-NEXT: b.ge LBB11_2350; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end351; CHECK-NO-CMPBR-NEXT: ret352; CHECK-NO-CMPBR-NEXT: LBB11_2: ; %if.then353; CHECK-NO-CMPBR-NEXT: brk #0x1354entry:355 %cmp = icmp sge i16 %a, %b356 br i1 %cmp, label %if.then, label %if.end357 358if.then:359 tail call void @llvm.trap()360 unreachable361 362if.end:363 ret void364}365 366 367define void @cbhi_i16(i16 %a, i16 %b) {368; CHECK-CMPBR-LABEL: cbhi_i16:369; CHECK-CMPBR: ; %bb.0: ; %entry370; CHECK-CMPBR-NEXT: cbhhi w0, w1, LBB12_2371; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end372; CHECK-CMPBR-NEXT: ret373; CHECK-CMPBR-NEXT: LBB12_2: ; %if.then374; CHECK-CMPBR-NEXT: brk #0x1375;376; CHECK-NO-CMPBR-LABEL: cbhi_i16:377; CHECK-NO-CMPBR: ; %bb.0: ; %entry378; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff379; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth380; CHECK-NO-CMPBR-NEXT: b.hi LBB12_2381; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end382; CHECK-NO-CMPBR-NEXT: ret383; CHECK-NO-CMPBR-NEXT: LBB12_2: ; %if.then384; CHECK-NO-CMPBR-NEXT: brk #0x1385entry:386 %cmp = icmp ugt i16 %a, %b387 br i1 %cmp, label %if.then, label %if.end388 389if.then:390 tail call void @llvm.trap()391 unreachable392 393if.end:394 ret void395}396 397define void @cbhs_i16(i16 %a, i16 %b) {398; CHECK-CMPBR-LABEL: cbhs_i16:399; CHECK-CMPBR: ; %bb.0: ; %entry400; CHECK-CMPBR-NEXT: cbhhs w0, w1, LBB13_2401; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end402; CHECK-CMPBR-NEXT: ret403; CHECK-CMPBR-NEXT: LBB13_2: ; %if.then404; CHECK-CMPBR-NEXT: brk #0x1405;406; CHECK-NO-CMPBR-LABEL: cbhs_i16:407; CHECK-NO-CMPBR: ; %bb.0: ; %entry408; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff409; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth410; CHECK-NO-CMPBR-NEXT: b.hs LBB13_2411; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end412; CHECK-NO-CMPBR-NEXT: ret413; CHECK-NO-CMPBR-NEXT: LBB13_2: ; %if.then414; CHECK-NO-CMPBR-NEXT: brk #0x1415entry:416 %cmp = icmp uge i16 %a, %b417 br i1 %cmp, label %if.then, label %if.end418 419if.then:420 tail call void @llvm.trap()421 unreachable422 423if.end:424 ret void425}426 427define void @cbeq_i16(i16 %a, i16 %b) {428; CHECK-CMPBR-LABEL: cbeq_i16:429; CHECK-CMPBR: ; %bb.0: ; %entry430; CHECK-CMPBR-NEXT: cbheq w0, w1, LBB14_2431; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end432; CHECK-CMPBR-NEXT: ret433; CHECK-CMPBR-NEXT: LBB14_2: ; %if.then434; CHECK-CMPBR-NEXT: brk #0x1435;436; CHECK-NO-CMPBR-LABEL: cbeq_i16:437; CHECK-NO-CMPBR: ; %bb.0: ; %entry438; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff439; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth440; CHECK-NO-CMPBR-NEXT: b.eq LBB14_2441; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end442; CHECK-NO-CMPBR-NEXT: ret443; CHECK-NO-CMPBR-NEXT: LBB14_2: ; %if.then444; CHECK-NO-CMPBR-NEXT: brk #0x1445entry:446 %cmp = icmp eq i16 %a, %b447 br i1 %cmp, label %if.then, label %if.end448 449if.then:450 tail call void @llvm.trap()451 unreachable452 453if.end:454 ret void455}456 457define void @cbne_i16(i16 %a, i16 %b) {458; CHECK-CMPBR-LABEL: cbne_i16:459; CHECK-CMPBR: ; %bb.0: ; %entry460; CHECK-CMPBR-NEXT: cbhne w0, w1, LBB15_2461; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end462; CHECK-CMPBR-NEXT: ret463; CHECK-CMPBR-NEXT: LBB15_2: ; %if.then464; CHECK-CMPBR-NEXT: brk #0x1465;466; CHECK-NO-CMPBR-LABEL: cbne_i16:467; CHECK-NO-CMPBR: ; %bb.0: ; %entry468; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff469; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth470; CHECK-NO-CMPBR-NEXT: b.ne LBB15_2471; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end472; CHECK-NO-CMPBR-NEXT: ret473; CHECK-NO-CMPBR-NEXT: LBB15_2: ; %if.then474; CHECK-NO-CMPBR-NEXT: brk #0x1475entry:476 %cmp = icmp ne i16 %a, %b477 br i1 %cmp, label %if.then, label %if.end478 479if.then:480 tail call void @llvm.trap()481 unreachable482 483if.end:484 ret void485}486 487define void @cble_ge_swap_i16(i16 %a, i16 %b) {488; CHECK-CMPBR-LABEL: cble_ge_swap_i16:489; CHECK-CMPBR: ; %bb.0: ; %entry490; CHECK-CMPBR-NEXT: cbhge w1, w0, LBB16_2491; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end492; CHECK-CMPBR-NEXT: ret493; CHECK-CMPBR-NEXT: LBB16_2: ; %if.then494; CHECK-CMPBR-NEXT: brk #0x1495;496; CHECK-NO-CMPBR-LABEL: cble_ge_swap_i16:497; CHECK-NO-CMPBR: ; %bb.0: ; %entry498; CHECK-NO-CMPBR-NEXT: sxth w8, w0499; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxth500; CHECK-NO-CMPBR-NEXT: b.le LBB16_2501; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end502; CHECK-NO-CMPBR-NEXT: ret503; CHECK-NO-CMPBR-NEXT: LBB16_2: ; %if.then504; CHECK-NO-CMPBR-NEXT: brk #0x1505entry:506 %cmp = icmp sle i16 %a, %b507 br i1 %cmp, label %if.then, label %if.end508 509if.then:510 tail call void @llvm.trap()511 unreachable512 513if.end:514 ret void515}516 517define void @cblo_hi_swap_i16(i16 %a, i16 %b) {518; CHECK-CMPBR-LABEL: cblo_hi_swap_i16:519; CHECK-CMPBR: ; %bb.0: ; %entry520; CHECK-CMPBR-NEXT: cbhhi w1, w0, LBB17_2521; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end522; CHECK-CMPBR-NEXT: ret523; CHECK-CMPBR-NEXT: LBB17_2: ; %if.then524; CHECK-CMPBR-NEXT: brk #0x1525;526; CHECK-NO-CMPBR-LABEL: cblo_hi_swap_i16:527; CHECK-NO-CMPBR: ; %bb.0: ; %entry528; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff529; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth530; CHECK-NO-CMPBR-NEXT: b.lo LBB17_2531; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end532; CHECK-NO-CMPBR-NEXT: ret533; CHECK-NO-CMPBR-NEXT: LBB17_2: ; %if.then534; CHECK-NO-CMPBR-NEXT: brk #0x1535entry:536 %cmp = icmp ult i16 %a, %b537 br i1 %cmp, label %if.then, label %if.end538 539if.then:540 tail call void @llvm.trap()541 unreachable542 543if.end:544 ret void545}546 547define void @cbls_hs_swap_i16(i16 %a, i16 %b) {548; CHECK-CMPBR-LABEL: cbls_hs_swap_i16:549; CHECK-CMPBR: ; %bb.0: ; %entry550; CHECK-CMPBR-NEXT: cbhhs w1, w0, LBB18_2551; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end552; CHECK-CMPBR-NEXT: ret553; CHECK-CMPBR-NEXT: LBB18_2: ; %if.then554; CHECK-CMPBR-NEXT: brk #0x1555;556; CHECK-NO-CMPBR-LABEL: cbls_hs_swap_i16:557; CHECK-NO-CMPBR: ; %bb.0: ; %entry558; CHECK-NO-CMPBR-NEXT: and w8, w0, #0xffff559; CHECK-NO-CMPBR-NEXT: cmp w8, w1, uxth560; CHECK-NO-CMPBR-NEXT: b.ls LBB18_2561; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end562; CHECK-NO-CMPBR-NEXT: ret563; CHECK-NO-CMPBR-NEXT: LBB18_2: ; %if.then564; CHECK-NO-CMPBR-NEXT: brk #0x1565entry:566 %cmp = icmp ule i16 %a, %b567 br i1 %cmp, label %if.then, label %if.end568 569if.then:570 tail call void @llvm.trap()571 unreachable572 573if.end:574 ret void575}576 577define void @cblt_gt_swap_i16(i16 %a, i16 %b) {578; CHECK-CMPBR-LABEL: cblt_gt_swap_i16:579; CHECK-CMPBR: ; %bb.0: ; %entry580; CHECK-CMPBR-NEXT: cbhgt w1, w0, LBB19_2581; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end582; CHECK-CMPBR-NEXT: ret583; CHECK-CMPBR-NEXT: LBB19_2: ; %if.then584; CHECK-CMPBR-NEXT: brk #0x1585;586; CHECK-NO-CMPBR-LABEL: cblt_gt_swap_i16:587; CHECK-NO-CMPBR: ; %bb.0: ; %entry588; CHECK-NO-CMPBR-NEXT: sxth w8, w0589; CHECK-NO-CMPBR-NEXT: cmp w8, w1, sxth590; CHECK-NO-CMPBR-NEXT: b.lt LBB19_2591; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end592; CHECK-NO-CMPBR-NEXT: ret593; CHECK-NO-CMPBR-NEXT: LBB19_2: ; %if.then594; CHECK-NO-CMPBR-NEXT: brk #0x1595entry:596 %cmp = icmp slt i16 %a, %b597 br i1 %cmp, label %if.then, label %if.end598 599if.then:600 tail call void @llvm.trap()601 unreachable602 603if.end:604 ret void605}606 607define void @cbgt_i32(i32 %a, i32 %b) {608; CHECK-CMPBR-LABEL: cbgt_i32:609; CHECK-CMPBR: ; %bb.0: ; %entry610; CHECK-CMPBR-NEXT: cbgt w0, w1, LBB20_2611; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end612; CHECK-CMPBR-NEXT: ret613; CHECK-CMPBR-NEXT: LBB20_2: ; %if.then614; CHECK-CMPBR-NEXT: brk #0x1615;616; CHECK-NO-CMPBR-LABEL: cbgt_i32:617; CHECK-NO-CMPBR: ; %bb.0: ; %entry618; CHECK-NO-CMPBR-NEXT: cmp w0, w1619; CHECK-NO-CMPBR-NEXT: b.gt LBB20_2620; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end621; CHECK-NO-CMPBR-NEXT: ret622; CHECK-NO-CMPBR-NEXT: LBB20_2: ; %if.then623; CHECK-NO-CMPBR-NEXT: brk #0x1624entry:625 %cmp = icmp sgt i32 %a, %b626 br i1 %cmp, label %if.then, label %if.end627 628if.then:629 tail call void @llvm.trap()630 unreachable631 632if.end:633 ret void634}635 636define void @cbge_i32(i32 %a, i32 %b) {637; CHECK-CMPBR-LABEL: cbge_i32:638; CHECK-CMPBR: ; %bb.0: ; %entry639; CHECK-CMPBR-NEXT: cbge w0, w1, LBB21_2640; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end641; CHECK-CMPBR-NEXT: ret642; CHECK-CMPBR-NEXT: LBB21_2: ; %if.then643; CHECK-CMPBR-NEXT: brk #0x1644;645; CHECK-NO-CMPBR-LABEL: cbge_i32:646; CHECK-NO-CMPBR: ; %bb.0: ; %entry647; CHECK-NO-CMPBR-NEXT: cmp w0, w1648; CHECK-NO-CMPBR-NEXT: b.ge LBB21_2649; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end650; CHECK-NO-CMPBR-NEXT: ret651; CHECK-NO-CMPBR-NEXT: LBB21_2: ; %if.then652; CHECK-NO-CMPBR-NEXT: brk #0x1653entry:654 %cmp = icmp sge i32 %a, %b655 br i1 %cmp, label %if.then, label %if.end656 657if.then:658 tail call void @llvm.trap()659 unreachable660 661if.end:662 ret void663}664 665 666define void @cbhi_i32(i32 %a, i32 %b) {667; CHECK-CMPBR-LABEL: cbhi_i32:668; CHECK-CMPBR: ; %bb.0: ; %entry669; CHECK-CMPBR-NEXT: cbhi w0, w1, LBB22_2670; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end671; CHECK-CMPBR-NEXT: ret672; CHECK-CMPBR-NEXT: LBB22_2: ; %if.then673; CHECK-CMPBR-NEXT: brk #0x1674;675; CHECK-NO-CMPBR-LABEL: cbhi_i32:676; CHECK-NO-CMPBR: ; %bb.0: ; %entry677; CHECK-NO-CMPBR-NEXT: cmp w0, w1678; CHECK-NO-CMPBR-NEXT: b.hi LBB22_2679; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end680; CHECK-NO-CMPBR-NEXT: ret681; CHECK-NO-CMPBR-NEXT: LBB22_2: ; %if.then682; CHECK-NO-CMPBR-NEXT: brk #0x1683entry:684 %cmp = icmp ugt i32 %a, %b685 br i1 %cmp, label %if.then, label %if.end686 687if.then:688 tail call void @llvm.trap()689 unreachable690 691if.end:692 ret void693}694 695define void @cbhs_i32(i32 %a, i32 %b) {696; CHECK-CMPBR-LABEL: cbhs_i32:697; CHECK-CMPBR: ; %bb.0: ; %entry698; CHECK-CMPBR-NEXT: cbhs w0, w1, LBB23_2699; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end700; CHECK-CMPBR-NEXT: ret701; CHECK-CMPBR-NEXT: LBB23_2: ; %if.then702; CHECK-CMPBR-NEXT: brk #0x1703;704; CHECK-NO-CMPBR-LABEL: cbhs_i32:705; CHECK-NO-CMPBR: ; %bb.0: ; %entry706; CHECK-NO-CMPBR-NEXT: cmp w0, w1707; CHECK-NO-CMPBR-NEXT: b.hs LBB23_2708; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end709; CHECK-NO-CMPBR-NEXT: ret710; CHECK-NO-CMPBR-NEXT: LBB23_2: ; %if.then711; CHECK-NO-CMPBR-NEXT: brk #0x1712entry:713 %cmp = icmp uge i32 %a, %b714 br i1 %cmp, label %if.then, label %if.end715 716if.then:717 tail call void @llvm.trap()718 unreachable719 720if.end:721 ret void722}723 724define void @cbeq_i32(i32 %a, i32 %b) {725; CHECK-CMPBR-LABEL: cbeq_i32:726; CHECK-CMPBR: ; %bb.0: ; %entry727; CHECK-CMPBR-NEXT: cbeq w0, w1, LBB24_2728; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end729; CHECK-CMPBR-NEXT: ret730; CHECK-CMPBR-NEXT: LBB24_2: ; %if.then731; CHECK-CMPBR-NEXT: brk #0x1732;733; CHECK-NO-CMPBR-LABEL: cbeq_i32:734; CHECK-NO-CMPBR: ; %bb.0: ; %entry735; CHECK-NO-CMPBR-NEXT: cmp w0, w1736; CHECK-NO-CMPBR-NEXT: b.eq LBB24_2737; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end738; CHECK-NO-CMPBR-NEXT: ret739; CHECK-NO-CMPBR-NEXT: LBB24_2: ; %if.then740; CHECK-NO-CMPBR-NEXT: brk #0x1741entry:742 %cmp = icmp eq i32 %a, %b743 br i1 %cmp, label %if.then, label %if.end744 745if.then:746 tail call void @llvm.trap()747 unreachable748 749if.end:750 ret void751}752 753define void @cbne_i32(i32 %a, i32 %b) {754; CHECK-CMPBR-LABEL: cbne_i32:755; CHECK-CMPBR: ; %bb.0: ; %entry756; CHECK-CMPBR-NEXT: cbne w0, w1, LBB25_2757; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end758; CHECK-CMPBR-NEXT: ret759; CHECK-CMPBR-NEXT: LBB25_2: ; %if.then760; CHECK-CMPBR-NEXT: brk #0x1761;762; CHECK-NO-CMPBR-LABEL: cbne_i32:763; CHECK-NO-CMPBR: ; %bb.0: ; %entry764; CHECK-NO-CMPBR-NEXT: cmp w0, w1765; CHECK-NO-CMPBR-NEXT: b.ne LBB25_2766; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end767; CHECK-NO-CMPBR-NEXT: ret768; CHECK-NO-CMPBR-NEXT: LBB25_2: ; %if.then769; CHECK-NO-CMPBR-NEXT: brk #0x1770entry:771 %cmp = icmp ne i32 %a, %b772 br i1 %cmp, label %if.then, label %if.end773 774if.then:775 tail call void @llvm.trap()776 unreachable777 778if.end:779 ret void780}781 782define void @cble_ge_swap_i32(i32 %a, i32 %b) {783; CHECK-CMPBR-LABEL: cble_ge_swap_i32:784; CHECK-CMPBR: ; %bb.0: ; %entry785; CHECK-CMPBR-NEXT: cbge w1, w0, LBB26_2786; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end787; CHECK-CMPBR-NEXT: ret788; CHECK-CMPBR-NEXT: LBB26_2: ; %if.then789; CHECK-CMPBR-NEXT: brk #0x1790;791; CHECK-NO-CMPBR-LABEL: cble_ge_swap_i32:792; CHECK-NO-CMPBR: ; %bb.0: ; %entry793; CHECK-NO-CMPBR-NEXT: cmp w0, w1794; CHECK-NO-CMPBR-NEXT: b.le LBB26_2795; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end796; CHECK-NO-CMPBR-NEXT: ret797; CHECK-NO-CMPBR-NEXT: LBB26_2: ; %if.then798; CHECK-NO-CMPBR-NEXT: brk #0x1799entry:800 %cmp = icmp sle i32 %a, %b801 br i1 %cmp, label %if.then, label %if.end802 803if.then:804 tail call void @llvm.trap()805 unreachable806 807if.end:808 ret void809}810 811define void @cblo_hi_swap_i32(i32 %a, i32 %b) {812; CHECK-CMPBR-LABEL: cblo_hi_swap_i32:813; CHECK-CMPBR: ; %bb.0: ; %entry814; CHECK-CMPBR-NEXT: cbhi w1, w0, LBB27_2815; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end816; CHECK-CMPBR-NEXT: ret817; CHECK-CMPBR-NEXT: LBB27_2: ; %if.then818; CHECK-CMPBR-NEXT: brk #0x1819;820; CHECK-NO-CMPBR-LABEL: cblo_hi_swap_i32:821; CHECK-NO-CMPBR: ; %bb.0: ; %entry822; CHECK-NO-CMPBR-NEXT: cmp w0, w1823; CHECK-NO-CMPBR-NEXT: b.lo LBB27_2824; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end825; CHECK-NO-CMPBR-NEXT: ret826; CHECK-NO-CMPBR-NEXT: LBB27_2: ; %if.then827; CHECK-NO-CMPBR-NEXT: brk #0x1828entry:829 %cmp = icmp ult i32 %a, %b830 br i1 %cmp, label %if.then, label %if.end831 832if.then:833 tail call void @llvm.trap()834 unreachable835 836if.end:837 ret void838}839 840define void @cbls_hs_swap_i32(i32 %a, i32 %b) {841; CHECK-CMPBR-LABEL: cbls_hs_swap_i32:842; CHECK-CMPBR: ; %bb.0: ; %entry843; CHECK-CMPBR-NEXT: cbhs w1, w0, LBB28_2844; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end845; CHECK-CMPBR-NEXT: ret846; CHECK-CMPBR-NEXT: LBB28_2: ; %if.then847; CHECK-CMPBR-NEXT: brk #0x1848;849; CHECK-NO-CMPBR-LABEL: cbls_hs_swap_i32:850; CHECK-NO-CMPBR: ; %bb.0: ; %entry851; CHECK-NO-CMPBR-NEXT: cmp w0, w1852; CHECK-NO-CMPBR-NEXT: b.ls LBB28_2853; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end854; CHECK-NO-CMPBR-NEXT: ret855; CHECK-NO-CMPBR-NEXT: LBB28_2: ; %if.then856; CHECK-NO-CMPBR-NEXT: brk #0x1857entry:858 %cmp = icmp ule i32 %a, %b859 br i1 %cmp, label %if.then, label %if.end860 861if.then:862 tail call void @llvm.trap()863 unreachable864 865if.end:866 ret void867}868 869define void @cblt_gt_swap_i32(i32 %a, i32 %b) {870; CHECK-CMPBR-LABEL: cblt_gt_swap_i32:871; CHECK-CMPBR: ; %bb.0: ; %entry872; CHECK-CMPBR-NEXT: cbgt w1, w0, LBB29_2873; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end874; CHECK-CMPBR-NEXT: ret875; CHECK-CMPBR-NEXT: LBB29_2: ; %if.then876; CHECK-CMPBR-NEXT: brk #0x1877;878; CHECK-NO-CMPBR-LABEL: cblt_gt_swap_i32:879; CHECK-NO-CMPBR: ; %bb.0: ; %entry880; CHECK-NO-CMPBR-NEXT: cmp w0, w1881; CHECK-NO-CMPBR-NEXT: b.lt LBB29_2882; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end883; CHECK-NO-CMPBR-NEXT: ret884; CHECK-NO-CMPBR-NEXT: LBB29_2: ; %if.then885; CHECK-NO-CMPBR-NEXT: brk #0x1886entry:887 %cmp = icmp slt i32 %a, %b888 br i1 %cmp, label %if.then, label %if.end889 890if.then:891 tail call void @llvm.trap()892 unreachable893 894if.end:895 ret void896}897 898define void @cbgt_i64(i64 %a, i64 %b) {899; CHECK-CMPBR-LABEL: cbgt_i64:900; CHECK-CMPBR: ; %bb.0: ; %entry901; CHECK-CMPBR-NEXT: cbgt x0, x1, LBB30_2902; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end903; CHECK-CMPBR-NEXT: ret904; CHECK-CMPBR-NEXT: LBB30_2: ; %if.then905; CHECK-CMPBR-NEXT: brk #0x1906;907; CHECK-NO-CMPBR-LABEL: cbgt_i64:908; CHECK-NO-CMPBR: ; %bb.0: ; %entry909; CHECK-NO-CMPBR-NEXT: cmp x0, x1910; CHECK-NO-CMPBR-NEXT: b.gt LBB30_2911; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end912; CHECK-NO-CMPBR-NEXT: ret913; CHECK-NO-CMPBR-NEXT: LBB30_2: ; %if.then914; CHECK-NO-CMPBR-NEXT: brk #0x1915entry:916 %cmp = icmp sgt i64 %a, %b917 br i1 %cmp, label %if.then, label %if.end918 919if.then:920 tail call void @llvm.trap()921 unreachable922 923if.end:924 ret void925}926 927define void @cbge_i64(i64 %a, i64 %b) {928; CHECK-CMPBR-LABEL: cbge_i64:929; CHECK-CMPBR: ; %bb.0: ; %entry930; CHECK-CMPBR-NEXT: cbge x0, x1, LBB31_2931; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end932; CHECK-CMPBR-NEXT: ret933; CHECK-CMPBR-NEXT: LBB31_2: ; %if.then934; CHECK-CMPBR-NEXT: brk #0x1935;936; CHECK-NO-CMPBR-LABEL: cbge_i64:937; CHECK-NO-CMPBR: ; %bb.0: ; %entry938; CHECK-NO-CMPBR-NEXT: cmp x0, x1939; CHECK-NO-CMPBR-NEXT: b.ge LBB31_2940; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end941; CHECK-NO-CMPBR-NEXT: ret942; CHECK-NO-CMPBR-NEXT: LBB31_2: ; %if.then943; CHECK-NO-CMPBR-NEXT: brk #0x1944entry:945 %cmp = icmp sge i64 %a, %b946 br i1 %cmp, label %if.then, label %if.end947 948if.then:949 tail call void @llvm.trap()950 unreachable951 952if.end:953 ret void954}955 956 957define void @cbhi_i64(i64 %a, i64 %b) {958; CHECK-CMPBR-LABEL: cbhi_i64:959; CHECK-CMPBR: ; %bb.0: ; %entry960; CHECK-CMPBR-NEXT: cbhi x0, x1, LBB32_2961; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end962; CHECK-CMPBR-NEXT: ret963; CHECK-CMPBR-NEXT: LBB32_2: ; %if.then964; CHECK-CMPBR-NEXT: brk #0x1965;966; CHECK-NO-CMPBR-LABEL: cbhi_i64:967; CHECK-NO-CMPBR: ; %bb.0: ; %entry968; CHECK-NO-CMPBR-NEXT: cmp x0, x1969; CHECK-NO-CMPBR-NEXT: b.hi LBB32_2970; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end971; CHECK-NO-CMPBR-NEXT: ret972; CHECK-NO-CMPBR-NEXT: LBB32_2: ; %if.then973; CHECK-NO-CMPBR-NEXT: brk #0x1974entry:975 %cmp = icmp ugt i64 %a, %b976 br i1 %cmp, label %if.then, label %if.end977 978if.then:979 tail call void @llvm.trap()980 unreachable981 982if.end:983 ret void984}985 986define void @cbhs_i64(i64 %a, i64 %b) {987; CHECK-CMPBR-LABEL: cbhs_i64:988; CHECK-CMPBR: ; %bb.0: ; %entry989; CHECK-CMPBR-NEXT: cbhs x0, x1, LBB33_2990; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end991; CHECK-CMPBR-NEXT: ret992; CHECK-CMPBR-NEXT: LBB33_2: ; %if.then993; CHECK-CMPBR-NEXT: brk #0x1994;995; CHECK-NO-CMPBR-LABEL: cbhs_i64:996; CHECK-NO-CMPBR: ; %bb.0: ; %entry997; CHECK-NO-CMPBR-NEXT: cmp x0, x1998; CHECK-NO-CMPBR-NEXT: b.hs LBB33_2999; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1000; CHECK-NO-CMPBR-NEXT: ret1001; CHECK-NO-CMPBR-NEXT: LBB33_2: ; %if.then1002; CHECK-NO-CMPBR-NEXT: brk #0x11003entry:1004 %cmp = icmp uge i64 %a, %b1005 br i1 %cmp, label %if.then, label %if.end1006 1007if.then:1008 tail call void @llvm.trap()1009 unreachable1010 1011if.end:1012 ret void1013}1014 1015define void @cbeq_i64(i64 %a, i64 %b) {1016; CHECK-CMPBR-LABEL: cbeq_i64:1017; CHECK-CMPBR: ; %bb.0: ; %entry1018; CHECK-CMPBR-NEXT: cbeq x0, x1, LBB34_21019; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1020; CHECK-CMPBR-NEXT: ret1021; CHECK-CMPBR-NEXT: LBB34_2: ; %if.then1022; CHECK-CMPBR-NEXT: brk #0x11023;1024; CHECK-NO-CMPBR-LABEL: cbeq_i64:1025; CHECK-NO-CMPBR: ; %bb.0: ; %entry1026; CHECK-NO-CMPBR-NEXT: cmp x0, x11027; CHECK-NO-CMPBR-NEXT: b.eq LBB34_21028; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1029; CHECK-NO-CMPBR-NEXT: ret1030; CHECK-NO-CMPBR-NEXT: LBB34_2: ; %if.then1031; CHECK-NO-CMPBR-NEXT: brk #0x11032entry:1033 %cmp = icmp eq i64 %a, %b1034 br i1 %cmp, label %if.then, label %if.end1035 1036if.then:1037 tail call void @llvm.trap()1038 unreachable1039 1040if.end:1041 ret void1042}1043 1044define void @cbne_i64(i64 %a, i64 %b) {1045; CHECK-CMPBR-LABEL: cbne_i64:1046; CHECK-CMPBR: ; %bb.0: ; %entry1047; CHECK-CMPBR-NEXT: cbne x0, x1, LBB35_21048; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1049; CHECK-CMPBR-NEXT: ret1050; CHECK-CMPBR-NEXT: LBB35_2: ; %if.then1051; CHECK-CMPBR-NEXT: brk #0x11052;1053; CHECK-NO-CMPBR-LABEL: cbne_i64:1054; CHECK-NO-CMPBR: ; %bb.0: ; %entry1055; CHECK-NO-CMPBR-NEXT: cmp x0, x11056; CHECK-NO-CMPBR-NEXT: b.ne LBB35_21057; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1058; CHECK-NO-CMPBR-NEXT: ret1059; CHECK-NO-CMPBR-NEXT: LBB35_2: ; %if.then1060; CHECK-NO-CMPBR-NEXT: brk #0x11061entry:1062 %cmp = icmp ne i64 %a, %b1063 br i1 %cmp, label %if.then, label %if.end1064 1065if.then:1066 tail call void @llvm.trap()1067 unreachable1068 1069if.end:1070 ret void1071}1072 1073define void @cble_ge_swap_i64(i64 %a, i64 %b) {1074; CHECK-CMPBR-LABEL: cble_ge_swap_i64:1075; CHECK-CMPBR: ; %bb.0: ; %entry1076; CHECK-CMPBR-NEXT: cbge x1, x0, LBB36_21077; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1078; CHECK-CMPBR-NEXT: ret1079; CHECK-CMPBR-NEXT: LBB36_2: ; %if.then1080; CHECK-CMPBR-NEXT: brk #0x11081;1082; CHECK-NO-CMPBR-LABEL: cble_ge_swap_i64:1083; CHECK-NO-CMPBR: ; %bb.0: ; %entry1084; CHECK-NO-CMPBR-NEXT: cmp x0, x11085; CHECK-NO-CMPBR-NEXT: b.le LBB36_21086; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1087; CHECK-NO-CMPBR-NEXT: ret1088; CHECK-NO-CMPBR-NEXT: LBB36_2: ; %if.then1089; CHECK-NO-CMPBR-NEXT: brk #0x11090entry:1091 %cmp = icmp sle i64 %a, %b1092 br i1 %cmp, label %if.then, label %if.end1093 1094if.then:1095 tail call void @llvm.trap()1096 unreachable1097 1098if.end:1099 ret void1100}1101 1102define void @cblo_hi_swap_i64(i64 %a, i64 %b) {1103; CHECK-CMPBR-LABEL: cblo_hi_swap_i64:1104; CHECK-CMPBR: ; %bb.0: ; %entry1105; CHECK-CMPBR-NEXT: cbhi x1, x0, LBB37_21106; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1107; CHECK-CMPBR-NEXT: ret1108; CHECK-CMPBR-NEXT: LBB37_2: ; %if.then1109; CHECK-CMPBR-NEXT: brk #0x11110;1111; CHECK-NO-CMPBR-LABEL: cblo_hi_swap_i64:1112; CHECK-NO-CMPBR: ; %bb.0: ; %entry1113; CHECK-NO-CMPBR-NEXT: cmp x0, x11114; CHECK-NO-CMPBR-NEXT: b.lo LBB37_21115; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1116; CHECK-NO-CMPBR-NEXT: ret1117; CHECK-NO-CMPBR-NEXT: LBB37_2: ; %if.then1118; CHECK-NO-CMPBR-NEXT: brk #0x11119entry:1120 %cmp = icmp ult i64 %a, %b1121 br i1 %cmp, label %if.then, label %if.end1122 1123if.then:1124 tail call void @llvm.trap()1125 unreachable1126 1127if.end:1128 ret void1129}1130 1131define void @cbls_hs_swap_i64(i64 %a, i64 %b) {1132; CHECK-CMPBR-LABEL: cbls_hs_swap_i64:1133; CHECK-CMPBR: ; %bb.0: ; %entry1134; CHECK-CMPBR-NEXT: cbhs x1, x0, LBB38_21135; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1136; CHECK-CMPBR-NEXT: ret1137; CHECK-CMPBR-NEXT: LBB38_2: ; %if.then1138; CHECK-CMPBR-NEXT: brk #0x11139;1140; CHECK-NO-CMPBR-LABEL: cbls_hs_swap_i64:1141; CHECK-NO-CMPBR: ; %bb.0: ; %entry1142; CHECK-NO-CMPBR-NEXT: cmp x0, x11143; CHECK-NO-CMPBR-NEXT: b.ls LBB38_21144; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1145; CHECK-NO-CMPBR-NEXT: ret1146; CHECK-NO-CMPBR-NEXT: LBB38_2: ; %if.then1147; CHECK-NO-CMPBR-NEXT: brk #0x11148entry:1149 %cmp = icmp ule i64 %a, %b1150 br i1 %cmp, label %if.then, label %if.end1151 1152if.then:1153 tail call void @llvm.trap()1154 unreachable1155 1156if.end:1157 ret void1158}1159 1160define void @cblt_gt_swap_i64(i64 %a, i64 %b) {1161; CHECK-CMPBR-LABEL: cblt_gt_swap_i64:1162; CHECK-CMPBR: ; %bb.0: ; %entry1163; CHECK-CMPBR-NEXT: cbgt x1, x0, LBB39_21164; CHECK-CMPBR-NEXT: ; %bb.1: ; %if.end1165; CHECK-CMPBR-NEXT: ret1166; CHECK-CMPBR-NEXT: LBB39_2: ; %if.then1167; CHECK-CMPBR-NEXT: brk #0x11168;1169; CHECK-NO-CMPBR-LABEL: cblt_gt_swap_i64:1170; CHECK-NO-CMPBR: ; %bb.0: ; %entry1171; CHECK-NO-CMPBR-NEXT: cmp x0, x11172; CHECK-NO-CMPBR-NEXT: b.lt LBB39_21173; CHECK-NO-CMPBR-NEXT: ; %bb.1: ; %if.end1174; CHECK-NO-CMPBR-NEXT: ret1175; CHECK-NO-CMPBR-NEXT: LBB39_2: ; %if.then1176; CHECK-NO-CMPBR-NEXT: brk #0x11177entry:1178 %cmp = icmp slt i64 %a, %b1179 br i1 %cmp, label %if.then, label %if.end1180 1181if.then:1182 tail call void @llvm.trap()1183 unreachable1184 1185if.end:1186 ret void1187}1188