brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.5 KiB · bcd517a Raw
762 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=aarch64 -run-pass=shrink-wrap -o - %s | FileCheck %s3# RUN: llc -mtriple=aarch64 -passes='shrink-wrap' -o - %s | FileCheck %s4 5--- |6  define void @shrink_test1(i32 %a) {7  entry:8    %cmp5 = icmp sgt i32 %a, 09    br i1 %cmp5, label %BB0, label %exit10 11  BB0:                                              ; preds = %entry12    %call = call i32 @fun()13    %c = icmp eq i32 %call, 014    br i1 %c, label %BB1, label %exit15 16  BB1:                                              ; preds = %BB017    %call2 = call i32 @fun()18    br label %exit19 20  exit:                                             ; preds = %BB1, %BB0, %entry21    ret void22  }23 24  define void @shrink_test2(i32 %a, ptr %P1, ptr %P2) {25  BB00:26    %cmp5 = icmp sgt i32 %a, 027    br i1 %cmp5, label %BB01, label %exit28 29  BB01:                                             ; preds = %BB0030    store i32 %a, ptr %P1, align 431    %c1 = icmp sgt i32 %a, 132    br i1 %c1, label %BB02, label %BB0333 34  BB02:                                             ; preds = %BB0135    store i32 %a, ptr %P2, align 436    br label %BB0337 38  BB03:                                             ; preds = %BB02, %BB0139    %call03 = call i32 @fun()40    %c03 = icmp eq i32 %call03, 041    br i1 %c03, label %BB04, label %BB0542 43  BB04:                                             ; preds = %BB0344    %call04 = call i32 @fun()45    br label %BB0546 47  BB05:                                             ; preds = %BB04, %BB0348    %call05 = call i32 @fun()49    %c05 = icmp eq i32 %call05, 050    br i1 %c05, label %BB06, label %BB0751 52  BB06:                                             ; preds = %BB0553    %call06 = call i32 @fun()54    br label %exit55 56  BB07:                                             ; preds = %BB0557    %call07 = call i32 @fun2()58    br label %exit59 60  exit:                                             ; preds = %BB07, %BB06, %BB0061    ret void62  }63 64  define void @noshrink_test1(i32 %a, i32 %v, i32 %v2) {65  entry:66    %cmp5 = icmp sgt i32 %a, 067    br i1 %cmp5, label %BB0, label %exit68 69  BB0:                                              ; preds = %entry70    %c = icmp eq i32 %a, 1071    %c1 = icmp eq i32 %v, 1072    %or.cond = select i1 %c, i1 %c1, i1 false73    br i1 %or.cond, label %BB3, label %BB274 75  BB2:                                              ; preds = %BB076    %c2 = icmp eq i32 %v2, 1077    br i1 %c2, label %BB4, label %exit78 79  BB3:                                              ; preds = %BB080    %call3 = call i32 @fun()81    br label %exit82 83  BB4:                                              ; preds = %BB284    %call4 = call i32 @fun2()85    br label %exit86 87  exit:                                             ; preds = %BB4, %BB3, %BB2, %entry88    ret void89  }90 91  define void @noshrink_test2(i32 %a) {92  BB00:93    %cmp5 = icmp sgt i32 %a, 094    br i1 %cmp5, label %BB01, label %InfLoop.preheader95 96  InfLoop.preheader:                                ; preds = %BB0097    br label %InfLoop98 99  BB01:                                             ; preds = %BB00100    %call = call i32 @fun()101    %c = icmp eq i32 %call, 0102    br i1 %c, label %BB02, label %exit103 104  BB02:                                             ; preds = %BB01105    %call2 = call i32 @fun()106    br label %exit107 108  InfLoop:                                          ; preds = %InfLoop.preheader, %InfLoop109    %call3 = call i32 @fun()110    br label %InfLoop111 112  exit:                                             ; preds = %BB02, %BB01113    ret void114  }115 116  define void @noshrink_test3(i32 %a) {117  BB00:118    %cmp5 = icmp sgt i32 %a, 0119    %call02 = call i32 @fun()120    br i1 %cmp5, label %BB02, label %BB01121 122  BB01:                                             ; preds = %BB00123    %0 = icmp eq i32 %call02, 0124    br i1 %0, label %BB01.1, label %exit125 126  BB01.1:                                           ; preds = %BB01127    call void @abort() #0128    unreachable129 130  BB02:                                             ; preds = %BB00131    %1 = icmp eq i32 %call02, 0132    br i1 %1, label %BB03, label %BB04133 134  BB03:                                             ; preds = %BB02135    %call03 = call i32 @fun()136    %c03 = icmp eq i32 %call03, 0137    br i1 %c03, label %BB04, label %exit138 139  BB04:                                             ; preds = %BB03, %BB02140    %call04 = call i32 @fun()141    br label %exit142 143  exit:                                             ; preds = %BB04, %BB03, %BB01144    ret void145  }146 147  define void @noshrink_bb_as_inlineasmbr_target(i1 %cond) {148  entry:149    br i1 %cond, label %0, label %exit150 151  0:                                                ; preds = %entry152    callbr void asm sideeffect "", "!i,~{flags}"()153      to label %1 [label %exit]154 155  1:                                                ; preds = %0156    call void @dosomething()157    br label %exit158 159  exit:                                             ; preds = %1, %0, %entry160    ret void161  }162 163  declare i32 @fun()164  declare i32 @fun2()165  declare void @abort()166  declare void @dosomething()167...168---169name:            shrink_test1170alignment:       4171tracksRegLiveness: true172tracksDebugUserValues: true173liveins:174  - { reg: '$w0' }175frameInfo:176  maxAlignment:    1177  adjustsStack:    true178  hasCalls:        true179  maxCallFrameSize: 0180machineFunctionInfo: {}181body:             |182  ; CHECK-LABEL: name: shrink_test1183  ; CHECK: bb.0.entry:184  ; CHECK-NEXT:   successors: %bb.1(0x50000000), %bb.3(0x30000000)185  ; CHECK-NEXT:   liveins: $w0186  ; CHECK-NEXT: {{  $}}187  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w0, 1, 0, implicit-def $nzcv188  ; CHECK-NEXT:   Bcc 11, %bb.3, implicit killed $nzcv189  ; CHECK-NEXT:   B %bb.1190  ; CHECK-NEXT: {{  $}}191  ; CHECK-NEXT: bb.1.BB0:192  ; CHECK-NEXT:   successors: %bb.2(0x30000000), %bb.4(0x50000000)193  ; CHECK-NEXT: {{  $}}194  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp195  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0196  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp197  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.4198  ; CHECK-NEXT:   B %bb.2199  ; CHECK-NEXT: {{  $}}200  ; CHECK-NEXT: bb.2.BB1:201  ; CHECK-NEXT:   successors: %bb.4(0x80000000)202  ; CHECK-NEXT: {{  $}}203  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp204  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0205  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp206  ; CHECK-NEXT:   B %bb.4207  ; CHECK-NEXT: {{  $}}208  ; CHECK-NEXT: bb.3.exit:209  ; CHECK-NEXT:   RET_ReallyLR210  ; CHECK-NEXT: {{  $}}211  ; CHECK-NEXT: bb.4:212  ; CHECK-NEXT:   successors: %bb.3(0x80000000)213  ; CHECK-NEXT: {{  $}}214  ; CHECK-NEXT:   B %bb.3215  bb.0.entry:216    successors: %bb.1(0x50000000), %bb.3(0x30000000)217    liveins: $w0218 219    dead $wzr = SUBSWri killed renamable $w0, 1, 0, implicit-def $nzcv220    Bcc 11, %bb.3, implicit killed $nzcv221    B %bb.1222 223  bb.1.BB0:224    successors: %bb.2(0x30000000), %bb.3(0x50000000)225 226    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp227    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0228    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp229    CBNZW killed renamable $w0, %bb.3230    B %bb.2231 232  bb.2.BB1:233    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp234    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0235    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp236 237  bb.3.exit:238    RET_ReallyLR239 240...241---242name:            shrink_test2243alignment:       4244tracksRegLiveness: true245tracksDebugUserValues: true246liveins:247  - { reg: '$w0' }248  - { reg: '$x1' }249  - { reg: '$x2' }250frameInfo:251  maxAlignment:    1252  adjustsStack:    true253  hasCalls:        true254  maxCallFrameSize: 0255machineFunctionInfo: {}256body:             |257  ; CHECK-LABEL: name: shrink_test2258  ; CHECK: bb.0.BB00:259  ; CHECK-NEXT:   successors: %bb.1(0x50000000), %bb.8(0x30000000)260  ; CHECK-NEXT:   liveins: $w0, $x1, $x2261  ; CHECK-NEXT: {{  $}}262  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv263  ; CHECK-NEXT:   Bcc 11, %bb.8, implicit killed $nzcv264  ; CHECK-NEXT:   B %bb.1265  ; CHECK-NEXT: {{  $}}266  ; CHECK-NEXT: bb.1.BB01:267  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.3(0x40000000)268  ; CHECK-NEXT:   liveins: $w0, $x1, $x2269  ; CHECK-NEXT: {{  $}}270  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w0, 2, 0, implicit-def $nzcv271  ; CHECK-NEXT:   STRWui renamable $w0, killed renamable $x1, 0 :: (store (s32) into %ir.P1)272  ; CHECK-NEXT:   Bcc 11, %bb.3, implicit killed $nzcv273  ; CHECK-NEXT:   B %bb.2274  ; CHECK-NEXT: {{  $}}275  ; CHECK-NEXT: bb.2.BB02:276  ; CHECK-NEXT:   successors: %bb.3(0x80000000)277  ; CHECK-NEXT:   liveins: $w0, $x2278  ; CHECK-NEXT: {{  $}}279  ; CHECK-NEXT:   STRWui killed renamable $w0, killed renamable $x2, 0 :: (store (s32) into %ir.P2)280  ; CHECK-NEXT: {{  $}}281  ; CHECK-NEXT: bb.3.BB03:282  ; CHECK-NEXT:   successors: %bb.4(0x30000000), %bb.5(0x50000000)283  ; CHECK-NEXT: {{  $}}284  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp285  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0286  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp287  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.5288  ; CHECK-NEXT:   B %bb.4289  ; CHECK-NEXT: {{  $}}290  ; CHECK-NEXT: bb.4.BB04:291  ; CHECK-NEXT:   successors: %bb.5(0x80000000)292  ; CHECK-NEXT: {{  $}}293  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp294  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0295  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp296  ; CHECK-NEXT: {{  $}}297  ; CHECK-NEXT: bb.5.BB05:298  ; CHECK-NEXT:   successors: %bb.6(0x30000000), %bb.7(0x50000000)299  ; CHECK-NEXT: {{  $}}300  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp301  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0302  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp303  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.7304  ; CHECK-NEXT:   B %bb.6305  ; CHECK-NEXT: {{  $}}306  ; CHECK-NEXT: bb.6.BB06:307  ; CHECK-NEXT:   successors: %bb.9(0x80000000)308  ; CHECK-NEXT: {{  $}}309  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp310  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0311  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp312  ; CHECK-NEXT:   B %bb.9313  ; CHECK-NEXT: {{  $}}314  ; CHECK-NEXT: bb.7.BB07:315  ; CHECK-NEXT:   successors: %bb.9(0x80000000)316  ; CHECK-NEXT: {{  $}}317  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp318  ; CHECK-NEXT:   BL @fun2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0319  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp320  ; CHECK-NEXT:   B %bb.9321  ; CHECK-NEXT: {{  $}}322  ; CHECK-NEXT: bb.8.exit:323  ; CHECK-NEXT:   RET_ReallyLR324  ; CHECK-NEXT: {{  $}}325  ; CHECK-NEXT: bb.9:326  ; CHECK-NEXT:   successors: %bb.8(0x80000000)327  ; CHECK-NEXT: {{  $}}328  ; CHECK-NEXT:   B %bb.8329  bb.0.BB00:330    successors: %bb.1(0x50000000), %bb.8(0x30000000)331    liveins: $w0, $x1, $x2332 333    dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv334    Bcc 11, %bb.8, implicit killed $nzcv335    B %bb.1336 337  bb.1.BB01:338    successors: %bb.2, %bb.3339    liveins: $w0, $x1, $x2340 341    dead $wzr = SUBSWri renamable $w0, 2, 0, implicit-def $nzcv342    STRWui renamable $w0, killed renamable $x1, 0 :: (store (s32) into %ir.P1)343    Bcc 11, %bb.3, implicit killed $nzcv344    B %bb.2345 346  bb.2.BB02:347    liveins: $w0, $x2348 349    STRWui killed renamable $w0, killed renamable $x2, 0 :: (store (s32) into %ir.P2)350 351  bb.3.BB03:352    successors: %bb.4(0x30000000), %bb.5(0x50000000)353 354    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp355    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0356    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp357    CBNZW killed renamable $w0, %bb.5358    B %bb.4359 360  bb.4.BB04:361    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp362    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0363    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp364 365  bb.5.BB05:366    successors: %bb.6(0x30000000), %bb.7(0x50000000)367 368    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp369    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0370    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp371    CBNZW killed renamable $w0, %bb.7372    B %bb.6373 374  bb.6.BB06:375    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp376    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0377    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp378    B %bb.8379 380  bb.7.BB07:381    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp382    BL @fun2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0383    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp384 385  bb.8.exit:386    RET_ReallyLR387 388...389---390name:            noshrink_test1391alignment:       4392tracksRegLiveness: true393tracksDebugUserValues: true394liveins:395  - { reg: '$w0' }396  - { reg: '$w1' }397  - { reg: '$w2' }398frameInfo:399  maxAlignment:    1400  adjustsStack:    true401  hasCalls:        true402  maxCallFrameSize: 0403machineFunctionInfo: {}404body:             |405  ; CHECK-LABEL: name: noshrink_test1406  ; CHECK: bb.0.entry:407  ; CHECK-NEXT:   successors: %bb.1(0x50000000), %bb.6(0x30000000)408  ; CHECK-NEXT:   liveins: $w0, $w1, $w2409  ; CHECK-NEXT: {{  $}}410  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv411  ; CHECK-NEXT:   Bcc 11, %bb.6, implicit killed $nzcv412  ; CHECK-NEXT:   B %bb.1413  ; CHECK-NEXT: {{  $}}414  ; CHECK-NEXT: bb.1.BB0:415  ; CHECK-NEXT:   successors: %bb.2(0x60000000), %bb.3(0x20000000)416  ; CHECK-NEXT:   liveins: $w0, $w1, $w2417  ; CHECK-NEXT: {{  $}}418  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w0, 10, 0, implicit-def $nzcv419  ; CHECK-NEXT:   Bcc 1, %bb.3, implicit killed $nzcv420  ; CHECK-NEXT:   B %bb.2421  ; CHECK-NEXT: {{  $}}422  ; CHECK-NEXT: bb.2.BB0:423  ; CHECK-NEXT:   successors: %bb.4(0x55555555), %bb.3(0x2aaaaaab)424  ; CHECK-NEXT:   liveins: $w1, $w2425  ; CHECK-NEXT: {{  $}}426  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w1, 10, 0, implicit-def $nzcv427  ; CHECK-NEXT:   Bcc 0, %bb.4, implicit killed $nzcv428  ; CHECK-NEXT:   B %bb.3429  ; CHECK-NEXT: {{  $}}430  ; CHECK-NEXT: bb.3.BB2:431  ; CHECK-NEXT:   successors: %bb.5(0x40000000), %bb.6(0x40000000)432  ; CHECK-NEXT:   liveins: $w2433  ; CHECK-NEXT: {{  $}}434  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w2, 10, 0, implicit-def $nzcv435  ; CHECK-NEXT:   Bcc 0, %bb.5, implicit killed $nzcv436  ; CHECK-NEXT:   B %bb.6437  ; CHECK-NEXT: {{  $}}438  ; CHECK-NEXT: bb.4.BB3:439  ; CHECK-NEXT:   successors: %bb.6(0x80000000)440  ; CHECK-NEXT: {{  $}}441  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp442  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0443  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp444  ; CHECK-NEXT:   B %bb.6445  ; CHECK-NEXT: {{  $}}446  ; CHECK-NEXT: bb.5.BB4:447  ; CHECK-NEXT:   successors: %bb.6(0x80000000)448  ; CHECK-NEXT: {{  $}}449  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp450  ; CHECK-NEXT:   BL @fun2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0451  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp452  ; CHECK-NEXT: {{  $}}453  ; CHECK-NEXT: bb.6.exit:454  ; CHECK-NEXT:   RET_ReallyLR455  bb.0.entry:456    successors: %bb.1(0x50000000), %bb.6(0x30000000)457    liveins: $w0, $w1, $w2458 459    dead $wzr = SUBSWri renamable $w0, 1, 0, implicit-def $nzcv460    Bcc 11, %bb.6, implicit killed $nzcv461    B %bb.1462 463  bb.1.BB0:464    successors: %bb.2(0x60000000), %bb.3(0x20000000)465    liveins: $w0, $w1, $w2466 467    dead $wzr = SUBSWri killed renamable $w0, 10, 0, implicit-def $nzcv468    Bcc 1, %bb.3, implicit killed $nzcv469    B %bb.2470 471  bb.2.BB0:472    successors: %bb.4(0x55555555), %bb.3(0x2aaaaaab)473    liveins: $w1, $w2474 475    dead $wzr = SUBSWri killed renamable $w1, 10, 0, implicit-def $nzcv476    Bcc 0, %bb.4, implicit killed $nzcv477    B %bb.3478 479  bb.3.BB2:480    liveins: $w2481 482    dead $wzr = SUBSWri killed renamable $w2, 10, 0, implicit-def $nzcv483    Bcc 0, %bb.5, implicit killed $nzcv484    B %bb.6485 486  bb.4.BB3:487    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp488    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0489    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp490    B %bb.6491 492  bb.5.BB4:493    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp494    BL @fun2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0495    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp496 497  bb.6.exit:498    RET_ReallyLR499 500...501---502name:            noshrink_test2503alignment:       4504tracksRegLiveness: true505tracksDebugUserValues: true506liveins:507  - { reg: '$w0' }508frameInfo:509  maxAlignment:    1510  adjustsStack:    true511  hasCalls:        true512  maxCallFrameSize: 0513machineFunctionInfo: {}514body:             |515  ; CHECK-LABEL: name: noshrink_test2516  ; CHECK: bb.0.BB00:517  ; CHECK-NEXT:   successors: %bb.2(0x50000000), %bb.1(0x30000000)518  ; CHECK-NEXT:   liveins: $w0519  ; CHECK-NEXT: {{  $}}520  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w0, 0, 0, implicit-def $nzcv521  ; CHECK-NEXT:   Bcc 12, %bb.2, implicit killed $nzcv522  ; CHECK-NEXT: {{  $}}523  ; CHECK-NEXT: bb.1:524  ; CHECK-NEXT:   successors: %bb.4(0x80000000)525  ; CHECK-NEXT: {{  $}}526  ; CHECK-NEXT:   B %bb.4527  ; CHECK-NEXT: {{  $}}528  ; CHECK-NEXT: bb.2.BB01:529  ; CHECK-NEXT:   successors: %bb.3(0x30000000), %bb.5(0x50000000)530  ; CHECK-NEXT: {{  $}}531  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp532  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0533  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp534  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.5535  ; CHECK-NEXT:   B %bb.3536  ; CHECK-NEXT: {{  $}}537  ; CHECK-NEXT: bb.3.BB02:538  ; CHECK-NEXT:   successors: %bb.5(0x80000000)539  ; CHECK-NEXT: {{  $}}540  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp541  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0542  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp543  ; CHECK-NEXT:   B %bb.5544  ; CHECK-NEXT: {{  $}}545  ; CHECK-NEXT: bb.4.InfLoop:546  ; CHECK-NEXT:   successors: %bb.4(0x80000000)547  ; CHECK-NEXT: {{  $}}548  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp549  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0550  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp551  ; CHECK-NEXT:   B %bb.4552  ; CHECK-NEXT: {{  $}}553  ; CHECK-NEXT: bb.5.exit:554  ; CHECK-NEXT:   RET_ReallyLR555  bb.0.BB00:556    successors: %bb.2(0x50000000), %bb.1(0x30000000)557    liveins: $w0558 559    dead $wzr = SUBSWri killed renamable $w0, 0, 0, implicit-def $nzcv560    Bcc 12, %bb.2, implicit killed $nzcv561 562  bb.1:563    B %bb.4564 565  bb.2.BB01:566    successors: %bb.3(0x30000000), %bb.5(0x50000000)567 568    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp569    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0570    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp571    CBNZW killed renamable $w0, %bb.5572    B %bb.3573 574  bb.3.BB02:575    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp576    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0577    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp578    B %bb.5579 580  bb.4.InfLoop:581    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp582    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0583    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp584    B %bb.4585 586  bb.5.exit:587    RET_ReallyLR588 589...590---591name:            noshrink_test3592alignment:       4593tracksRegLiveness: true594tracksDebugUserValues: true595liveins:596  - { reg: '$w0' }597frameInfo:598  maxAlignment:    1599  adjustsStack:    true600  hasCalls:        true601  maxCallFrameSize: 0602machineFunctionInfo: {}603body:             |604  ; CHECK-LABEL: name: noshrink_test3605  ; CHECK: bb.0.BB00:606  ; CHECK-NEXT:   successors: %bb.3(0x50000000), %bb.1(0x30000000)607  ; CHECK-NEXT:   liveins: $w0608  ; CHECK-NEXT: {{  $}}609  ; CHECK-NEXT:   renamable $w19 = COPY $w0610  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp611  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0612  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp613  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w19, 0, 0, implicit-def $nzcv614  ; CHECK-NEXT:   Bcc 12, %bb.3, implicit killed $nzcv615  ; CHECK-NEXT:   B %bb.1616  ; CHECK-NEXT: {{  $}}617  ; CHECK-NEXT: bb.1.BB01:618  ; CHECK-NEXT:   successors: %bb.2(0x00000800), %bb.6(0x7ffff800)619  ; CHECK-NEXT:   liveins: $w0620  ; CHECK-NEXT: {{  $}}621  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.6622  ; CHECK-NEXT:   B %bb.2623  ; CHECK-NEXT: {{  $}}624  ; CHECK-NEXT: bb.2.BB01.1:625  ; CHECK-NEXT:   successors: %bb.3(0x80000000)626  ; CHECK-NEXT: {{  $}}627  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp628  ; CHECK-NEXT:   BL @abort, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp629  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp630  ; CHECK-NEXT: {{  $}}631  ; CHECK-NEXT: bb.3.BB02:632  ; CHECK-NEXT:   successors: %bb.4(0x30000000), %bb.5(0x50000000)633  ; CHECK-NEXT:   liveins: $w0634  ; CHECK-NEXT: {{  $}}635  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.5636  ; CHECK-NEXT:   B %bb.4637  ; CHECK-NEXT: {{  $}}638  ; CHECK-NEXT: bb.4.BB03:639  ; CHECK-NEXT:   successors: %bb.5(0x30000000), %bb.6(0x50000000)640  ; CHECK-NEXT: {{  $}}641  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp642  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0643  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp644  ; CHECK-NEXT:   CBNZW killed renamable $w0, %bb.6645  ; CHECK-NEXT:   B %bb.5646  ; CHECK-NEXT: {{  $}}647  ; CHECK-NEXT: bb.5.BB04:648  ; CHECK-NEXT:   successors: %bb.6(0x80000000)649  ; CHECK-NEXT: {{  $}}650  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp651  ; CHECK-NEXT:   BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0652  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp653  ; CHECK-NEXT: {{  $}}654  ; CHECK-NEXT: bb.6.exit:655  ; CHECK-NEXT:   RET_ReallyLR656  bb.0.BB00:657    successors: %bb.3(0x50000000), %bb.1(0x30000000)658    liveins: $w0659 660    renamable $w19 = COPY $w0661    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp662    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0663    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp664    dead $wzr = SUBSWri killed renamable $w19, 0, 0, implicit-def $nzcv665    Bcc 12, %bb.3, implicit killed $nzcv666    B %bb.1667 668  bb.1.BB01:669    successors: %bb.2(0x00000800), %bb.6(0x7ffff800)670    liveins: $w0671 672    CBNZW killed renamable $w0, %bb.6673    B %bb.2674 675  bb.2.BB01.1:676 677    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp678    BL @abort, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp679    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp680 681  bb.3.BB02:682    successors: %bb.4(0x30000000), %bb.5(0x50000000)683    liveins: $w0684 685    CBNZW killed renamable $w0, %bb.5686    B %bb.4687 688  bb.4.BB03:689    successors: %bb.5(0x30000000), %bb.6(0x50000000)690 691    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp692    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0693    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp694    CBNZW killed renamable $w0, %bb.6695    B %bb.5696 697  bb.5.BB04:698    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp699    BL @fun, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0700    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp701 702  bb.6.exit:703    RET_ReallyLR704 705...706---707name:            noshrink_bb_as_inlineasmbr_target708registers:       []709liveins:710  - { reg: '$w0', virtual-reg: '' }711frameInfo:712  savePoint:       []713  restorePoint:    []714body:             |715  ; CHECK-LABEL: name: noshrink_bb_as_inlineasmbr_target716  ; CHECK: bb.0.entry:717  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)718  ; CHECK-NEXT:   liveins: $w0719  ; CHECK-NEXT: {{  $}}720  ; CHECK-NEXT:   TBZW killed renamable $w0, 0, %bb.3721  ; CHECK-NEXT:   B %bb.1722  ; CHECK-NEXT: {{  $}}723  ; CHECK-NEXT: bb.1 (%ir-block.0):724  ; CHECK-NEXT:   successors: %bb.2(0x80000000), %bb.3(0x00000000)725  ; CHECK-NEXT: {{  $}}726  ; CHECK-NEXT:   INLINEASM_BR &"", 1 /* sideeffect attdialect */, 13 /* imm */, %bb.3727  ; CHECK-NEXT:   B %bb.2728  ; CHECK-NEXT: {{  $}}729  ; CHECK-NEXT: bb.2 (%ir-block.1):730  ; CHECK-NEXT:   successors: %bb.3(0x80000000)731  ; CHECK-NEXT: {{  $}}732  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp733  ; CHECK-NEXT:   BL @dosomething, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp734  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp735  ; CHECK-NEXT: {{  $}}736  ; CHECK-NEXT: bb.3.exit (machine-block-address-taken, inlineasm-br-indirect-target):737  ; CHECK-NEXT:   RET_ReallyLR738  bb.0.entry:739    successors: %bb.1(0x40000000), %bb.3(0x40000000)740    liveins: $w0741 742    TBZW killed renamable $w0, 0, %bb.3743    B %bb.1744 745  bb.1 (%ir-block.0):746    successors: %bb.2(0x80000000), %bb.3(0x00000000)747 748    INLINEASM_BR &"", 1 /* sideeffect attdialect */, 13 /* imm */, %bb.3749    B %bb.2750 751  bb.2 (%ir-block.1):752    successors: %bb.3(0x80000000)753 754    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp755    BL @dosomething, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp756    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp757 758  bb.3.exit (machine-block-address-taken, inlineasm-br-indirect-target):759    RET_ReallyLR760 761...762