[C++20][Modules][Serialization] Add an additional test case for #120277. (#126349)
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-sort-per-priority.mir
blob444590657a200a3b472ebcf33e009d54d33afc3b
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
5 --- |
6   declare i32 @foo()
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 }
16 ...
17 ---
18 # CHECK-LABEL: name:            f1
19 # CHECK-LABEL: bb.0:
20 # CHECK-NEXT: liveins: $lr
21 # CHECK-NEXT: {{ $}}
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
27 name:            f1
28 tracksRegLiveness: true
29 frameInfo:
30   isCalleeSavedInfoValid: true
31 machineFunctionInfo:
32   hasRedZone:      false
33 body:             |
34   bb.0:
35     $w0 = MOVZWi 1, 0
36     $w1 = MOVZWi 2, 0
37     $w2 = MOVZWi 3, 0
38     $w3 = MOVZWi 4, 0
39     $w4 = MOVZWi 5, 0
40     $w5 = MOVZWi 11, 0
41     $w6 = MOVZWi 6, 0
42     $w7 = MOVZWi 7, 0
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
45 ...
46 ---
47 # CHECK-LABEL: name:            f2
48 # CHECK-LABEL: bb.0:
49 # CHECK-NEXT: liveins: $lr
50 # CHECK-NEXT: {{ $}}
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
56 name:            f2
57 tracksRegLiveness: true
58 frameInfo:
59   isCalleeSavedInfoValid: true
60 machineFunctionInfo:
61   hasRedZone:      false
62 body:             |
63   bb.0:
64     $w0 = MOVZWi 1, 0
65     $w1 = MOVZWi 2, 0
66     $w2 = MOVZWi 3, 0
67     $w3 = MOVZWi 4, 0
68     $w4 = MOVZWi 5, 0
69     $w5 = MOVZWi 12, 0
70     $w6 = MOVZWi 6, 0
71     $w7 = MOVZWi 7, 0
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
74 ...
75 ---
76 # CHECK-LABEL: name:            f3
77 # CHECK-LABEL: bb.0:
78 # CHECK-NEXT: liveins: $lr
79 # CHECK-NEXT: {{ $}}
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
85 name:            f3
86 tracksRegLiveness: true
87 frameInfo:
88   isCalleeSavedInfoValid: true
89 machineFunctionInfo:
90   hasRedZone:      false
91 body:             |
92   bb.0:
93     $w0 = MOVZWi 1, 0
94     $w1 = MOVZWi 2, 0
95     $w2 = MOVZWi 3, 0
96     $w3 = MOVZWi 4, 0
97     $w4 = MOVZWi 5, 0
98     $w5 = MOVZWi 13, 0
99     $w6 = MOVZWi 6, 0
100     $w7 = MOVZWi 7, 0
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
106 # CHECK-LABEL: bb.0:
107 # CHECK-NEXT: liveins: $lr
108 # CHECK-NEXT: {{ $}}
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
114 name:            f4
115 tracksRegLiveness: true
116 frameInfo:
117   isCalleeSavedInfoValid: true
118 machineFunctionInfo:
119   hasRedZone:      false
120 body:             |
121   bb.0:
122     $w0 = MOVZWi 1, 0
123     $w1 = MOVZWi 2, 0
124     $w2 = MOVZWi 3, 0
125     $w3 = MOVZWi 4, 0
126     $w4 = MOVZWi 5, 0
127     $w5 = MOVZWi 14, 0
128     $w6 = MOVZWi 6, 0
129     $w7 = MOVZWi 7, 0
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
135 # CHECK-LABEL: bb.0:
136 # CHECK-NEXT: liveins: $lr
137 # CHECK-NEXT: {{ $}}
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
142 name:            f5
143 tracksRegLiveness: true
144 frameInfo:
145   isCalleeSavedInfoValid: true
146 machineFunctionInfo:
147   hasRedZone:      false
148 body:             |
149   bb.0:
150     $w0 = MOVZWi 1, 0
151     $w1 = MOVZWi 2, 0
152     $w2 = MOVZWi 3, 0
153     $w3 = MOVZWi 4, 0
154     $w4 = MOVZWi 5, 0
155     $w5 = MOVZWi 15, 0
156     $w6 = MOVZWi 8, 0
157     $w7 = MOVZWi 9, 0
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
163 # CHECK-LABEL: bb.0:
164 # CHECK-NEXT: liveins: $lr
165 # CHECK-NEXT: {{ $}}
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
170 name:            f6
171 tracksRegLiveness: true
172 frameInfo:
173   isCalleeSavedInfoValid: true
174 machineFunctionInfo:
175   hasRedZone:      false
176 body:             |
177   bb.0:
178     $w0 = MOVZWi 1, 0
179     $w1 = MOVZWi 2, 0
180     $w2 = MOVZWi 3, 0
181     $w3 = MOVZWi 4, 0
182     $w4 = MOVZWi 5, 0
183     $w5 = MOVZWi 16, 0
184     $w6 = MOVZWi 9, 0
185     $w7 = MOVZWi 8, 0
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
191 # CHECK-LABEL: bb.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
193 # CHECK-NEXT: {{ $}}
194 # CHECK-NEXT: $w6 = MOVZWi 6, 0
195 # CHECK-NEXT: $w7 = MOVZWi 7, 0
197 # CHECK-LABEL: name:            OUTLINED_FUNCTION_1
198 # CHECK-LABEL: bb.0:
199 # CHECK-NEXT: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $lr, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15
200 # CHECK-NEXT: {{ $}}
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