50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
# 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
|