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.
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 }
16 tracksRegLiveness: true
20 ; CHECK-LABEL: name: foo
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
31 frame-setup CFI_INSTRUCTION def_cfa $w29, 16
41 tracksRegLiveness: true
45 ; CHECK-LABEL: name: bar
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
56 frame-setup CFI_INSTRUCTION def_cfa $w29, 16
66 tracksRegLiveness: true
70 ; CHECK-LABEL: name: baz
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
81 frame-setup CFI_INSTRUCTION def_cfa $w29, 16