brintos

brintos / llvm-project-archived public Read only

0
0
Text · 25.0 KiB · 6946cc2 Raw
904 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=aarch64 -O3 | FileCheck %s --check-prefixes=CHECK,CHECK-SD3; RUN: llc < %s -mtriple=aarch64 -O3 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI4 5declare void @t()6 7define void @test1(i32 %a) {8; CHECK-LABEL: test1:9; CHECK:       // %bb.0: // %entry10; CHECK-NEXT:    cmp w0, #1211; CHECK-NEXT:    b.mi .LBB0_212; CHECK-NEXT:  // %bb.1: // %if.end13; CHECK-NEXT:    ret14; CHECK-NEXT:  .LBB0_2: // %if.then15; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill16; CHECK-NEXT:    .cfi_def_cfa_offset 1617; CHECK-NEXT:    .cfi_offset w30, -1618; CHECK-NEXT:    bl t19; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload20; CHECK-NEXT:    ret21entry:22  %sub = add nsw i32 %a, -1223  %cmp = icmp slt i32 %sub, 024  br i1 %cmp, label %if.then, label %if.end25 26 27if.then:28  call void @t()29  br label %if.end30 31if.end:32  ret void33}34 35define void @test2(i64 %a) {36; CHECK-LABEL: test2:37; CHECK:       // %bb.0: // %entry38; CHECK-NEXT:    cmp x0, #1239; CHECK-NEXT:    b.mi .LBB1_240; CHECK-NEXT:  // %bb.1: // %if.end41; CHECK-NEXT:    ret42; CHECK-NEXT:  .LBB1_2: // %if.then43; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill44; CHECK-NEXT:    .cfi_def_cfa_offset 1645; CHECK-NEXT:    .cfi_offset w30, -1646; CHECK-NEXT:    bl t47; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload48; CHECK-NEXT:    ret49entry:50  %sub = add nsw i64 %a, -1251  %cmp = icmp slt i64 %sub, 052  br i1 %cmp, label %if.then, label %if.end53 54 55if.then:56  call void @t()57  br label %if.end58 59if.end:60  ret void61}62 63define void @test3(i32 %a) {64; CHECK-LABEL: test3:65; CHECK:       // %bb.0: // %entry66; CHECK-NEXT:    cmp w0, #1267; CHECK-NEXT:    b.mi .LBB2_268; CHECK-NEXT:  // %bb.1: // %if.then69; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill70; CHECK-NEXT:    .cfi_def_cfa_offset 1671; CHECK-NEXT:    .cfi_offset w30, -1672; CHECK-NEXT:    bl t73; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload74; CHECK-NEXT:  .LBB2_2: // %if.end75; CHECK-NEXT:    ret76entry:77  %sub = add nsw i32 %a, -1278  %cmp = icmp sgt i32 %sub, -179  br i1 %cmp, label %if.then, label %if.end80 81 82if.then:83  call void @t()84  br label %if.end85 86if.end:87  ret void88}89 90define void @test4(i64 %a) {91; CHECK-LABEL: test4:92; CHECK:       // %bb.0: // %entry93; CHECK-NEXT:    cmp x0, #1294; CHECK-NEXT:    b.mi .LBB3_295; CHECK-NEXT:  // %bb.1: // %if.then96; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill97; CHECK-NEXT:    .cfi_def_cfa_offset 1698; CHECK-NEXT:    .cfi_offset w30, -1699; CHECK-NEXT:    bl t100; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload101; CHECK-NEXT:  .LBB3_2: // %if.end102; CHECK-NEXT:    ret103entry:104  %sub = add nsw i64 %a, -12105  %cmp = icmp sgt i64 %sub, -1106  br i1 %cmp, label %if.then, label %if.end107 108 109if.then:110  call void @t()111  br label %if.end112 113if.end:114  ret void115}116 117define void @test5(i32 %a) {118; CHECK-LABEL: test5:119; CHECK:       // %bb.0: // %entry120; CHECK-NEXT:    cmp w0, #12121; CHECK-NEXT:    b.mi .LBB4_2122; CHECK-NEXT:  // %bb.1: // %if.then123; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill124; CHECK-NEXT:    .cfi_def_cfa_offset 16125; CHECK-NEXT:    .cfi_offset w30, -16126; CHECK-NEXT:    bl t127; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload128; CHECK-NEXT:  .LBB4_2: // %if.end129; CHECK-NEXT:    ret130entry:131  %sub = add nsw i32 %a, -12132  %cmp = icmp sge i32 %sub, 0133  br i1 %cmp, label %if.then, label %if.end134 135 136if.then:137  call void @t()138  br label %if.end139 140if.end:141  ret void142}143 144define void @test6(i64 %a) {145; CHECK-LABEL: test6:146; CHECK:       // %bb.0: // %entry147; CHECK-NEXT:    cmp x0, #12148; CHECK-NEXT:    b.mi .LBB5_2149; CHECK-NEXT:  // %bb.1: // %if.then150; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill151; CHECK-NEXT:    .cfi_def_cfa_offset 16152; CHECK-NEXT:    .cfi_offset w30, -16153; CHECK-NEXT:    bl t154; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload155; CHECK-NEXT:  .LBB5_2: // %if.end156; CHECK-NEXT:    ret157entry:158  %sub = add nsw i64 %a, -12159  %cmp = icmp sge i64 %sub, 0160  br i1 %cmp, label %if.then, label %if.end161 162 163if.then:164  call void @t()165  br label %if.end166 167if.end:168  ret void169}170 171define void @test7(i32 %a) {172; CHECK-LABEL: test7:173; CHECK:       // %bb.0: // %entry174; CHECK-NEXT:    cmp w0, #12175; CHECK-NEXT:    b.mi .LBB6_2176; CHECK-NEXT:  // %bb.1: // %if.end177; CHECK-NEXT:    ret178; CHECK-NEXT:  .LBB6_2: // %if.then179; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill180; CHECK-NEXT:    .cfi_def_cfa_offset 16181; CHECK-NEXT:    .cfi_offset w30, -16182; CHECK-NEXT:    bl t183; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload184; CHECK-NEXT:    ret185entry:186  %sub = sub nsw i32 %a, 12187  %cmp = icmp slt i32 %sub, 0188  br i1 %cmp, label %if.then, label %if.end189 190 191if.then:192  call void @t()193  br label %if.end194 195if.end:196  ret void197}198 199define void @test8(i64 %val1, i64 %val2, i64 %val3) {200; CHECK-SD-LABEL: test8:201; CHECK-SD:       // %bb.0:202; CHECK-SD-NEXT:    tst x0, x1203; CHECK-SD-NEXT:    b.pl .LBB7_3204; CHECK-SD-NEXT:  // %bb.1:205; CHECK-SD-NEXT:    and x8, x1, x2206; CHECK-SD-NEXT:    tbnz x8, #63, .LBB7_3207; CHECK-SD-NEXT:  // %bb.2: // %if.then2208; CHECK-SD-NEXT:    tst x0, x1, lsl #63209; CHECK-SD-NEXT:    b.mi .LBB7_4210; CHECK-SD-NEXT:  .LBB7_3: // %if.end211; CHECK-SD-NEXT:    ret212; CHECK-SD-NEXT:  .LBB7_4: // %if.then3213; CHECK-SD-NEXT:    tst x0, x1, lsl #62214; CHECK-SD-NEXT:    b.mi .LBB7_3215; CHECK-SD-NEXT:  // %bb.5: // %if.then4216; CHECK-SD-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill217; CHECK-SD-NEXT:    .cfi_def_cfa_offset 16218; CHECK-SD-NEXT:    .cfi_offset w30, -16219; CHECK-SD-NEXT:    bl t220; CHECK-SD-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload221; CHECK-SD-NEXT:    ret222;223; CHECK-GI-LABEL: test8:224; CHECK-GI:       // %bb.0:225; CHECK-GI-NEXT:    tst x0, x1226; CHECK-GI-NEXT:    b.pl .LBB7_3227; CHECK-GI-NEXT:  // %bb.1:228; CHECK-GI-NEXT:    tst x1, x2229; CHECK-GI-NEXT:    b.mi .LBB7_3230; CHECK-GI-NEXT:  // %bb.2: // %if.then2231; CHECK-GI-NEXT:    tst x0, x1, lsl #63232; CHECK-GI-NEXT:    b.mi .LBB7_4233; CHECK-GI-NEXT:  .LBB7_3: // %if.end234; CHECK-GI-NEXT:    ret235; CHECK-GI-NEXT:  .LBB7_4: // %if.then3236; CHECK-GI-NEXT:    tst x0, x1, lsl #62237; CHECK-GI-NEXT:    b.mi .LBB7_3238; CHECK-GI-NEXT:  // %bb.5: // %if.then4239; CHECK-GI-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill240; CHECK-GI-NEXT:    .cfi_def_cfa_offset 16241; CHECK-GI-NEXT:    .cfi_offset w30, -16242; CHECK-GI-NEXT:    bl t243; CHECK-GI-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload244; CHECK-GI-NEXT:    ret245  %and1 = and i64 %val1, %val2246  %tst1 = icmp slt i64 %and1, 0247  br i1 %tst1, label %if.then1, label %if.end248 249 250if.then1:251  %and2 = and i64 %val2, %val3252  %tst2 = icmp sge i64 %and2, 0253  br i1 %tst2, label %if.then2, label %if.end254 255 256if.then2:257  %shifted_op1 = shl i64 %val2, 63258  %shifted_and1 = and i64 %val1, %shifted_op1259  %tst3 = icmp slt i64 %shifted_and1, 0260  br i1 %tst3, label %if.then3, label %if.end261 262 263if.then3:264  %shifted_op2 = shl i64 %val2, 62265  %shifted_and2 = and i64 %val1, %shifted_op2266  %tst4 = icmp sge i64 %shifted_and2, 0267  br i1 %tst4, label %if.then4, label %if.end268 269 270if.then4:271  call void @t()272  br label %if.end273 274if.end:275  ret void276}277 278define void @test9(i64 %val1) {279; CHECK-LABEL: test9:280; CHECK:       // %bb.0:281; CHECK-NEXT:    tbnz x0, #63, .LBB8_2282; CHECK-NEXT:  // %bb.1: // %if.end283; CHECK-NEXT:    ret284; CHECK-NEXT:  .LBB8_2: // %if.then285; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill286; CHECK-NEXT:    .cfi_def_cfa_offset 16287; CHECK-NEXT:    .cfi_offset w30, -16288; CHECK-NEXT:    bl t289; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload290; CHECK-NEXT:    ret291  %tst = icmp slt i64 %val1, 0292  br i1 %tst, label %if.then, label %if.end293 294 295if.then:296  call void @t()297  br label %if.end298 299if.end:300  ret void301}302 303define void @test10(i64 %val1) {304; CHECK-LABEL: test10:305; CHECK:       // %bb.0:306; CHECK-NEXT:    tbnz x0, #63, .LBB9_2307; CHECK-NEXT:  // %bb.1: // %if.end308; CHECK-NEXT:    ret309; CHECK-NEXT:  .LBB9_2: // %if.then310; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill311; CHECK-NEXT:    .cfi_def_cfa_offset 16312; CHECK-NEXT:    .cfi_offset w30, -16313; CHECK-NEXT:    bl t314; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload315; CHECK-NEXT:    ret316  %tst = icmp slt i64 %val1, 0317  br i1 %tst, label %if.then, label %if.end318 319 320if.then:321  call void @t()322  br label %if.end323 324if.end:325  ret void326}327 328define void @test11(i64 %val1, ptr %ptr) {329; CHECK-LABEL: test11:330; CHECK:       // %bb.0:331; CHECK-NEXT:    ldr x8, [x1]332; CHECK-NEXT:    tbnz x8, #63, .LBB10_2333; CHECK-NEXT:  // %bb.1: // %if.end334; CHECK-NEXT:    ret335; CHECK-NEXT:  .LBB10_2: // %if.then336; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill337; CHECK-NEXT:    .cfi_def_cfa_offset 16338; CHECK-NEXT:    .cfi_offset w30, -16339; CHECK-NEXT:    bl t340; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload341; CHECK-NEXT:    ret342 343 344  %val = load i64, ptr %ptr345  %tst = icmp slt i64 %val, 0346  br i1 %tst, label %if.then, label %if.end347 348if.then:349  call void @t()350  br label %if.end351 352if.end:353  ret void354}355 356define void @test12(i64 %val1) {357; CHECK-LABEL: test12:358; CHECK:       // %bb.0:359; CHECK-NEXT:    tbnz x0, #63, .LBB11_2360; CHECK-NEXT:  // %bb.1: // %if.end361; CHECK-NEXT:    ret362; CHECK-NEXT:  .LBB11_2: // %if.then363; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill364; CHECK-NEXT:    .cfi_def_cfa_offset 16365; CHECK-NEXT:    .cfi_offset w30, -16366; CHECK-NEXT:    bl t367; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload368; CHECK-NEXT:    ret369  %tst = icmp slt i64 %val1, 0370  br i1 %tst, label %if.then, label %if.end371 372 373if.then:374  call void @t()375  br label %if.end376 377if.end:378  ret void379}380 381define void @test13(i64 %val1, i64 %val2) {382; CHECK-LABEL: test13:383; CHECK:       // %bb.0:384; CHECK-NEXT:    orr x8, x0, x1385; CHECK-NEXT:    tbnz x8, #63, .LBB12_2386; CHECK-NEXT:  // %bb.1: // %if.end387; CHECK-NEXT:    ret388; CHECK-NEXT:  .LBB12_2: // %if.then389; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill390; CHECK-NEXT:    .cfi_def_cfa_offset 16391; CHECK-NEXT:    .cfi_offset w30, -16392; CHECK-NEXT:    bl t393; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload394; CHECK-NEXT:    ret395  %or = or i64 %val1, %val2396  %tst = icmp slt i64 %or, 0397  br i1 %tst, label %if.then, label %if.end398 399 400if.then:401  call void @t()402  br label %if.end403 404if.end:405  ret void406}407 408define void @test14(i1 %cond) {409; CHECK-LABEL: test14:410; CHECK:       // %bb.0:411; CHECK-NEXT:    tbnz w0, #0, .LBB13_2412; CHECK-NEXT:  // %bb.1: // %if.then413; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill414; CHECK-NEXT:    .cfi_def_cfa_offset 16415; CHECK-NEXT:    .cfi_offset w30, -16416; CHECK-NEXT:    bl t417; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload418; CHECK-NEXT:  .LBB13_2: // %if.end419; CHECK-NEXT:    ret420  br i1 %cond, label %if.end, label %if.then421 422 423if.then:424  call void @t()425  br label %if.end426 427if.end:428  ret void429}430 431define void @test15(i1 %cond) {432; CHECK-LABEL: test15:433; CHECK:       // %bb.0:434; CHECK-NEXT:    tbnz w0, #0, .LBB14_2435; CHECK-NEXT:  // %bb.1: // %if.then436; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill437; CHECK-NEXT:    .cfi_def_cfa_offset 16438; CHECK-NEXT:    .cfi_offset w30, -16439; CHECK-NEXT:    bl t440; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload441; CHECK-NEXT:  .LBB14_2: // %if.end442; CHECK-NEXT:    ret443  %cond1 = xor i1 %cond, -1444  br i1 %cond1, label %if.then, label %if.end445 446 447if.then:448  call void @t()449  br label %if.end450 451if.end:452  ret void453}454 455define void @test16(i64 %in) {456; CHECK-LABEL: test16:457; CHECK:       // %bb.0:458; CHECK-NEXT:    tbnz w0, #2, .LBB15_2459; CHECK-NEXT:  // %bb.1: // %then460; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill461; CHECK-NEXT:    .cfi_def_cfa_offset 16462; CHECK-NEXT:    .cfi_offset w30, -16463; CHECK-NEXT:    bl t464; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload465; CHECK-NEXT:  .LBB15_2: // %end466; CHECK-NEXT:    ret467  %shl = shl i64 %in, 3468  %and = and i64 %shl, 32469  %cond = icmp eq i64 %and, 0470  br i1 %cond, label %then, label %end471 472 473then:474  call void @t()475  br label %end476 477end:478  ret void479}480 481define void @test17(i64 %in) {482; CHECK-LABEL: test17:483; CHECK:       // %bb.0:484; CHECK-NEXT:    tbnz w0, #3, .LBB16_2485; CHECK-NEXT:  // %bb.1: // %then486; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill487; CHECK-NEXT:    .cfi_def_cfa_offset 16488; CHECK-NEXT:    .cfi_offset w30, -16489; CHECK-NEXT:    bl t490; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload491; CHECK-NEXT:  .LBB16_2: // %end492; CHECK-NEXT:    ret493  %shr = ashr i64 %in, 3494  %and = and i64 %shr, 1495  %cond = icmp eq i64 %and, 0496  br i1 %cond, label %then, label %end497 498 499then:500  call void @t()501  br label %end502 503end:504  ret void505}506 507define void @test18(i32 %in) {508; CHECK-LABEL: test18:509; CHECK:       // %bb.0:510; CHECK-NEXT:    tbnz w0, #31, .LBB17_2511; CHECK-NEXT:  // %bb.1: // %then512; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill513; CHECK-NEXT:    .cfi_def_cfa_offset 16514; CHECK-NEXT:    .cfi_offset w30, -16515; CHECK-NEXT:    bl t516; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload517; CHECK-NEXT:  .LBB17_2: // %end518; CHECK-NEXT:    ret519  %shr = ashr i32 %in, 2520  %cond = icmp sge i32 %shr, 0521  br i1 %cond, label %then, label %end522 523 524then:525  call void @t()526  br label %end527 528end:529  ret void530}531 532define void @test19(i64 %in) {533; CHECK-LABEL: test19:534; CHECK:       // %bb.0:535; CHECK-NEXT:    tbnz w0, #3, .LBB18_2536; CHECK-NEXT:  // %bb.1: // %then537; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill538; CHECK-NEXT:    .cfi_def_cfa_offset 16539; CHECK-NEXT:    .cfi_offset w30, -16540; CHECK-NEXT:    bl t541; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload542; CHECK-NEXT:  .LBB18_2: // %end543; CHECK-NEXT:    ret544  %shl = lshr i64 %in, 3545  %trunc = trunc i64 %shl to i32546  %and = and i32 %trunc, 1547  %cond = icmp eq i32 %and, 0548  br i1 %cond, label %then, label %end549 550 551then:552  call void @t()553  br label %end554 555end:556  ret void557}558 559define void @test20(i32 %in) nounwind {560; CHECK-LABEL: test20:561; CHECK:       // %bb.0:562; CHECK-NEXT:    tbnz w0, #2, .LBB19_2563; CHECK-NEXT:  // %bb.1: // %then564; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill565; CHECK-NEXT:    bl t566; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload567; CHECK-NEXT:  .LBB19_2: // %end568; CHECK-NEXT:    ret569  %shl = shl i32 %in, 3570  %zext = zext i32 %shl to i64571  %and = and i64 %zext, 32572  %cond = icmp eq i64 %and, 0573  br i1 %cond, label %then, label %end574 575 576then:577  call void @t()578  br label %end579 580end:581  ret void582}583 584define ptr @tbnz_wzr(i1 %cmp1.not.i, ptr %locflg) {585; CHECK-SD-LABEL: tbnz_wzr:586; CHECK-SD:       // %bb.0: // %entry587; CHECK-SD-NEXT:    tbz w0, #0, .LBB20_2588; CHECK-SD-NEXT:  // %bb.1:589; CHECK-SD-NEXT:    tbnz wzr, #0, .LBB20_3590; CHECK-SD-NEXT:    b .LBB20_4591; CHECK-SD-NEXT:  .LBB20_2: // %opnfil.exit.thread592; CHECK-SD-NEXT:    mov w8, #1 // =0x1593; CHECK-SD-NEXT:    str wzr, [x1]594; CHECK-SD-NEXT:    tbz w8, #0, .LBB20_4595; CHECK-SD-NEXT:  .LBB20_3: // %if.else25596; CHECK-SD-NEXT:    str wzr, [x1]597; CHECK-SD-NEXT:  .LBB20_4: // %common.ret598; CHECK-SD-NEXT:    mov x0, xzr599; CHECK-SD-NEXT:    ret600;601; CHECK-GI-LABEL: tbnz_wzr:602; CHECK-GI:       // %bb.0: // %entry603; CHECK-GI-NEXT:    mov w8, #0 // =0x0604; CHECK-GI-NEXT:    tbz w0, #0, .LBB20_3605; CHECK-GI-NEXT:  // %bb.1: // %if.end10606; CHECK-GI-NEXT:    tbnz w8, #0, .LBB20_4607; CHECK-GI-NEXT:  .LBB20_2: // %common.ret608; CHECK-GI-NEXT:    mov x0, xzr609; CHECK-GI-NEXT:    ret610; CHECK-GI-NEXT:  .LBB20_3: // %opnfil.exit.thread611; CHECK-GI-NEXT:    mov w8, #1 // =0x1612; CHECK-GI-NEXT:    str wzr, [x1]613; CHECK-GI-NEXT:    tbz w8, #0, .LBB20_2614; CHECK-GI-NEXT:  .LBB20_4: // %if.else25615; CHECK-GI-NEXT:    str wzr, [x1]616; CHECK-GI-NEXT:    mov x0, xzr617; CHECK-GI-NEXT:    ret618entry:619  br i1 %cmp1.not.i, label %if.end10, label %opnfil.exit.thread620 621opnfil.exit.thread:                               ; preds = %entry622  store i32 0, ptr %locflg, align 4623  br label %if.end10624 625if.end10:                                         ; preds = %opnfil.exit.thread, %entry626  %cmp5 = phi i1 [ true, %opnfil.exit.thread ], [ false, %entry ]627  br i1 %cmp5, label %if.else25, label %if.then12628 629if.then12:                                        ; preds = %if.end10630  %call20 = load i32, ptr null, align 4631  br label %if.end26632 633if.else25:                                        ; preds = %if.end10634  store i32 0, ptr %locflg, align 4635  br label %if.end26636 637if.end26:                                         ; preds = %if.else25, %if.then12638  br i1 %cmp5, label %common.ret, label %if.then28639 640common.ret:                                       ; preds = %if.then28, %if.end26641  %common.ret.op = phi ptr [ null, %if.then28 ], [ null, %if.end26 ]642  ret ptr %common.ret.op643 644if.then28:                                        ; preds = %if.end26645  %0 = load ptr, ptr null, align 8646  br label %common.ret647}648 649define ptr @tbz_wzr(i1 %cmp1.not.i, ptr %locflg) {650; CHECK-SD-LABEL: tbz_wzr:651; CHECK-SD:       // %bb.0: // %entry652; CHECK-SD-NEXT:    tbz w0, #0, .LBB21_2653; CHECK-SD-NEXT:  // %bb.1:654; CHECK-SD-NEXT:    mov w8, #1 // =0x1655; CHECK-SD-NEXT:    tbnz w8, #0, .LBB21_3656; CHECK-SD-NEXT:    b .LBB21_4657; CHECK-SD-NEXT:  .LBB21_2: // %opnfil.exit.thread658; CHECK-SD-NEXT:    str wzr, [x1]659; CHECK-SD-NEXT:    tbz wzr, #0, .LBB21_4660; CHECK-SD-NEXT:  .LBB21_3: // %if.else25661; CHECK-SD-NEXT:    str wzr, [x1]662; CHECK-SD-NEXT:  .LBB21_4: // %common.ret663; CHECK-SD-NEXT:    mov x0, xzr664; CHECK-SD-NEXT:    ret665;666; CHECK-GI-LABEL: tbz_wzr:667; CHECK-GI:       // %bb.0: // %entry668; CHECK-GI-NEXT:    mov w8, #1 // =0x1669; CHECK-GI-NEXT:    tbz w0, #0, .LBB21_3670; CHECK-GI-NEXT:  // %bb.1: // %if.end10671; CHECK-GI-NEXT:    tbnz w8, #0, .LBB21_4672; CHECK-GI-NEXT:  .LBB21_2: // %common.ret673; CHECK-GI-NEXT:    mov x0, xzr674; CHECK-GI-NEXT:    ret675; CHECK-GI-NEXT:  .LBB21_3: // %opnfil.exit.thread676; CHECK-GI-NEXT:    mov w8, #0 // =0x0677; CHECK-GI-NEXT:    str wzr, [x1]678; CHECK-GI-NEXT:    tbz w8, #0, .LBB21_2679; CHECK-GI-NEXT:  .LBB21_4: // %if.else25680; CHECK-GI-NEXT:    str wzr, [x1]681; CHECK-GI-NEXT:    mov x0, xzr682; CHECK-GI-NEXT:    ret683entry:684  br i1 %cmp1.not.i, label %if.end10, label %opnfil.exit.thread685 686opnfil.exit.thread:                               ; preds = %entry687  store i32 0, ptr %locflg, align 4688  br label %if.end10689 690if.end10:                                         ; preds = %opnfil.exit.thread, %entry691  %cmp5 = phi i1 [ false, %opnfil.exit.thread ], [ true, %entry ]692  br i1 %cmp5, label %if.else25, label %if.then12693 694if.then12:                                        ; preds = %if.end10695  %call20 = load i32, ptr null, align 4696  br label %if.end26697 698if.else25:                                        ; preds = %if.end10699  store i32 0, ptr %locflg, align 4700  br label %if.end26701 702if.end26:                                         ; preds = %if.else25, %if.then12703  br i1 %cmp5, label %common.ret, label %if.then28704 705common.ret:                                       ; preds = %if.then28, %if.end26706  %common.ret.op = phi ptr [ null, %if.then28 ], [ null, %if.end26 ]707  ret ptr %common.ret.op708 709if.then28:                                        ; preds = %if.end26710  %0 = load ptr, ptr null, align 8711  br label %common.ret712}713 714define ptr @cbnz_wzr(i1 %cmp1.not.i, ptr %locflg) {715; CHECK-SD-LABEL: cbnz_wzr:716; CHECK-SD:       // %bb.0: // %entry717; CHECK-SD-NEXT:    tbz w0, #0, .LBB22_2718; CHECK-SD-NEXT:  // %bb.1:719; CHECK-SD-NEXT:    cbnz wzr, .LBB22_3720; CHECK-SD-NEXT:    b .LBB22_4721; CHECK-SD-NEXT:  .LBB22_2: // %opnfil.exit.thread722; CHECK-SD-NEXT:    mov w8, #10 // =0xa723; CHECK-SD-NEXT:    str wzr, [x1]724; CHECK-SD-NEXT:    cbz w8, .LBB22_4725; CHECK-SD-NEXT:  .LBB22_3: // %if.else25726; CHECK-SD-NEXT:    str wzr, [x1]727; CHECK-SD-NEXT:  .LBB22_4: // %common.ret728; CHECK-SD-NEXT:    mov x0, xzr729; CHECK-SD-NEXT:    ret730;731; CHECK-GI-LABEL: cbnz_wzr:732; CHECK-GI:       // %bb.0: // %entry733; CHECK-GI-NEXT:    mov w8, wzr734; CHECK-GI-NEXT:    tbnz w0, #0, .LBB22_2735; CHECK-GI-NEXT:  // %bb.1: // %opnfil.exit.thread736; CHECK-GI-NEXT:    mov w8, #10 // =0xa737; CHECK-GI-NEXT:    str wzr, [x1]738; CHECK-GI-NEXT:  .LBB22_2: // %if.end10739; CHECK-GI-NEXT:    cbz w8, .LBB22_4740; CHECK-GI-NEXT:  // %bb.3: // %if.else25741; CHECK-GI-NEXT:    str wzr, [x1]742; CHECK-GI-NEXT:  .LBB22_4: // %common.ret743; CHECK-GI-NEXT:    mov x0, xzr744; CHECK-GI-NEXT:    ret745entry:746  br i1 %cmp1.not.i, label %if.end10, label %opnfil.exit.thread747 748opnfil.exit.thread:                               ; preds = %entry749  store i32 0, ptr %locflg, align 4750  br label %if.end10751 752if.end10:                                         ; preds = %opnfil.exit.thread, %entry753  %cmp5 = phi i32 [ 10, %opnfil.exit.thread ], [ 0, %entry ]754  %cmp5b = icmp ne i32 %cmp5, 0755  br i1 %cmp5b, label %if.else25, label %if.then12756 757if.then12:                                        ; preds = %if.end10758  %call20 = load i32, ptr null, align 4759  br label %if.end26760 761if.else25:                                        ; preds = %if.end10762  store i32 0, ptr %locflg, align 4763  br label %if.end26764 765if.end26:                                         ; preds = %if.else25, %if.then12766  br i1 %cmp5b, label %common.ret, label %if.then28767 768common.ret:                                       ; preds = %if.then28, %if.end26769  %common.ret.op = phi ptr [ null, %if.then28 ], [ null, %if.end26 ]770  ret ptr %common.ret.op771 772if.then28:                                        ; preds = %if.end26773  %0 = load ptr, ptr null, align 8774  br label %common.ret775}776 777define ptr @cbz_wzr(i1 %cmp1.not.i, ptr %locflg) {778; CHECK-SD-LABEL: cbz_wzr:779; CHECK-SD:       // %bb.0: // %entry780; CHECK-SD-NEXT:    tbz w0, #0, .LBB23_2781; CHECK-SD-NEXT:  // %bb.1:782; CHECK-SD-NEXT:    mov w8, #10 // =0xa783; CHECK-SD-NEXT:    cbnz w8, .LBB23_3784; CHECK-SD-NEXT:    b .LBB23_4785; CHECK-SD-NEXT:  .LBB23_2: // %opnfil.exit.thread786; CHECK-SD-NEXT:    str wzr, [x1]787; CHECK-SD-NEXT:    cbz wzr, .LBB23_4788; CHECK-SD-NEXT:  .LBB23_3: // %if.else25789; CHECK-SD-NEXT:    str wzr, [x1]790; CHECK-SD-NEXT:  .LBB23_4: // %common.ret791; CHECK-SD-NEXT:    mov x0, xzr792; CHECK-SD-NEXT:    ret793;794; CHECK-GI-LABEL: cbz_wzr:795; CHECK-GI:       // %bb.0: // %entry796; CHECK-GI-NEXT:    mov w8, #10 // =0xa797; CHECK-GI-NEXT:    tbnz w0, #0, .LBB23_2798; CHECK-GI-NEXT:  // %bb.1: // %opnfil.exit.thread799; CHECK-GI-NEXT:    mov w8, wzr800; CHECK-GI-NEXT:    str wzr, [x1]801; CHECK-GI-NEXT:  .LBB23_2: // %if.end10802; CHECK-GI-NEXT:    cbz w8, .LBB23_4803; CHECK-GI-NEXT:  // %bb.3: // %if.else25804; CHECK-GI-NEXT:    str wzr, [x1]805; CHECK-GI-NEXT:  .LBB23_4: // %common.ret806; CHECK-GI-NEXT:    mov x0, xzr807; CHECK-GI-NEXT:    ret808entry:809  br i1 %cmp1.not.i, label %if.end10, label %opnfil.exit.thread810 811opnfil.exit.thread:                               ; preds = %entry812  store i32 0, ptr %locflg, align 4813  br label %if.end10814 815if.end10:                                         ; preds = %opnfil.exit.thread, %entry816  %cmp5 = phi i32 [ 0, %opnfil.exit.thread ], [ 10, %entry ]817  %cmp5b = icmp ne i32 %cmp5, 0818  br i1 %cmp5b, label %if.else25, label %if.then12819 820if.then12:                                        ; preds = %if.end10821  %call20 = load i32, ptr null, align 4822  br label %if.end26823 824if.else25:                                        ; preds = %if.end10825  store i32 0, ptr %locflg, align 4826  br label %if.end26827 828if.end26:                                         ; preds = %if.else25, %if.then12829  br i1 %cmp5b, label %common.ret, label %if.then28830 831common.ret:                                       ; preds = %if.then28, %if.end26832  %common.ret.op = phi ptr [ null, %if.then28 ], [ null, %if.end26 ]833  ret ptr %common.ret.op834 835if.then28:                                        ; preds = %if.end26836  %0 = load ptr, ptr null, align 8837  br label %common.ret838}839 840define i1 @avifSequenceHeaderParse() {841; CHECK-SD-LABEL: avifSequenceHeaderParse:842; CHECK-SD:       // %bb.0: // %entry843; CHECK-SD-NEXT:    mov w8, #1 // =0x1844; CHECK-SD-NEXT:    cbz w8, .LBB24_2845; CHECK-SD-NEXT:  .LBB24_1: // %bb6846; CHECK-SD-NEXT:    mov w0, wzr847; CHECK-SD-NEXT:    ret848; CHECK-SD-NEXT:  .LBB24_2: // %bb1849; CHECK-SD-NEXT:    cbz w8, .LBB24_4850; CHECK-SD-NEXT:  // %bb.3:851; CHECK-SD-NEXT:    tbz xzr, #63, .LBB24_1852; CHECK-SD-NEXT:    b .LBB24_5853; CHECK-SD-NEXT:  .LBB24_4: // %bb2854; CHECK-SD-NEXT:    mov w8, #1 // =0x1855; CHECK-SD-NEXT:    tbz x8, #63, .LBB24_1856; CHECK-SD-NEXT:  .LBB24_5: // %bb4857; CHECK-SD-NEXT:    mov w8, #1 // =0x1858; CHECK-SD-NEXT:    mov w0, wzr859; CHECK-SD-NEXT:    ret860;861; CHECK-GI-LABEL: avifSequenceHeaderParse:862; CHECK-GI:       // %bb.0: // %entry863; CHECK-GI-NEXT:    mov w0, wzr864; CHECK-GI-NEXT:    mov w8, #1 // =0x1865; CHECK-GI-NEXT:    ret866entry:867  %a = icmp slt i64 0, 0868  br i1 %a, label %bb1, label %bb6869 870bb1:                                 ; preds = %entry871  %b = icmp eq i32 1, 0872  br i1 %b, label %bb2, label %bb3873 874bb2:                                  ; preds = %bb1875  %c = load i8, ptr null, align 1876  %d = zext i8 1 to i64877  %e = shl i64 %d, 0878  br label %bb3879 880bb3:                            ; preds = %bb2, %bb1881  %f = phi i64 [ %e, %bb2 ], [ 0, %bb1 ]882  %g = icmp slt i64 %f, 0883  br i1 %g, label %bb4, label %bb6884 885bb4:                                 ; preds = %bb3886  %h = icmp eq i32 1, 0887  br i1 %h, label %bb5, label %bb7888 889bb5:                                  ; preds = %bb4890  %i = load i8, ptr null, align 1891  %j = shl i64 0, 0892  br label %bb7893 894bb6:                                      ; preds = %bb7, %bb3, %entry895  %k = phi i1 [ false, %bb7 ], [ false, %bb3 ], [ false, %entry ]896  ret i1 %k897 898bb7:                            ; preds = %bb5, %bb4899  %l = phi ptr [ inttoptr (i64 1 to ptr), %bb5 ], [ null, %bb4 ]900  %m = phi i64 [ %j, %bb5 ], [ 0, %bb4 ]901  %n = icmp ult ptr %l, null902  br label %bb6903}904