1 # The content of this test is modfied upon the output obtained from running
2 # `bin/llc -O2 -stop-before=machine-outliner <path_to_llvm_project>/llvm/test/CodeGen/AArch64/machine-outliner-sort-per-priority.ll -o -`
3 # RUN: llc -mtriple=aarch64 -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s
8 define void @f1() #0 { ret void }
9 define void @f2() #0 { ret void }
10 define void @f3() #0 { ret void }
11 define void @f4() #0 { ret void }
12 define void @f5() #0 { ret void }
13 define void @f6() #0 { ret void }
15 attributes #0 = { minsize }
18 # CHECK-LABEL: name: f1
20 # CHECK-NEXT: liveins: $lr
22 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
23 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
24 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
25 # CHECK-NEXT: $w5 = MOVZWi 11, 0
26 # CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0
28 tracksRegLiveness: true
30 isCalleeSavedInfoValid: true
43 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
47 # CHECK-LABEL: name: f2
49 # CHECK-NEXT: liveins: $lr
51 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
52 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
53 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
54 # CHECK-NEXT: $w5 = MOVZWi 12, 0
55 # CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0
57 tracksRegLiveness: true
59 isCalleeSavedInfoValid: true
72 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
76 # CHECK-LABEL: name: f3
78 # CHECK-NEXT: liveins: $lr
80 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
81 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
82 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
83 # CHECK-NEXT: $w5 = MOVZWi 13, 0
84 # CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0
86 tracksRegLiveness: true
88 isCalleeSavedInfoValid: true
101 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
105 # CHECK-LABEL: name: f4
107 # CHECK-NEXT: liveins: $lr
109 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
110 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
111 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
112 # CHECK-NEXT: $w5 = MOVZWi 14, 0
113 # CHECK-NEXT: TCRETURNdi @OUTLINED_FUNCTION_0
115 tracksRegLiveness: true
117 isCalleeSavedInfoValid: true
130 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
134 # CHECK-LABEL: name: f5
136 # CHECK-NEXT: liveins: $lr
138 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
139 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
140 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
141 # CHECK-NOT: @OUTLINED_FUNCTION_0
143 tracksRegLiveness: true
145 isCalleeSavedInfoValid: true
158 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
162 # CHECK-LABEL: name: f6
164 # CHECK-NEXT: liveins: $lr
166 # CHECK-NEXT: $x5 = ORRXrs $xzr, $lr, 0
167 # CHECK-NEXT: BL @OUTLINED_FUNCTION_1
168 # CHECK-NEXT: $lr = ORRXrs $xzr, $x5, 0
169 # CHECK-NOT: @OUTLINED_FUNCTION_0
171 tracksRegLiveness: true
173 isCalleeSavedInfoValid: true
186 TCRETURNdi @foo, 0, csr_darwin_aarch64_aapcs, implicit $sp, implicit killed $w0, implicit killed $w1, implicit killed $w2, implicit killed $w3, implicit killed $w4, implicit killed $w5, implicit killed $w6, implicit killed $w7
190 # CHECK-LABEL: name: OUTLINED_FUNCTION_0
192 # CHECK-NEXT: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $lr, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15, $w0, $w1, $w2, $w3, $w4, $w5
194 # CHECK-NEXT: $w6 = MOVZWi 6, 0
195 # CHECK-NEXT: $w7 = MOVZWi 7, 0
197 # CHECK-LABEL: name: OUTLINED_FUNCTION_1
199 # CHECK-NEXT: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $lr, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15
201 # CHECK-NEXT: $w0 = MOVZWi 1, 0
202 # CHECK-NEXT: $w1 = MOVZWi 2, 0
203 # CHECK-NEXT: $w2 = MOVZWi 3, 0
204 # CHECK-NEXT: $w3 = MOVZWi 4, 0
205 # CHECK-NEXT: $w4 = MOVZWi 5, 0
206 # CHECK-NEXT: RET $lr