brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · e80db59 Raw
231 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 @cbb_assertsext_eq(i8 signext %a, i8 signext %b) {6; CHECK-CMPBR-LABEL: cbb_assertsext_eq:7; CHECK-CMPBR:       ; %bb.0:8; CHECK-CMPBR-NEXT:    cbbeq 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: cbb_assertsext_eq:15; CHECK-NO-CMPBR:       ; %bb.0:16; CHECK-NO-CMPBR-NEXT:    cmp w0, w117; CHECK-NO-CMPBR-NEXT:    b.eq LBB0_218; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end19; CHECK-NO-CMPBR-NEXT:    ret20; CHECK-NO-CMPBR-NEXT:  LBB0_2: ; %if.then21; CHECK-NO-CMPBR-NEXT:    brk #0x122  %cmp = icmp eq i8 %a, %b23  br i1 %cmp, label %if.then, label %if.end24 25if.then:26  tail call void @llvm.trap()27  unreachable28 29if.end:30  ret void31}32 33define void @cbb_assertsext_sgt(i8 signext %a, i8 signext %b) {34; CHECK-CMPBR-LABEL: cbb_assertsext_sgt:35; CHECK-CMPBR:       ; %bb.0:36; CHECK-CMPBR-NEXT:    cbbgt w0, w1, LBB1_237; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end38; CHECK-CMPBR-NEXT:    ret39; CHECK-CMPBR-NEXT:  LBB1_2: ; %if.then40; CHECK-CMPBR-NEXT:    brk #0x141;42; CHECK-NO-CMPBR-LABEL: cbb_assertsext_sgt:43; CHECK-NO-CMPBR:       ; %bb.0:44; CHECK-NO-CMPBR-NEXT:    cmp w0, w145; CHECK-NO-CMPBR-NEXT:    b.gt LBB1_246; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end47; CHECK-NO-CMPBR-NEXT:    ret48; CHECK-NO-CMPBR-NEXT:  LBB1_2: ; %if.then49; CHECK-NO-CMPBR-NEXT:    brk #0x150  %cmp = icmp sgt i8 %a, %b51  br i1 %cmp, label %if.then, label %if.end52 53if.then:54  tail call void @llvm.trap()55  unreachable56 57if.end:58  ret void59}60 61define void @cbh_assertsext_slt(i16 signext %a, i16 signext %b) {62; CHECK-CMPBR-LABEL: cbh_assertsext_slt:63; CHECK-CMPBR:       ; %bb.0:64; CHECK-CMPBR-NEXT:    cbhgt w1, w0, LBB2_265; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end66; CHECK-CMPBR-NEXT:    ret67; CHECK-CMPBR-NEXT:  LBB2_2: ; %if.then68; CHECK-CMPBR-NEXT:    brk #0x169;70; CHECK-NO-CMPBR-LABEL: cbh_assertsext_slt:71; CHECK-NO-CMPBR:       ; %bb.0:72; CHECK-NO-CMPBR-NEXT:    cmp w0, w173; CHECK-NO-CMPBR-NEXT:    b.lt LBB2_274; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end75; CHECK-NO-CMPBR-NEXT:    ret76; CHECK-NO-CMPBR-NEXT:  LBB2_2: ; %if.then77; CHECK-NO-CMPBR-NEXT:    brk #0x178  %cmp = icmp slt i16 %a, %b79  br i1 %cmp, label %if.then, label %if.end80 81if.then:82  tail call void @llvm.trap()83  unreachable84 85if.end:86  ret void87}88 89define void @cbb_assertzext_eq(i8 zeroext %a, i8 zeroext %b) {90; CHECK-CMPBR-LABEL: cbb_assertzext_eq:91; CHECK-CMPBR:       ; %bb.0:92; CHECK-CMPBR-NEXT:    cbbeq w0, w1, LBB3_293; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end94; CHECK-CMPBR-NEXT:    ret95; CHECK-CMPBR-NEXT:  LBB3_2: ; %if.then96; CHECK-CMPBR-NEXT:    brk #0x197;98; CHECK-NO-CMPBR-LABEL: cbb_assertzext_eq:99; CHECK-NO-CMPBR:       ; %bb.0:100; CHECK-NO-CMPBR-NEXT:    cmp w0, w1101; CHECK-NO-CMPBR-NEXT:    b.eq LBB3_2102; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end103; CHECK-NO-CMPBR-NEXT:    ret104; CHECK-NO-CMPBR-NEXT:  LBB3_2: ; %if.then105; CHECK-NO-CMPBR-NEXT:    brk #0x1106  %cmp = icmp eq i8 %a, %b107  br i1 %cmp, label %if.then, label %if.end108 109if.then:110  tail call void @llvm.trap()111  unreachable112 113if.end:114  ret void115}116 117define void @cbb_assertzext_ugt(i8 zeroext %a, i8 zeroext %b) {118; CHECK-CMPBR-LABEL: cbb_assertzext_ugt:119; CHECK-CMPBR:       ; %bb.0:120; CHECK-CMPBR-NEXT:    cbbhi w0, w1, LBB4_2121; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end122; CHECK-CMPBR-NEXT:    ret123; CHECK-CMPBR-NEXT:  LBB4_2: ; %if.then124; CHECK-CMPBR-NEXT:    brk #0x1125;126; CHECK-NO-CMPBR-LABEL: cbb_assertzext_ugt:127; CHECK-NO-CMPBR:       ; %bb.0:128; CHECK-NO-CMPBR-NEXT:    cmp w0, w1129; CHECK-NO-CMPBR-NEXT:    b.hi LBB4_2130; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end131; CHECK-NO-CMPBR-NEXT:    ret132; CHECK-NO-CMPBR-NEXT:  LBB4_2: ; %if.then133; CHECK-NO-CMPBR-NEXT:    brk #0x1134  %cmp = icmp ugt i8 %a, %b135  br i1 %cmp, label %if.then, label %if.end136 137if.then:138  tail call void @llvm.trap()139  unreachable140 141if.end:142  ret void143}144 145define void @cbh_assertzext_ule(i16 zeroext %a, i16 zeroext %b) {146; CHECK-CMPBR-LABEL: cbh_assertzext_ule:147; CHECK-CMPBR:       ; %bb.0:148; CHECK-CMPBR-NEXT:    cbhhs w1, w0, LBB5_2149; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end150; CHECK-CMPBR-NEXT:    ret151; CHECK-CMPBR-NEXT:  LBB5_2: ; %if.then152; CHECK-CMPBR-NEXT:    brk #0x1153;154; CHECK-NO-CMPBR-LABEL: cbh_assertzext_ule:155; CHECK-NO-CMPBR:       ; %bb.0:156; CHECK-NO-CMPBR-NEXT:    cmp w0, w1157; CHECK-NO-CMPBR-NEXT:    b.ls LBB5_2158; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end159; CHECK-NO-CMPBR-NEXT:    ret160; CHECK-NO-CMPBR-NEXT:  LBB5_2: ; %if.then161; CHECK-NO-CMPBR-NEXT:    brk #0x1162  %cmp = icmp ule i16 %a, %b163  br i1 %cmp, label %if.then, label %if.end164 165if.then:166  tail call void @llvm.trap()167  unreachable168 169if.end:170  ret void171}172 173define void @cbb_mixed_assertsext_only_first(i8 signext %a, i8 %b) {174; CHECK-CMPBR-LABEL: cbb_mixed_assertsext_only_first:175; CHECK-CMPBR:       ; %bb.0:176; CHECK-CMPBR-NEXT:    cbbgt w0, w1, LBB6_2177; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end178; CHECK-CMPBR-NEXT:    ret179; CHECK-CMPBR-NEXT:  LBB6_2: ; %if.then180; CHECK-CMPBR-NEXT:    brk #0x1181;182; CHECK-NO-CMPBR-LABEL: cbb_mixed_assertsext_only_first:183; CHECK-NO-CMPBR:       ; %bb.0:184; CHECK-NO-CMPBR-NEXT:    cmp w0, w1, sxtb185; CHECK-NO-CMPBR-NEXT:    b.gt LBB6_2186; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end187; CHECK-NO-CMPBR-NEXT:    ret188; CHECK-NO-CMPBR-NEXT:  LBB6_2: ; %if.then189; CHECK-NO-CMPBR-NEXT:    brk #0x1190  %cmp = icmp sgt i8 %a, %b191  br i1 %cmp, label %if.then, label %if.end192 193if.then:194  tail call void @llvm.trap()195  unreachable196 197if.end:198  ret void199}200 201define void @cbb_mixed_assertzext_only_second(i8 %a, i8 zeroext %b) {202; CHECK-CMPBR-LABEL: cbb_mixed_assertzext_only_second:203; CHECK-CMPBR:       ; %bb.0:204; CHECK-CMPBR-NEXT:    cbbhi w0, w1, LBB7_2205; CHECK-CMPBR-NEXT:  ; %bb.1: ; %if.end206; CHECK-CMPBR-NEXT:    ret207; CHECK-CMPBR-NEXT:  LBB7_2: ; %if.then208; CHECK-CMPBR-NEXT:    brk #0x1209;210; CHECK-NO-CMPBR-LABEL: cbb_mixed_assertzext_only_second:211; CHECK-NO-CMPBR:       ; %bb.0:212; CHECK-NO-CMPBR-NEXT:    cmp w1, w0, uxtb213; CHECK-NO-CMPBR-NEXT:    b.lo LBB7_2214; CHECK-NO-CMPBR-NEXT:  ; %bb.1: ; %if.end215; CHECK-NO-CMPBR-NEXT:    ret216; CHECK-NO-CMPBR-NEXT:  LBB7_2: ; %if.then217; CHECK-NO-CMPBR-NEXT:    brk #0x1218  %cmp = icmp ugt i8 %a, %b219  br i1 %cmp, label %if.then, label %if.end220 221if.then:222  tail call void @llvm.trap()223  unreachable224 225if.end:226  ret void227}228 229 230declare void @llvm.trap()231