xref: /llvm-project/llvm/test/CodeGen/AArch64/machine-outliner-create-lr-livein.mir (revision 22a64d4a143d0d549cc762e1a19260078d1836c2)
1# RUN: llc -mtriple=aarch64-apple-darwin -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s
2# In bb.4,  we save + restore LR using a register. We need LR to be live-in to
3# the block to prevent MachineVerifier errors.
4
5name:            lr_not_live_in
6tracksRegLiveness: true
7fixedStack:
8machineFunctionInfo:
9  hasRedZone:      false
10body:             |
11  bb.0:
12    $x9 = ORRXri $xzr, 1
13  bb.1:
14    liveins: $w9
15    $w9 = ORRWri $wzr, 1
16    $w9 = ORRWri $wzr, 1
17    $w9 = ORRWri $wzr, 1
18    $w9 = ORRWri $wzr, 1
19    $w9 = ORRWri $wzr, 1
20    $w9 = ORRWri $wzr, 2
21  bb.2:
22    liveins: $w9
23    $w9 = ORRWri $wzr, 1
24    $w9 = ORRWri $wzr, 1
25    $w9 = ORRWri $wzr, 1
26    $w9 = ORRWri $wzr, 1
27    $w9 = ORRWri $wzr, 1
28    $w9 = ORRWri $wzr, 2
29  bb.3:
30    liveins: $w9
31    $w9 = ORRWri $wzr, 1
32    $w9 = ORRWri $wzr, 1
33    $w9 = ORRWri $wzr, 1
34    $w9 = ORRWri $wzr, 1
35    $w9 = ORRWri $wzr, 1
36    $w9 = ORRWri $wzr, 2
37  bb.4:
38    liveins: $w9
39    ; CHECK-LABEL: bb.4
40    ; CHECK: liveins: $w9, $lr
41    ; CHECK: BL
42    $w9 = ORRWri $wzr, 1
43    $w9 = ORRWri $wzr, 1
44    $w9 = ORRWri $wzr, 1
45    $w9 = ORRWri $wzr, 1
46    $w9 = ORRWri $wzr, 1
47    $w9 = ORRWri $wzr, 2
48  bb.5:
49    liveins: $w9, $lr
50    RET undef $lr
51