| # RUN: llc -mtriple=aarch64-apple-darwin -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s |
| # In bb.4, we save + restore LR using a register. We need LR to be live-in to |
| # the block to prevent MachineVerifier errors. |
| |
| name: lr_not_live_in |
| tracksRegLiveness: true |
| fixedStack: |
| machineFunctionInfo: |
| hasRedZone: false |
| body: | |
| bb.0: |
| $x9 = ORRXri $xzr, 1 |
| bb.1: |
| liveins: $w9 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 2 |
| bb.2: |
| liveins: $w9 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 2 |
| bb.3: |
| liveins: $w9 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 2 |
| bb.4: |
| liveins: $w9 |
| ; CHECK-LABEL: bb.4 |
| ; CHECK: liveins: $w9, $lr |
| ; CHECK: BL |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 1 |
| $w9 = ORRWri $wzr, 2 |
| bb.5: |
| liveins: $w9, $lr |
| RET undef $lr |