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