[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-cfi-tail-some.mir
blob3afa1d5559a585862ba2a00347c49767ccce7b34
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 -outliner-leaf-descendants=false %s -o - | FileCheck %s
4 # Outlining CFI instructions is unsafe if we cannot outline all of the CFI
5 # instructions from a function.  This shows that we choose not to outline the
6 # CFI instructions since function foo has a CFI Instruction that would not
7 # be caught.
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 }
14 ...
15 ---
16 name:            foo
17 tracksRegLiveness: true
18 body:             |
19   bb.0:
20   liveins: $lr
21     ; CHECK-LABEL: name: foo
22     ; CHECK: liveins: $lr
23     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w28, 16
24     ; CHECK: $w9 = ORRWri $wzr, 1
25     ; CHECK: $w10 = ORRWri $wzr, 2
26     ; CHECK: $w11 = ORRWri $wzr, 3
27     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
28     ; CHECK: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
29     frame-setup CFI_INSTRUCTION def_cfa $w28, 16
30     $w9 = ORRWri $wzr, 1
31     $w10 = ORRWri $wzr, 2
32     $w11 = ORRWri $wzr, 3
33     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
34     $w12 = ORRWri $wzr, 1
35     $w13 = ORRWri $wzr, 2
36     $w14 = ORRWri $wzr, 3
37     $w15 = ORRWri $wzr, 4
38     RET undef $lr
39 ...
40 ---
41 name:            bar
42 tracksRegLiveness: true
43 body:             |
44   bb.0:
45   liveins: $lr
46     ; CHECK-LABEL: name: bar
47     ; CHECK: liveins: $lr
48     ; CHECK: $w9 = ORRWri $wzr, 1
49     ; CHECK: $w10 = ORRWri $wzr, 2
50     ; CHECK: $w11 = ORRWri $wzr, 3
51     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
52     ; CHECK: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
53     $w9 = ORRWri $wzr, 1
54     $w10 = ORRWri $wzr, 2
55     $w11 = ORRWri $wzr, 3
56     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
57     $w12 = ORRWri $wzr, 1
58     $w13 = ORRWri $wzr, 2
59     $w14 = ORRWri $wzr, 3
60     $w15 = ORRWri $wzr, 4
61     RET undef $lr
62 ...
63 ---
64 name:            baz
65 tracksRegLiveness: true
66 body:             |
67   bb.0:
68   liveins: $lr
69     ; CHECK-LABEL: name: baz
70     ; CHECK: liveins: $lr
71     ; CHECK: $w9 = ORRWri $wzr, 1
72     ; CHECK: $w10 = ORRWri $wzr, 2
73     ; CHECK: $w11 = ORRWri $wzr, 3
74     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
75     ; CHECK: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
76     $w9 = ORRWri $wzr, 1
77     $w10 = ORRWri $wzr, 2
78     $w11 = ORRWri $wzr, 3
79     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
80     $w12 = ORRWri $wzr, 1
81     $w13 = ORRWri $wzr, 2
82     $w14 = ORRWri $wzr, 3
83     $w15 = ORRWri $wzr, 4
84     RET undef $lr