[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-cfi.mir
blob5d98646f2c747c63ad935310ac85c055327c48a2
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 %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.
8 --- |
9   define void @foo() #0 { ret void }
10   define void @bar() #0 { ret void }
11   define void @baz() #0 { ret void }
12   attributes #0 = { noredzone }
13 ...
14 ---
15 name:            foo
16 tracksRegLiveness: true
17 body:             |
18   bb.0:
19   liveins: $lr
20     ; CHECK-LABEL: name: foo
21     ; CHECK: liveins: $lr
22     ; CHECK: $w9 = ORRWri $wzr, 1
23     ; CHECK: $w10 = ORRWri $wzr, 2
24     ; CHECK: $w11 = ORRWri $wzr, 3
25     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
26     ; CHECK: $w20 = ORRWri $wzr, 1
27     ; CHECK: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
28     $w9 = ORRWri $wzr, 1
29     $w10 = ORRWri $wzr, 2
30     $w11 = ORRWri $wzr, 3
31     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
32     $w20 = ORRWri $wzr, 1
33     $w12 = ORRWri $wzr, 1
34     $w13 = ORRWri $wzr, 2
35     $w14 = ORRWri $wzr, 3
36     $w15 = ORRWri $wzr, 4
37     RET undef $lr
38 ...
39 ---
40 name:            bar
41 tracksRegLiveness: true
42 body:             |
43   bb.0:
44   liveins: $lr
45     ; CHECK-LABEL: name: bar
46     ; CHECK: liveins: $lr
47     ; CHECK: $w9 = ORRWri $wzr, 1
48     ; CHECK: $w10 = ORRWri $wzr, 2
49     ; CHECK: $w11 = ORRWri $wzr, 3
50     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
51     ; CHECK: $w21 = ORRWri $wzr, 1
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     $w21 = ORRWri $wzr, 1
58     $w12 = ORRWri $wzr, 1
59     $w13 = ORRWri $wzr, 2
60     $w14 = ORRWri $wzr, 3
61     $w15 = ORRWri $wzr, 4
62     RET undef $lr
63 ...
64 ---
65 name:            baz
66 tracksRegLiveness: true
67 body:             |
68   bb.0:
69   liveins: $lr
70     ; CHECK-LABEL: name: baz
71     ; CHECK: liveins: $lr
72     ; CHECK: $w9 = ORRWri $wzr, 1
73     ; CHECK: $w10 = ORRWri $wzr, 2
74     ; CHECK: $w11 = ORRWri $wzr, 3
75     ; CHECK: frame-setup CFI_INSTRUCTION def_cfa $w29, 16
76     ; CHECK: $w22 = ORRWri $wzr, 1
77     ; CHECK: TCRETURNdi @OUTLINED_FUNCTION_0, 0, implicit $sp, implicit-def $w12, implicit-def $w13, implicit-def $w14, implicit-def $w15, implicit $wzr, implicit $sp
78     $w9 = ORRWri $wzr, 1
79     $w10 = ORRWri $wzr, 2
80     $w11 = ORRWri $wzr, 3
81     frame-setup CFI_INSTRUCTION def_cfa $w29, 16
82     $w22 = ORRWri $wzr, 1
83     $w12 = ORRWri $wzr, 1
84     $w13 = ORRWri $wzr, 2
85     $w14 = ORRWri $wzr, 3
86     $w15 = ORRWri $wzr, 4
87     RET undef $lr