brintos

brintos / llvm-project-archived public Read only

0
0
Text · 34.6 KiB · d264cf2 Raw
1329 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 5; slt, sle, sgt, sge, ult, ule, ugt, uge, eq, ne6 7define void @slt_0_i32(i32 %a)  {8; CHECK-CMPBR-LABEL: slt_0_i32:9; CHECK-CMPBR:       ; %bb.0: ; %entry10; CHECK-CMPBR-NEXT:    tbnz w0, #31, LBB0_211; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end12; CHECK-CMPBR-NEXT:    ret13; CHECK-CMPBR-NEXT:  LBB0_2: ; %if.then14; CHECK-CMPBR-NEXT:    brk #0x115;16; CHECK-NO-CMPBR-LABEL: slt_0_i32:17; CHECK-NO-CMPBR:       ; %bb.0: ; %entry18; CHECK-NO-CMPBR-NEXT:    tbnz w0, #31, 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 slt i32 %a, 025  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 @slt_m1_i32(i32 %a)  {36; CHECK-CMPBR-LABEL: slt_m1_i32:37; CHECK-CMPBR:       ; %bb.0: ; %entry38; CHECK-CMPBR-NEXT:    mov w8, #-2 ; =0xfffffffe39; CHECK-CMPBR-NEXT:    cbge w8, w0, LBB1_240; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end41; CHECK-CMPBR-NEXT:    ret42; CHECK-CMPBR-NEXT:  LBB1_2: ; %if.then43; CHECK-CMPBR-NEXT:    brk #0x144;45; CHECK-NO-CMPBR-LABEL: slt_m1_i32:46; CHECK-NO-CMPBR:       ; %bb.0: ; %entry47; CHECK-NO-CMPBR-NEXT:    cmn w0, #248; CHECK-NO-CMPBR-NEXT:    b.le 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 slt i32 %a, -155  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 65define void @slt_63_i32(i32 %a)  {66; CHECK-CMPBR-LABEL: slt_63_i32:67; CHECK-CMPBR:       ; %bb.0: ; %entry68; CHECK-CMPBR-NEXT:    cblt w0, #63, LBB2_269; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end70; CHECK-CMPBR-NEXT:    ret71; CHECK-CMPBR-NEXT:  LBB2_2: ; %if.then72; CHECK-CMPBR-NEXT:    brk #0x173;74; CHECK-NO-CMPBR-LABEL: slt_63_i32:75; CHECK-NO-CMPBR:       ; %bb.0: ; %entry76; CHECK-NO-CMPBR-NEXT:    cmp w0, #6277; CHECK-NO-CMPBR-NEXT:    b.le LBB2_278; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end79; CHECK-NO-CMPBR-NEXT:    ret80; CHECK-NO-CMPBR-NEXT:  LBB2_2: ; %if.then81; CHECK-NO-CMPBR-NEXT:    brk #0x182entry:83  %cmp = icmp slt i32 %a, 6384  br i1 %cmp, label %if.then, label %if.end85 86if.then:87  tail call void @llvm.trap()88  unreachable89 90if.end:91  ret void92}93 94define void @slt_64_i32(i32 %a)  {95; CHECK-CMPBR-LABEL: slt_64_i32:96; CHECK-CMPBR:       ; %bb.0: ; %entry97; CHECK-CMPBR-NEXT:    mov w8, #63 ; =0x3f98; CHECK-CMPBR-NEXT:    cbge w8, w0, LBB3_299; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end100; CHECK-CMPBR-NEXT:    ret101; CHECK-CMPBR-NEXT:  LBB3_2: ; %if.then102; CHECK-CMPBR-NEXT:    brk #0x1103;104; CHECK-NO-CMPBR-LABEL: slt_64_i32:105; CHECK-NO-CMPBR:       ; %bb.0: ; %entry106; CHECK-NO-CMPBR-NEXT:    cmp w0, #63107; CHECK-NO-CMPBR-NEXT:    b.le LBB3_2108; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end109; CHECK-NO-CMPBR-NEXT:    ret110; CHECK-NO-CMPBR-NEXT:  LBB3_2: ; %if.then111; CHECK-NO-CMPBR-NEXT:    brk #0x1112entry:113  %cmp = icmp slt i32 %a, 64114  br i1 %cmp, label %if.then, label %if.end115 116if.then:117  tail call void @llvm.trap()118  unreachable119 120if.end:121  ret void122}123 124define void @sle_0_i32(i32 %a)  {125; CHECK-CMPBR-LABEL: sle_0_i32:126; CHECK-CMPBR:       ; %bb.0: ; %entry127; CHECK-CMPBR-NEXT:    cblt w0, #1, LBB4_2128; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end129; CHECK-CMPBR-NEXT:    ret130; CHECK-CMPBR-NEXT:  LBB4_2: ; %if.then131; CHECK-CMPBR-NEXT:    brk #0x1132;133; CHECK-NO-CMPBR-LABEL: sle_0_i32:134; CHECK-NO-CMPBR:       ; %bb.0: ; %entry135; CHECK-NO-CMPBR-NEXT:    cmp w0, #0136; CHECK-NO-CMPBR-NEXT:    b.le LBB4_2137; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end138; CHECK-NO-CMPBR-NEXT:    ret139; CHECK-NO-CMPBR-NEXT:  LBB4_2: ; %if.then140; CHECK-NO-CMPBR-NEXT:    brk #0x1141entry:142  %cmp = icmp sle i32 %a, 0143  br i1 %cmp, label %if.then, label %if.end144 145if.then:146  tail call void @llvm.trap()147  unreachable148 149if.end:150  ret void151}152 153define void @sle_m1_i32(i32 %a)  {154; CHECK-CMPBR-LABEL: sle_m1_i32:155; CHECK-CMPBR:       ; %bb.0: ; %entry156; CHECK-CMPBR-NEXT:    tbnz w0, #31, LBB5_2157; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end158; CHECK-CMPBR-NEXT:    ret159; CHECK-CMPBR-NEXT:  LBB5_2: ; %if.then160; CHECK-CMPBR-NEXT:    brk #0x1161;162; CHECK-NO-CMPBR-LABEL: sle_m1_i32:163; CHECK-NO-CMPBR:       ; %bb.0: ; %entry164; CHECK-NO-CMPBR-NEXT:    tbnz w0, #31, LBB5_2165; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end166; CHECK-NO-CMPBR-NEXT:    ret167; CHECK-NO-CMPBR-NEXT:  LBB5_2: ; %if.then168; CHECK-NO-CMPBR-NEXT:    brk #0x1169entry:170  %cmp = icmp sle i32 %a, -1171  br i1 %cmp, label %if.then, label %if.end172 173if.then:174  tail call void @llvm.trap()175  unreachable176 177if.end:178  ret void179}180 181define void @sle_63_i32(i32 %a)  {182; CHECK-CMPBR-LABEL: sle_63_i32:183; CHECK-CMPBR:       ; %bb.0: ; %entry184; CHECK-CMPBR-NEXT:    mov w8, #63 ; =0x3f185; CHECK-CMPBR-NEXT:    cbge w8, w0, LBB6_2186; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end187; CHECK-CMPBR-NEXT:    ret188; CHECK-CMPBR-NEXT:  LBB6_2: ; %if.then189; CHECK-CMPBR-NEXT:    brk #0x1190;191; CHECK-NO-CMPBR-LABEL: sle_63_i32:192; CHECK-NO-CMPBR:       ; %bb.0: ; %entry193; CHECK-NO-CMPBR-NEXT:    cmp w0, #63194; CHECK-NO-CMPBR-NEXT:    b.le LBB6_2195; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end196; CHECK-NO-CMPBR-NEXT:    ret197; CHECK-NO-CMPBR-NEXT:  LBB6_2: ; %if.then198; CHECK-NO-CMPBR-NEXT:    brk #0x1199entry:200  %cmp = icmp sle i32 %a, 63201  br i1 %cmp, label %if.then, label %if.end202 203if.then:204  tail call void @llvm.trap()205  unreachable206 207if.end:208  ret void209}210 211define void @sle_64_i32(i32 %a)  {212; CHECK-CMPBR-LABEL: sle_64_i32:213; CHECK-CMPBR:       ; %bb.0: ; %entry214; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40215; CHECK-CMPBR-NEXT:    cbge w8, w0, LBB7_2216; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end217; CHECK-CMPBR-NEXT:    ret218; CHECK-CMPBR-NEXT:  LBB7_2: ; %if.then219; CHECK-CMPBR-NEXT:    brk #0x1220;221; CHECK-NO-CMPBR-LABEL: sle_64_i32:222; CHECK-NO-CMPBR:       ; %bb.0: ; %entry223; CHECK-NO-CMPBR-NEXT:    cmp w0, #64224; CHECK-NO-CMPBR-NEXT:    b.le LBB7_2225; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end226; CHECK-NO-CMPBR-NEXT:    ret227; CHECK-NO-CMPBR-NEXT:  LBB7_2: ; %if.then228; CHECK-NO-CMPBR-NEXT:    brk #0x1229entry:230  %cmp = icmp sle i32 %a, 64231  br i1 %cmp, label %if.then, label %if.end232 233if.then:234  tail call void @llvm.trap()235  unreachable236 237if.end:238  ret void239}240 241define void @sgt_0_i32(i32 %a)  {242; CHECK-CMPBR-LABEL: sgt_0_i32:243; CHECK-CMPBR:       ; %bb.0: ; %entry244; CHECK-CMPBR-NEXT:    cbgt w0, #0, LBB8_2245; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end246; CHECK-CMPBR-NEXT:    ret247; CHECK-CMPBR-NEXT:  LBB8_2: ; %if.then248; CHECK-CMPBR-NEXT:    brk #0x1249;250; CHECK-NO-CMPBR-LABEL: sgt_0_i32:251; CHECK-NO-CMPBR:       ; %bb.0: ; %entry252; CHECK-NO-CMPBR-NEXT:    cmp w0, #1253; CHECK-NO-CMPBR-NEXT:    b.ge LBB8_2254; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end255; CHECK-NO-CMPBR-NEXT:    ret256; CHECK-NO-CMPBR-NEXT:  LBB8_2: ; %if.then257; CHECK-NO-CMPBR-NEXT:    brk #0x1258entry:259  %cmp = icmp sgt i32 %a, 0260  br i1 %cmp, label %if.then, label %if.end261 262if.then:263  tail call void @llvm.trap()264  unreachable265 266if.end:267  ret void268}269 270define void @sgt_m1_i32(i32 %a)  {271; CHECK-CMPBR-LABEL: sgt_m1_i32:272; CHECK-CMPBR:       ; %bb.0: ; %entry273; CHECK-CMPBR-NEXT:    tbz w0, #31, LBB9_2274; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end275; CHECK-CMPBR-NEXT:    ret276; CHECK-CMPBR-NEXT:  LBB9_2: ; %if.then277; CHECK-CMPBR-NEXT:    brk #0x1278;279; CHECK-NO-CMPBR-LABEL: sgt_m1_i32:280; CHECK-NO-CMPBR:       ; %bb.0: ; %entry281; CHECK-NO-CMPBR-NEXT:    tbz w0, #31, LBB9_2282; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end283; CHECK-NO-CMPBR-NEXT:    ret284; CHECK-NO-CMPBR-NEXT:  LBB9_2: ; %if.then285; CHECK-NO-CMPBR-NEXT:    brk #0x1286entry:287  %cmp = icmp sgt i32 %a, -1288  br i1 %cmp, label %if.then, label %if.end289 290if.then:291  tail call void @llvm.trap()292  unreachable293 294if.end:295  ret void296}297 298define void @sgt_63_i32(i32 %a)  {299; CHECK-CMPBR-LABEL: sgt_63_i32:300; CHECK-CMPBR:       ; %bb.0: ; %entry301; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40302; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB10_2303; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end304; CHECK-CMPBR-NEXT:    ret305; CHECK-CMPBR-NEXT:  LBB10_2: ; %if.then306; CHECK-CMPBR-NEXT:    brk #0x1307;308; CHECK-NO-CMPBR-LABEL: sgt_63_i32:309; CHECK-NO-CMPBR:       ; %bb.0: ; %entry310; CHECK-NO-CMPBR-NEXT:    cmp w0, #64311; CHECK-NO-CMPBR-NEXT:    b.ge LBB10_2312; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end313; CHECK-NO-CMPBR-NEXT:    ret314; CHECK-NO-CMPBR-NEXT:  LBB10_2: ; %if.then315; CHECK-NO-CMPBR-NEXT:    brk #0x1316entry:317  %cmp = icmp sgt i32 %a, 63318  br i1 %cmp, label %if.then, label %if.end319 320if.then:321  tail call void @llvm.trap()322  unreachable323 324if.end:325  ret void326}327 328define void @sgt_64_i32(i32 %a)  {329; CHECK-CMPBR-LABEL: sgt_64_i32:330; CHECK-CMPBR:       ; %bb.0: ; %entry331; CHECK-CMPBR-NEXT:    mov w8, #65 ; =0x41332; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB11_2333; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end334; CHECK-CMPBR-NEXT:    ret335; CHECK-CMPBR-NEXT:  LBB11_2: ; %if.then336; CHECK-CMPBR-NEXT:    brk #0x1337;338; CHECK-NO-CMPBR-LABEL: sgt_64_i32:339; CHECK-NO-CMPBR:       ; %bb.0: ; %entry340; CHECK-NO-CMPBR-NEXT:    cmp w0, #65341; CHECK-NO-CMPBR-NEXT:    b.ge LBB11_2342; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end343; CHECK-NO-CMPBR-NEXT:    ret344; CHECK-NO-CMPBR-NEXT:  LBB11_2: ; %if.then345; CHECK-NO-CMPBR-NEXT:    brk #0x1346entry:347  %cmp = icmp sgt i32 %a, 64348  br i1 %cmp, label %if.then, label %if.end349 350if.then:351  tail call void @llvm.trap()352  unreachable353 354if.end:355  ret void356}357 358define void @sge_0_i32(i32 %a)  {359; CHECK-CMPBR-LABEL: sge_0_i32:360; CHECK-CMPBR:       ; %bb.0: ; %entry361; CHECK-CMPBR-NEXT:    tbz w0, #31, LBB12_2362; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end363; CHECK-CMPBR-NEXT:    ret364; CHECK-CMPBR-NEXT:  LBB12_2: ; %if.then365; CHECK-CMPBR-NEXT:    brk #0x1366;367; CHECK-NO-CMPBR-LABEL: sge_0_i32:368; CHECK-NO-CMPBR:       ; %bb.0: ; %entry369; CHECK-NO-CMPBR-NEXT:    tbz w0, #31, LBB12_2370; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end371; CHECK-NO-CMPBR-NEXT:    ret372; CHECK-NO-CMPBR-NEXT:  LBB12_2: ; %if.then373; CHECK-NO-CMPBR-NEXT:    brk #0x1374entry:375  %cmp = icmp sge i32 %a, 0376  br i1 %cmp, label %if.then, label %if.end377 378if.then:379  tail call void @llvm.trap()380  unreachable381 382if.end:383  ret void384}385 386define void @sge_m1_i32(i32 %a)  {387; CHECK-CMPBR-LABEL: sge_m1_i32:388; CHECK-CMPBR:       ; %bb.0: ; %entry389; CHECK-CMPBR-NEXT:    mov w8, #-1 ; =0xffffffff390; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB13_2391; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end392; CHECK-CMPBR-NEXT:    ret393; CHECK-CMPBR-NEXT:  LBB13_2: ; %if.then394; CHECK-CMPBR-NEXT:    brk #0x1395;396; CHECK-NO-CMPBR-LABEL: sge_m1_i32:397; CHECK-NO-CMPBR:       ; %bb.0: ; %entry398; CHECK-NO-CMPBR-NEXT:    cmn w0, #1399; CHECK-NO-CMPBR-NEXT:    b.ge LBB13_2400; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end401; CHECK-NO-CMPBR-NEXT:    ret402; CHECK-NO-CMPBR-NEXT:  LBB13_2: ; %if.then403; CHECK-NO-CMPBR-NEXT:    brk #0x1404entry:405  %cmp = icmp sge i32 %a, -1406  br i1 %cmp, label %if.then, label %if.end407 408if.then:409  tail call void @llvm.trap()410  unreachable411 412if.end:413  ret void414}415 416define void @sge_63_i32(i32 %a)  {417; CHECK-CMPBR-LABEL: sge_63_i32:418; CHECK-CMPBR:       ; %bb.0: ; %entry419; CHECK-CMPBR-NEXT:    cbgt w0, #62, LBB14_2420; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end421; CHECK-CMPBR-NEXT:    ret422; CHECK-CMPBR-NEXT:  LBB14_2: ; %if.then423; CHECK-CMPBR-NEXT:    brk #0x1424;425; CHECK-NO-CMPBR-LABEL: sge_63_i32:426; CHECK-NO-CMPBR:       ; %bb.0: ; %entry427; CHECK-NO-CMPBR-NEXT:    cmp w0, #63428; CHECK-NO-CMPBR-NEXT:    b.ge LBB14_2429; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end430; CHECK-NO-CMPBR-NEXT:    ret431; CHECK-NO-CMPBR-NEXT:  LBB14_2: ; %if.then432; CHECK-NO-CMPBR-NEXT:    brk #0x1433entry:434  %cmp = icmp sge i32 %a, 63435  br i1 %cmp, label %if.then, label %if.end436 437if.then:438  tail call void @llvm.trap()439  unreachable440 441if.end:442  ret void443}444 445define void @sge_64_i32(i32 %a)  {446; CHECK-CMPBR-LABEL: sge_64_i32:447; CHECK-CMPBR:       ; %bb.0: ; %entry448; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40449; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB15_2450; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end451; CHECK-CMPBR-NEXT:    ret452; CHECK-CMPBR-NEXT:  LBB15_2: ; %if.then453; CHECK-CMPBR-NEXT:    brk #0x1454;455; CHECK-NO-CMPBR-LABEL: sge_64_i32:456; CHECK-NO-CMPBR:       ; %bb.0: ; %entry457; CHECK-NO-CMPBR-NEXT:    cmp w0, #64458; CHECK-NO-CMPBR-NEXT:    b.ge LBB15_2459; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end460; CHECK-NO-CMPBR-NEXT:    ret461; CHECK-NO-CMPBR-NEXT:  LBB15_2: ; %if.then462; CHECK-NO-CMPBR-NEXT:    brk #0x1463entry:464  %cmp = icmp sge i32 %a, 64465  br i1 %cmp, label %if.then, label %if.end466 467if.then:468  tail call void @llvm.trap()469  unreachable470 471if.end:472  ret void473}474 475define void @ult_0_i32(i32 %a)  {476; CHECK-CMPBR-LABEL: ult_0_i32:477; CHECK-CMPBR:       ; %bb.0: ; %entry478; CHECK-CMPBR-NEXT:    cbhi wzr, w0, LBB16_2479; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end480; CHECK-CMPBR-NEXT:    ret481; CHECK-CMPBR-NEXT:  LBB16_2: ; %if.then482; CHECK-CMPBR-NEXT:    brk #0x1483;484; CHECK-NO-CMPBR-LABEL: ult_0_i32:485; CHECK-NO-CMPBR:       ; %bb.0: ; %entry486; CHECK-NO-CMPBR-NEXT:    cmp w0, #0487; CHECK-NO-CMPBR-NEXT:    b.lo LBB16_2488; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end489; CHECK-NO-CMPBR-NEXT:    ret490; CHECK-NO-CMPBR-NEXT:  LBB16_2: ; %if.then491; CHECK-NO-CMPBR-NEXT:    brk #0x1492entry:493  %cmp = icmp ult i32 %a, 0494  br i1 %cmp, label %if.then, label %if.end495 496if.then:497  tail call void @llvm.trap()498  unreachable499 500if.end:501  ret void502}503 504define void @ult_63_i32(i32 %a)  {505; CHECK-CMPBR-LABEL: ult_63_i32:506; CHECK-CMPBR:       ; %bb.0: ; %entry507; CHECK-CMPBR-NEXT:    cblo w0, #63, LBB17_2508; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end509; CHECK-CMPBR-NEXT:    ret510; CHECK-CMPBR-NEXT:  LBB17_2: ; %if.then511; CHECK-CMPBR-NEXT:    brk #0x1512;513; CHECK-NO-CMPBR-LABEL: ult_63_i32:514; CHECK-NO-CMPBR:       ; %bb.0: ; %entry515; CHECK-NO-CMPBR-NEXT:    cmp w0, #62516; CHECK-NO-CMPBR-NEXT:    b.ls LBB17_2517; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end518; CHECK-NO-CMPBR-NEXT:    ret519; CHECK-NO-CMPBR-NEXT:  LBB17_2: ; %if.then520; CHECK-NO-CMPBR-NEXT:    brk #0x1521entry:522  %cmp = icmp ult i32 %a, 63523  br i1 %cmp, label %if.then, label %if.end524 525if.then:526  tail call void @llvm.trap()527  unreachable528 529if.end:530  ret void531}532 533define void @ult_64_i32(i32 %a)  {534; CHECK-CMPBR-LABEL: ult_64_i32:535; CHECK-CMPBR:       ; %bb.0: ; %entry536; CHECK-CMPBR-NEXT:    mov w8, #63 ; =0x3f537; CHECK-CMPBR-NEXT:    cbhs w8, w0, LBB18_2538; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end539; CHECK-CMPBR-NEXT:    ret540; CHECK-CMPBR-NEXT:  LBB18_2: ; %if.then541; CHECK-CMPBR-NEXT:    brk #0x1542;543; CHECK-NO-CMPBR-LABEL: ult_64_i32:544; CHECK-NO-CMPBR:       ; %bb.0: ; %entry545; CHECK-NO-CMPBR-NEXT:    cmp w0, #63546; CHECK-NO-CMPBR-NEXT:    b.ls LBB18_2547; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end548; CHECK-NO-CMPBR-NEXT:    ret549; CHECK-NO-CMPBR-NEXT:  LBB18_2: ; %if.then550; CHECK-NO-CMPBR-NEXT:    brk #0x1551entry:552  %cmp = icmp ult i32 %a, 64553  br i1 %cmp, label %if.then, label %if.end554 555if.then:556  tail call void @llvm.trap()557  unreachable558 559if.end:560  ret void561}562 563define void @ule_0_i32(i32 %a)  {564; CHECK-CMPBR-LABEL: ule_0_i32:565; CHECK-CMPBR:       ; %bb.0: ; %entry566; CHECK-CMPBR-NEXT:    cbz w0, LBB19_2567; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end568; CHECK-CMPBR-NEXT:    ret569; CHECK-CMPBR-NEXT:  LBB19_2: ; %if.then570; CHECK-CMPBR-NEXT:    brk #0x1571;572; CHECK-NO-CMPBR-LABEL: ule_0_i32:573; CHECK-NO-CMPBR:       ; %bb.0: ; %entry574; CHECK-NO-CMPBR-NEXT:    cbz w0, LBB19_2575; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end576; CHECK-NO-CMPBR-NEXT:    ret577; CHECK-NO-CMPBR-NEXT:  LBB19_2: ; %if.then578; CHECK-NO-CMPBR-NEXT:    brk #0x1579entry:580  %cmp = icmp ule i32 %a, 0581  br i1 %cmp, label %if.then, label %if.end582 583if.then:584  tail call void @llvm.trap()585  unreachable586 587if.end:588  ret void589}590 591define void @ule_63_i32(i32 %a)  {592; CHECK-CMPBR-LABEL: ule_63_i32:593; CHECK-CMPBR:       ; %bb.0: ; %entry594; CHECK-CMPBR-NEXT:    mov w8, #63 ; =0x3f595; CHECK-CMPBR-NEXT:    cbhs w8, w0, LBB20_2596; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end597; CHECK-CMPBR-NEXT:    ret598; CHECK-CMPBR-NEXT:  LBB20_2: ; %if.then599; CHECK-CMPBR-NEXT:    brk #0x1600;601; CHECK-NO-CMPBR-LABEL: ule_63_i32:602; CHECK-NO-CMPBR:       ; %bb.0: ; %entry603; CHECK-NO-CMPBR-NEXT:    cmp w0, #63604; CHECK-NO-CMPBR-NEXT:    b.ls LBB20_2605; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end606; CHECK-NO-CMPBR-NEXT:    ret607; CHECK-NO-CMPBR-NEXT:  LBB20_2: ; %if.then608; CHECK-NO-CMPBR-NEXT:    brk #0x1609entry:610  %cmp = icmp ule i32 %a, 63611  br i1 %cmp, label %if.then, label %if.end612 613if.then:614  tail call void @llvm.trap()615  unreachable616 617if.end:618  ret void619}620 621define void @ule_64_i32(i32 %a)  {622; CHECK-CMPBR-LABEL: ule_64_i32:623; CHECK-CMPBR:       ; %bb.0: ; %entry624; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40625; CHECK-CMPBR-NEXT:    cbhs w8, w0, LBB21_2626; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end627; CHECK-CMPBR-NEXT:    ret628; CHECK-CMPBR-NEXT:  LBB21_2: ; %if.then629; CHECK-CMPBR-NEXT:    brk #0x1630;631; CHECK-NO-CMPBR-LABEL: ule_64_i32:632; CHECK-NO-CMPBR:       ; %bb.0: ; %entry633; CHECK-NO-CMPBR-NEXT:    cmp w0, #64634; CHECK-NO-CMPBR-NEXT:    b.ls LBB21_2635; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end636; CHECK-NO-CMPBR-NEXT:    ret637; CHECK-NO-CMPBR-NEXT:  LBB21_2: ; %if.then638; CHECK-NO-CMPBR-NEXT:    brk #0x1639entry:640  %cmp = icmp ule i32 %a, 64641  br i1 %cmp, label %if.then, label %if.end642 643if.then:644  tail call void @llvm.trap()645  unreachable646 647if.end:648  ret void649}650 651define void @ugt_0_i32(i32 %a)  {652; CHECK-CMPBR-LABEL: ugt_0_i32:653; CHECK-CMPBR:       ; %bb.0: ; %entry654; CHECK-CMPBR-NEXT:    cbnz w0, LBB22_2655; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end656; CHECK-CMPBR-NEXT:    ret657; CHECK-CMPBR-NEXT:  LBB22_2: ; %if.then658; CHECK-CMPBR-NEXT:    brk #0x1659;660; CHECK-NO-CMPBR-LABEL: ugt_0_i32:661; CHECK-NO-CMPBR:       ; %bb.0: ; %entry662; CHECK-NO-CMPBR-NEXT:    cbnz w0, LBB22_2663; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end664; CHECK-NO-CMPBR-NEXT:    ret665; CHECK-NO-CMPBR-NEXT:  LBB22_2: ; %if.then666; CHECK-NO-CMPBR-NEXT:    brk #0x1667entry:668  %cmp = icmp ugt i32 %a, 0669  br i1 %cmp, label %if.then, label %if.end670 671if.then:672  tail call void @llvm.trap()673  unreachable674 675if.end:676  ret void677}678 679define void @ugt_63_i32(i32 %a)  {680; CHECK-CMPBR-LABEL: ugt_63_i32:681; CHECK-CMPBR:       ; %bb.0: ; %entry682; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40683; CHECK-CMPBR-NEXT:    cbhs w0, w8, LBB23_2684; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end685; CHECK-CMPBR-NEXT:    ret686; CHECK-CMPBR-NEXT:  LBB23_2: ; %if.then687; CHECK-CMPBR-NEXT:    brk #0x1688;689; CHECK-NO-CMPBR-LABEL: ugt_63_i32:690; CHECK-NO-CMPBR:       ; %bb.0: ; %entry691; CHECK-NO-CMPBR-NEXT:    cmp w0, #64692; CHECK-NO-CMPBR-NEXT:    b.hs LBB23_2693; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end694; CHECK-NO-CMPBR-NEXT:    ret695; CHECK-NO-CMPBR-NEXT:  LBB23_2: ; %if.then696; CHECK-NO-CMPBR-NEXT:    brk #0x1697entry:698  %cmp = icmp ugt i32 %a, 63699  br i1 %cmp, label %if.then, label %if.end700 701if.then:702  tail call void @llvm.trap()703  unreachable704 705if.end:706  ret void707}708 709define void @ugt_64_i32(i32 %a)  {710; CHECK-CMPBR-LABEL: ugt_64_i32:711; CHECK-CMPBR:       ; %bb.0: ; %entry712; CHECK-CMPBR-NEXT:    mov w8, #65 ; =0x41713; CHECK-CMPBR-NEXT:    cbhs w0, w8, LBB24_2714; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end715; CHECK-CMPBR-NEXT:    ret716; CHECK-CMPBR-NEXT:  LBB24_2: ; %if.then717; CHECK-CMPBR-NEXT:    brk #0x1718;719; CHECK-NO-CMPBR-LABEL: ugt_64_i32:720; CHECK-NO-CMPBR:       ; %bb.0: ; %entry721; CHECK-NO-CMPBR-NEXT:    cmp w0, #65722; CHECK-NO-CMPBR-NEXT:    b.hs LBB24_2723; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end724; CHECK-NO-CMPBR-NEXT:    ret725; CHECK-NO-CMPBR-NEXT:  LBB24_2: ; %if.then726; CHECK-NO-CMPBR-NEXT:    brk #0x1727entry:728  %cmp = icmp ugt i32 %a, 64729  br i1 %cmp, label %if.then, label %if.end730 731if.then:732  tail call void @llvm.trap()733  unreachable734 735if.end:736  ret void737}738 739define void @uge_0_i32(i32 %a)  {740; CHECK-CMPBR-LABEL: uge_0_i32:741; CHECK-CMPBR:       ; %bb.0: ; %entry742; CHECK-CMPBR-NEXT:    cbhs w0, wzr, LBB25_2743; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end744; CHECK-CMPBR-NEXT:    ret745; CHECK-CMPBR-NEXT:  LBB25_2: ; %if.then746; CHECK-CMPBR-NEXT:    brk #0x1747;748; CHECK-NO-CMPBR-LABEL: uge_0_i32:749; CHECK-NO-CMPBR:       ; %bb.0: ; %entry750; CHECK-NO-CMPBR-NEXT:    cmp w0, #0751; CHECK-NO-CMPBR-NEXT:    b.hs LBB25_2752; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end753; CHECK-NO-CMPBR-NEXT:    ret754; CHECK-NO-CMPBR-NEXT:  LBB25_2: ; %if.then755; CHECK-NO-CMPBR-NEXT:    brk #0x1756entry:757  %cmp = icmp uge i32 %a, 0758  br i1 %cmp, label %if.then, label %if.end759 760if.then:761  tail call void @llvm.trap()762  unreachable763 764if.end:765  ret void766}767 768define void @uge_63_i32(i32 %a)  {769; CHECK-CMPBR-LABEL: uge_63_i32:770; CHECK-CMPBR:       ; %bb.0: ; %entry771; CHECK-CMPBR-NEXT:    cbhi w0, #62, LBB26_2772; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end773; CHECK-CMPBR-NEXT:    ret774; CHECK-CMPBR-NEXT:  LBB26_2: ; %if.then775; CHECK-CMPBR-NEXT:    brk #0x1776;777; CHECK-NO-CMPBR-LABEL: uge_63_i32:778; CHECK-NO-CMPBR:       ; %bb.0: ; %entry779; CHECK-NO-CMPBR-NEXT:    cmp w0, #63780; CHECK-NO-CMPBR-NEXT:    b.hs LBB26_2781; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end782; CHECK-NO-CMPBR-NEXT:    ret783; CHECK-NO-CMPBR-NEXT:  LBB26_2: ; %if.then784; CHECK-NO-CMPBR-NEXT:    brk #0x1785entry:786  %cmp = icmp uge i32 %a, 63787  br i1 %cmp, label %if.then, label %if.end788 789if.then:790  tail call void @llvm.trap()791  unreachable792 793if.end:794  ret void795}796 797define void @uge_64_i32(i32 %a)  {798; CHECK-CMPBR-LABEL: uge_64_i32:799; CHECK-CMPBR:       ; %bb.0: ; %entry800; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40801; CHECK-CMPBR-NEXT:    cbhs w0, w8, LBB27_2802; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end803; CHECK-CMPBR-NEXT:    ret804; CHECK-CMPBR-NEXT:  LBB27_2: ; %if.then805; CHECK-CMPBR-NEXT:    brk #0x1806;807; CHECK-NO-CMPBR-LABEL: uge_64_i32:808; CHECK-NO-CMPBR:       ; %bb.0: ; %entry809; CHECK-NO-CMPBR-NEXT:    cmp w0, #64810; CHECK-NO-CMPBR-NEXT:    b.hs LBB27_2811; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end812; CHECK-NO-CMPBR-NEXT:    ret813; CHECK-NO-CMPBR-NEXT:  LBB27_2: ; %if.then814; CHECK-NO-CMPBR-NEXT:    brk #0x1815entry:816  %cmp = icmp uge i32 %a, 64817  br i1 %cmp, label %if.then, label %if.end818 819if.then:820  tail call void @llvm.trap()821  unreachable822 823if.end:824  ret void825}826 827define void @eq_0_i32(i32 %a)  {828; CHECK-CMPBR-LABEL: eq_0_i32:829; CHECK-CMPBR:       ; %bb.0: ; %entry830; CHECK-CMPBR-NEXT:    cbz w0, LBB28_2831; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end832; CHECK-CMPBR-NEXT:    ret833; CHECK-CMPBR-NEXT:  LBB28_2: ; %if.then834; CHECK-CMPBR-NEXT:    brk #0x1835;836; CHECK-NO-CMPBR-LABEL: eq_0_i32:837; CHECK-NO-CMPBR:       ; %bb.0: ; %entry838; CHECK-NO-CMPBR-NEXT:    cbz w0, LBB28_2839; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end840; CHECK-NO-CMPBR-NEXT:    ret841; CHECK-NO-CMPBR-NEXT:  LBB28_2: ; %if.then842; CHECK-NO-CMPBR-NEXT:    brk #0x1843entry:844  %cmp = icmp eq i32 %a, 0845  br i1 %cmp, label %if.then, label %if.end846 847if.then:848  tail call void @llvm.trap()849  unreachable850 851if.end:852  ret void853}854 855define void @eq_m1_i32(i32 %a)  {856; CHECK-CMPBR-LABEL: eq_m1_i32:857; CHECK-CMPBR:       ; %bb.0: ; %entry858; CHECK-CMPBR-NEXT:    mov w8, #-1 ; =0xffffffff859; CHECK-CMPBR-NEXT:    cbeq w0, w8, LBB29_2860; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end861; CHECK-CMPBR-NEXT:    ret862; CHECK-CMPBR-NEXT:  LBB29_2: ; %if.then863; CHECK-CMPBR-NEXT:    brk #0x1864;865; CHECK-NO-CMPBR-LABEL: eq_m1_i32:866; CHECK-NO-CMPBR:       ; %bb.0: ; %entry867; CHECK-NO-CMPBR-NEXT:    cmn w0, #1868; CHECK-NO-CMPBR-NEXT:    b.eq LBB29_2869; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end870; CHECK-NO-CMPBR-NEXT:    ret871; CHECK-NO-CMPBR-NEXT:  LBB29_2: ; %if.then872; CHECK-NO-CMPBR-NEXT:    brk #0x1873entry:874  %cmp = icmp eq i32 %a, -1875  br i1 %cmp, label %if.then, label %if.end876 877if.then:878  tail call void @llvm.trap()879  unreachable880 881if.end:882  ret void883}884 885define void @eq_63_i32(i32 %a)  {886; CHECK-CMPBR-LABEL: eq_63_i32:887; CHECK-CMPBR:       ; %bb.0: ; %entry888; CHECK-CMPBR-NEXT:    cbeq w0, #63, LBB30_2889; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end890; CHECK-CMPBR-NEXT:    ret891; CHECK-CMPBR-NEXT:  LBB30_2: ; %if.then892; CHECK-CMPBR-NEXT:    brk #0x1893;894; CHECK-NO-CMPBR-LABEL: eq_63_i32:895; CHECK-NO-CMPBR:       ; %bb.0: ; %entry896; CHECK-NO-CMPBR-NEXT:    cmp w0, #63897; CHECK-NO-CMPBR-NEXT:    b.eq LBB30_2898; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end899; CHECK-NO-CMPBR-NEXT:    ret900; CHECK-NO-CMPBR-NEXT:  LBB30_2: ; %if.then901; CHECK-NO-CMPBR-NEXT:    brk #0x1902entry:903  %cmp = icmp eq i32 %a, 63904  br i1 %cmp, label %if.then, label %if.end905 906if.then:907  tail call void @llvm.trap()908  unreachable909 910if.end:911  ret void912}913 914define void @eq_64_i32(i32 %a)  {915; CHECK-CMPBR-LABEL: eq_64_i32:916; CHECK-CMPBR:       ; %bb.0: ; %entry917; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x40918; CHECK-CMPBR-NEXT:    cbeq w0, w8, LBB31_2919; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end920; CHECK-CMPBR-NEXT:    ret921; CHECK-CMPBR-NEXT:  LBB31_2: ; %if.then922; CHECK-CMPBR-NEXT:    brk #0x1923;924; CHECK-NO-CMPBR-LABEL: eq_64_i32:925; CHECK-NO-CMPBR:       ; %bb.0: ; %entry926; CHECK-NO-CMPBR-NEXT:    cmp w0, #64927; CHECK-NO-CMPBR-NEXT:    b.eq LBB31_2928; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end929; CHECK-NO-CMPBR-NEXT:    ret930; CHECK-NO-CMPBR-NEXT:  LBB31_2: ; %if.then931; CHECK-NO-CMPBR-NEXT:    brk #0x1932entry:933  %cmp = icmp eq i32 %a, 64934  br i1 %cmp, label %if.then, label %if.end935 936if.then:937  tail call void @llvm.trap()938  unreachable939 940if.end:941  ret void942}943 944define void @ne_0_i32(i32 %a)  {945; CHECK-CMPBR-LABEL: ne_0_i32:946; CHECK-CMPBR:       ; %bb.0: ; %entry947; CHECK-CMPBR-NEXT:    cbnz w0, LBB32_2948; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end949; CHECK-CMPBR-NEXT:    ret950; CHECK-CMPBR-NEXT:  LBB32_2: ; %if.then951; CHECK-CMPBR-NEXT:    brk #0x1952;953; CHECK-NO-CMPBR-LABEL: ne_0_i32:954; CHECK-NO-CMPBR:       ; %bb.0: ; %entry955; CHECK-NO-CMPBR-NEXT:    cbnz w0, LBB32_2956; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end957; CHECK-NO-CMPBR-NEXT:    ret958; CHECK-NO-CMPBR-NEXT:  LBB32_2: ; %if.then959; CHECK-NO-CMPBR-NEXT:    brk #0x1960entry:961  %cmp = icmp ne i32 %a, 0962  br i1 %cmp, label %if.then, label %if.end963 964if.then:965  tail call void @llvm.trap()966  unreachable967 968if.end:969  ret void970}971 972define void @ne_m1_i32(i32 %a)  {973; CHECK-CMPBR-LABEL: ne_m1_i32:974; CHECK-CMPBR:       ; %bb.0: ; %entry975; CHECK-CMPBR-NEXT:    mov w8, #-1 ; =0xffffffff976; CHECK-CMPBR-NEXT:    cbne w0, w8, LBB33_2977; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end978; CHECK-CMPBR-NEXT:    ret979; CHECK-CMPBR-NEXT:  LBB33_2: ; %if.then980; CHECK-CMPBR-NEXT:    brk #0x1981;982; CHECK-NO-CMPBR-LABEL: ne_m1_i32:983; CHECK-NO-CMPBR:       ; %bb.0: ; %entry984; CHECK-NO-CMPBR-NEXT:    cmn w0, #1985; CHECK-NO-CMPBR-NEXT:    b.ne LBB33_2986; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end987; CHECK-NO-CMPBR-NEXT:    ret988; CHECK-NO-CMPBR-NEXT:  LBB33_2: ; %if.then989; CHECK-NO-CMPBR-NEXT:    brk #0x1990entry:991  %cmp = icmp ne i32 %a, -1992  br i1 %cmp, label %if.then, label %if.end993 994if.then:995  tail call void @llvm.trap()996  unreachable997 998if.end:999  ret void1000}1001 1002define void @ne_63_i32(i32 %a)  {1003; CHECK-CMPBR-LABEL: ne_63_i32:1004; CHECK-CMPBR:       ; %bb.0: ; %entry1005; CHECK-CMPBR-NEXT:    cbne w0, #63, LBB34_21006; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1007; CHECK-CMPBR-NEXT:    ret1008; CHECK-CMPBR-NEXT:  LBB34_2: ; %if.then1009; CHECK-CMPBR-NEXT:    brk #0x11010;1011; CHECK-NO-CMPBR-LABEL: ne_63_i32:1012; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1013; CHECK-NO-CMPBR-NEXT:    cmp w0, #631014; CHECK-NO-CMPBR-NEXT:    b.ne LBB34_21015; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1016; CHECK-NO-CMPBR-NEXT:    ret1017; CHECK-NO-CMPBR-NEXT:  LBB34_2: ; %if.then1018; CHECK-NO-CMPBR-NEXT:    brk #0x11019entry:1020  %cmp = icmp ne i32 %a, 631021  br i1 %cmp, label %if.then, label %if.end1022 1023if.then:1024  tail call void @llvm.trap()1025  unreachable1026 1027if.end:1028  ret void1029}1030 1031define void @ne_64_i32(i32 %a)  {1032; CHECK-CMPBR-LABEL: ne_64_i32:1033; CHECK-CMPBR:       ; %bb.0: ; %entry1034; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x401035; CHECK-CMPBR-NEXT:    cbne w0, w8, LBB35_21036; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1037; CHECK-CMPBR-NEXT:    ret1038; CHECK-CMPBR-NEXT:  LBB35_2: ; %if.then1039; CHECK-CMPBR-NEXT:    brk #0x11040;1041; CHECK-NO-CMPBR-LABEL: ne_64_i32:1042; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1043; CHECK-NO-CMPBR-NEXT:    cmp w0, #641044; CHECK-NO-CMPBR-NEXT:    b.ne LBB35_21045; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1046; CHECK-NO-CMPBR-NEXT:    ret1047; CHECK-NO-CMPBR-NEXT:  LBB35_2: ; %if.then1048; CHECK-NO-CMPBR-NEXT:    brk #0x11049entry:1050  %cmp = icmp ne i32 %a, 641051  br i1 %cmp, label %if.then, label %if.end1052 1053if.then:1054  tail call void @llvm.trap()1055  unreachable1056 1057if.end:1058  ret void1059}1060 1061define void @cbge_out_of_upper_bound_i32(i32 %a)  {1062; CHECK-CMPBR-LABEL: cbge_out_of_upper_bound_i32:1063; CHECK-CMPBR:       ; %bb.0: ; %entry1064; CHECK-CMPBR-NEXT:    mov w8, #71 ; =0x471065; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB36_21066; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1067; CHECK-CMPBR-NEXT:    ret1068; CHECK-CMPBR-NEXT:  LBB36_2: ; %if.then1069; CHECK-CMPBR-NEXT:    brk #0x11070;1071; CHECK-NO-CMPBR-LABEL: cbge_out_of_upper_bound_i32:1072; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1073; CHECK-NO-CMPBR-NEXT:    cmp w0, #711074; CHECK-NO-CMPBR-NEXT:    b.ge LBB36_21075; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1076; CHECK-NO-CMPBR-NEXT:    ret1077; CHECK-NO-CMPBR-NEXT:  LBB36_2: ; %if.then1078; CHECK-NO-CMPBR-NEXT:    brk #0x11079entry:1080  %cmp = icmp sgt i32 %a, 701081  br i1 %cmp, label %if.then, label %if.end1082 1083if.then:1084  tail call void @llvm.trap()1085  unreachable1086 1087if.end:1088  ret void1089}1090 1091define void @cbge_out_of_lower_bound_i32(i32 %a)  {1092; CHECK-CMPBR-LABEL: cbge_out_of_lower_bound_i32:1093; CHECK-CMPBR:       ; %bb.0: ; %entry1094; CHECK-CMPBR-NEXT:    mov w8, #-10 ; =0xfffffff61095; CHECK-CMPBR-NEXT:    cbge w0, w8, LBB37_21096; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1097; CHECK-CMPBR-NEXT:    ret1098; CHECK-CMPBR-NEXT:  LBB37_2: ; %if.then1099; CHECK-CMPBR-NEXT:    brk #0x11100;1101; CHECK-NO-CMPBR-LABEL: cbge_out_of_lower_bound_i32:1102; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1103; CHECK-NO-CMPBR-NEXT:    cmn w0, #101104; CHECK-NO-CMPBR-NEXT:    b.ge LBB37_21105; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1106; CHECK-NO-CMPBR-NEXT:    ret1107; CHECK-NO-CMPBR-NEXT:  LBB37_2: ; %if.then1108; CHECK-NO-CMPBR-NEXT:    brk #0x11109entry:1110  %cmp = icmp sge i32 %a, -101111  br i1 %cmp, label %if.then, label %if.end1112 1113if.then:1114  tail call void @llvm.trap()1115  unreachable1116 1117if.end:1118  ret void1119}1120 1121; This should trigger a register swap.1122define void @cble_out_of_lower_bound_i32(i32 %a)  {1123; CHECK-CMPBR-LABEL: cble_out_of_lower_bound_i32:1124; CHECK-CMPBR:       ; %bb.0: ; %entry1125; CHECK-CMPBR-NEXT:    mov w8, #-10 ; =0xfffffff61126; CHECK-CMPBR-NEXT:    cbhs w8, w0, LBB38_21127; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1128; CHECK-CMPBR-NEXT:    ret1129; CHECK-CMPBR-NEXT:  LBB38_2: ; %if.then1130; CHECK-CMPBR-NEXT:    brk #0x11131;1132; CHECK-NO-CMPBR-LABEL: cble_out_of_lower_bound_i32:1133; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1134; CHECK-NO-CMPBR-NEXT:    cmn w0, #101135; CHECK-NO-CMPBR-NEXT:    b.ls LBB38_21136; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1137; CHECK-NO-CMPBR-NEXT:    ret1138; CHECK-NO-CMPBR-NEXT:  LBB38_2: ; %if.then1139; CHECK-NO-CMPBR-NEXT:    brk #0x11140entry:1141  %cmp = icmp ule i32 %a, -101142  br i1 %cmp, label %if.then, label %if.end1143 1144if.then:1145  tail call void @llvm.trap()1146  unreachable1147 1148if.end:1149  ret void1150}1151 1152define void @slt_m1_i64(i64 %a)  {1153; CHECK-CMPBR-LABEL: slt_m1_i64:1154; CHECK-CMPBR:       ; %bb.0: ; %entry1155; CHECK-CMPBR-NEXT:    mov x8, #-2 ; =0xfffffffffffffffe1156; CHECK-CMPBR-NEXT:    cbge x8, x0, LBB39_21157; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1158; CHECK-CMPBR-NEXT:    ret1159; CHECK-CMPBR-NEXT:  LBB39_2: ; %if.then1160; CHECK-CMPBR-NEXT:    brk #0x11161;1162; CHECK-NO-CMPBR-LABEL: slt_m1_i64:1163; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1164; CHECK-NO-CMPBR-NEXT:    cmn x0, #21165; CHECK-NO-CMPBR-NEXT:    b.le LBB39_21166; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1167; CHECK-NO-CMPBR-NEXT:    ret1168; CHECK-NO-CMPBR-NEXT:  LBB39_2: ; %if.then1169; CHECK-NO-CMPBR-NEXT:    brk #0x11170entry:1171  %cmp = icmp slt i64 %a, -11172  br i1 %cmp, label %if.then, label %if.end1173 1174if.then:1175  tail call void @llvm.trap()1176  unreachable1177 1178if.end:1179  ret void1180}1181 1182define void @sle_64_i64(i64 %a)  {1183; CHECK-CMPBR-LABEL: sle_64_i64:1184; CHECK-CMPBR:       ; %bb.0: ; %entry1185; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x401186; CHECK-CMPBR-NEXT:    cbge x8, x0, LBB40_21187; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1188; CHECK-CMPBR-NEXT:    ret1189; CHECK-CMPBR-NEXT:  LBB40_2: ; %if.then1190; CHECK-CMPBR-NEXT:    brk #0x11191;1192; CHECK-NO-CMPBR-LABEL: sle_64_i64:1193; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1194; CHECK-NO-CMPBR-NEXT:    cmp x0, #641195; CHECK-NO-CMPBR-NEXT:    b.le LBB40_21196; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1197; CHECK-NO-CMPBR-NEXT:    ret1198; CHECK-NO-CMPBR-NEXT:  LBB40_2: ; %if.then1199; CHECK-NO-CMPBR-NEXT:    brk #0x11200entry:1201  %cmp = icmp sle i64 %a, 641202  br i1 %cmp, label %if.then, label %if.end1203 1204if.then:1205  tail call void @llvm.trap()1206  unreachable1207 1208if.end:1209  ret void1210}1211 1212define void @ult_63_i64(i64 %a)  {1213; CHECK-CMPBR-LABEL: ult_63_i64:1214; CHECK-CMPBR:       ; %bb.0: ; %entry1215; CHECK-CMPBR-NEXT:    cblo x0, #63, LBB41_21216; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1217; CHECK-CMPBR-NEXT:    ret1218; CHECK-CMPBR-NEXT:  LBB41_2: ; %if.then1219; CHECK-CMPBR-NEXT:    brk #0x11220;1221; CHECK-NO-CMPBR-LABEL: ult_63_i64:1222; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1223; CHECK-NO-CMPBR-NEXT:    cmp x0, #621224; CHECK-NO-CMPBR-NEXT:    b.ls LBB41_21225; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1226; CHECK-NO-CMPBR-NEXT:    ret1227; CHECK-NO-CMPBR-NEXT:  LBB41_2: ; %if.then1228; CHECK-NO-CMPBR-NEXT:    brk #0x11229entry:1230  %cmp = icmp ult i64 %a, 631231  br i1 %cmp, label %if.then, label %if.end1232 1233if.then:1234  tail call void @llvm.trap()1235  unreachable1236 1237if.end:1238  ret void1239}1240 1241define void @uge_64_i64(i64 %a)  {1242; CHECK-CMPBR-LABEL: uge_64_i64:1243; CHECK-CMPBR:       ; %bb.0: ; %entry1244; CHECK-CMPBR-NEXT:    mov w8, #64 ; =0x401245; CHECK-CMPBR-NEXT:    cbhs x0, x8, LBB42_21246; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1247; CHECK-CMPBR-NEXT:    ret1248; CHECK-CMPBR-NEXT:  LBB42_2: ; %if.then1249; CHECK-CMPBR-NEXT:    brk #0x11250;1251; CHECK-NO-CMPBR-LABEL: uge_64_i64:1252; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1253; CHECK-NO-CMPBR-NEXT:    cmp x0, #641254; CHECK-NO-CMPBR-NEXT:    b.hs LBB42_21255; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1256; CHECK-NO-CMPBR-NEXT:    ret1257; CHECK-NO-CMPBR-NEXT:  LBB42_2: ; %if.then1258; CHECK-NO-CMPBR-NEXT:    brk #0x11259entry:1260  %cmp = icmp uge i64 %a, 641261  br i1 %cmp, label %if.then, label %if.end1262 1263if.then:1264  tail call void @llvm.trap()1265  unreachable1266 1267if.end:1268  ret void1269}1270 1271define void @eq_m1_i64(i64 %a)  {1272; CHECK-CMPBR-LABEL: eq_m1_i64:1273; CHECK-CMPBR:       ; %bb.0: ; %entry1274; CHECK-CMPBR-NEXT:    mov x8, #-1 ; =0xffffffffffffffff1275; CHECK-CMPBR-NEXT:    cbeq x0, x8, LBB43_21276; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1277; CHECK-CMPBR-NEXT:    ret1278; CHECK-CMPBR-NEXT:  LBB43_2: ; %if.then1279; CHECK-CMPBR-NEXT:    brk #0x11280;1281; CHECK-NO-CMPBR-LABEL: eq_m1_i64:1282; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1283; CHECK-NO-CMPBR-NEXT:    cmn x0, #11284; CHECK-NO-CMPBR-NEXT:    b.eq LBB43_21285; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1286; CHECK-NO-CMPBR-NEXT:    ret1287; CHECK-NO-CMPBR-NEXT:  LBB43_2: ; %if.then1288; CHECK-NO-CMPBR-NEXT:    brk #0x11289entry:1290  %cmp = icmp eq i64 %a, -11291  br i1 %cmp, label %if.then, label %if.end1292 1293if.then:1294  tail call void @llvm.trap()1295  unreachable1296 1297if.end:1298  ret void1299}1300 1301define void @ne_63_i64(i64 %a)  {1302; CHECK-CMPBR-LABEL: ne_63_i64:1303; CHECK-CMPBR:       ; %bb.0: ; %entry1304; CHECK-CMPBR-NEXT:    cbne x0, #63, LBB44_21305; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end1306; CHECK-CMPBR-NEXT:    ret1307; CHECK-CMPBR-NEXT:  LBB44_2: ; %if.then1308; CHECK-CMPBR-NEXT:    brk #0x11309;1310; CHECK-NO-CMPBR-LABEL: ne_63_i64:1311; CHECK-NO-CMPBR:       ; %bb.0: ; %entry1312; CHECK-NO-CMPBR-NEXT:    cmp x0, #631313; CHECK-NO-CMPBR-NEXT:    b.ne LBB44_21314; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end1315; CHECK-NO-CMPBR-NEXT:    ret1316; CHECK-NO-CMPBR-NEXT:  LBB44_2: ; %if.then1317; CHECK-NO-CMPBR-NEXT:    brk #0x11318entry:1319  %cmp = icmp ne i64 %a, 631320  br i1 %cmp, label %if.then, label %if.end1321 1322if.then:1323  tail call void @llvm.trap()1324  unreachable1325 1326if.end:1327  ret void1328}1329