Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-cfi.mir
bloba44a90e1031cc547a13e9f481edc74115e3604fb
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-apple-unknown -run-pass=machine-outliner -verify-machineinstrs -enable-machine-outliner=always %s -o - | FileCheck %s
4 # Outlining CFI instructions is unsafe if it is not tail called, but otherwise,
5 # it requires fixups. Show that we don't include CFI instructions in non
6 # tail call outlined sequences right now. Show that we count CFI instructions
7 # correctly in the presence of debug info.
9 --- |
10   define void @foo() #0 { ret void }
11   define void @bar() #0 { ret void }
12   define void @baz() #0 { ret void }
13   attributes #0 = { noredzone }
15 ...
16 ---
17 name:            foo
18 tracksRegLiveness: true
19 body:             |
20   bb.0:
21   liveins: $lr
22     ; CHECK-LABEL: name: foo
23     ; CHECK: liveins: $lr
24     ; CHECK-NEXT: {{  $}}
25     ; CHECK-NEXT: $w9 = ORRWri $wzr, 1
26     ; CHECK-NEXT: $w10 = ORRWri $wzr, 2
27     ; CHECK-NEXT: $w11 = ORRWri $wzr, 3
28     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
29     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
30     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
31     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
32     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
33     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
34     ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
35     ; CHECK-NEXT: $w20 = ORRWri $wzr, 1
36     ; CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
37     $w9 = ORRWri $wzr, 1
38     $w10 = ORRWri $wzr, 2
39     $w11 = ORRWri $wzr, 3
40     DBG_VALUE $w9, $noreg
41     DBG_VALUE $w9, $noreg
42     DBG_VALUE $w9, $noreg
43     DBG_VALUE $w9, $noreg
44     DBG_VALUE $w9, $noreg
45     DBG_VALUE $w9, $noreg
46     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
47     $w20 = ORRWri $wzr, 1
48     $w12 = ORRWri $wzr, 1
49     $w13 = ORRWri $wzr, 2
50     $w14 = ORRWri $wzr, 3
51     $w15 = ORRWri $wzr, 4
52     RET undef $lr
53 ...
54 ---
55 name:            bar
56 tracksRegLiveness: true
57 body:             |
58   bb.0:
59   liveins: $lr
60     ; CHECK-LABEL: name: bar
61     ; CHECK: liveins: $lr
62     ; CHECK-NEXT: {{  $}}
63     ; CHECK-NEXT: $w9 = ORRWri $wzr, 1
64     ; CHECK-NEXT: $w10 = ORRWri $wzr, 2
65     ; CHECK-NEXT: $w11 = ORRWri $wzr, 3
66     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
67     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
68     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
69     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
70     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
71     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
72     ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
73     ; CHECK-NEXT: $w21 = ORRWri $wzr, 1
74     ; CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
75     $w9 = ORRWri $wzr, 1
76     $w10 = ORRWri $wzr, 2
77     $w11 = ORRWri $wzr, 3
78     DBG_VALUE $w9, $noreg
79     DBG_VALUE $w9, $noreg
80     DBG_VALUE $w9, $noreg
81     DBG_VALUE $w9, $noreg
82     DBG_VALUE $w9, $noreg
83     DBG_VALUE $w9, $noreg
84     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
85     $w21 = ORRWri $wzr, 1
86     $w12 = ORRWri $wzr, 1
87     $w13 = ORRWri $wzr, 2
88     $w14 = ORRWri $wzr, 3
89     $w15 = ORRWri $wzr, 4
90     RET undef $lr
91 ...
92 ---
93 name:            baz
94 tracksRegLiveness: true
95 body:             |
96   bb.0:
97   liveins: $lr
98     ; CHECK-LABEL: name: baz
99     ; CHECK: liveins: $lr
100     ; CHECK-NEXT: {{  $}}
101     ; CHECK-NEXT: $w9 = ORRWri $wzr, 1
102     ; CHECK-NEXT: $w10 = ORRWri $wzr, 2
103     ; CHECK-NEXT: $w11 = ORRWri $wzr, 3
104     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
105     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
106     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
107     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
108     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
109     ; CHECK-NEXT: DBG_VALUE $w9, $noreg
110     ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
111     ; CHECK-NEXT: $w22 = ORRWri $wzr, 1
112     ; CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
113     $w9 = ORRWri $wzr, 1
114     $w10 = ORRWri $wzr, 2
115     $w11 = ORRWri $wzr, 3
116     DBG_VALUE $w9, $noreg
117     DBG_VALUE $w9, $noreg
118     DBG_VALUE $w9, $noreg
119     DBG_VALUE $w9, $noreg
120     DBG_VALUE $w9, $noreg
121     DBG_VALUE $w9, $noreg
122     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
123     $w22 = ORRWri $wzr, 1
124     $w12 = ORRWri $wzr, 1
125     $w13 = ORRWri $wzr, 2
126     $w14 = ORRWri $wzr, 3
127     $w15 = ORRWri $wzr, 4
128     RET undef $lr