[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AArch64 / misched-detail-resource-booking-02.mir
blob2cc63018813817d36cb62fa979c9495ef447d976
1 # RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a55  \
2 # RUN:  -run-pass=machine-scheduler -debug-only=machine-scheduler -o - %s \
3 # RUN:  -misched-bottomup=true -sched-print-cycles=true \
4 # RUN:  -misched-dump-reserved-cycles=true -misched-detail-resource-booking=true\
5 # RUN:  -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-width=4 \
6 # RUN:  2>&1 | FileCheck %s
8 # REQUIRES: asserts, aarch64-registered-target
9 ---
10 name: f
11 tracksRegLiveness: true
12 body:             |
13   bb.0:
14     liveins: $x0, $x1, $x2
15     $x3 = ADDXrr $x0, $x0
16     $x4 = ADDXrr $x1, $x1
17     $x5 = ADDXrr $x2, $x2
18     
19 # CHECK-LABEL: Before MISched:
20 # CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs
21 # CHECK-EMPTY: 
22 # CHECK-NEXT: bb.0:
23 # CHECK-NEXT:   liveins: $x0, $x1, $x2
24 # CHECK-NEXT:   $x3 = ADDXrr $x0, $x0
25 # CHECK-NEXT:   $x4 = ADDXrr $x1, $x1
26 # CHECK-NEXT:   $x5 = ADDXrr $x2, $x2
27 # CHECK-EMPTY: 
28 # CHECK-NEXT: # End machine code for function f.
29 # CHECK-EMPTY: 
30 # CHECK-NEXT: ********** MI Scheduling **********
31 # CHECK-NEXT: f:%bb.0 
32 # CHECK-NEXT:   From: $x3 = ADDXrr $x0, $x0
33 # CHECK-NEXT:     To: End
34 # CHECK-NEXT:  RegionInstrs: 3
35 # CHECK-NEXT: ScheduleDAGMILive::schedule starting
36 # CHECK-NEXT: GenericScheduler RegionPolicy:  ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=1
37 # CHECK-NEXT: Disabled scoreboard hazard recognizer
38 # CHECK-NEXT: Disabled scoreboard hazard recognizer
39 # CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x3 = ADDXrr $x0, $x0
40 # CHECK-NEXT:   # preds left       : 0
41 # CHECK-NEXT:   # succs left       : 0
42 # CHECK-NEXT:   # rdefs left       : 0
43 # CHECK-NEXT:   Latency            : 3
44 # CHECK-NEXT:   Depth              : 0
45 # CHECK-NEXT:   Height             : 0
46 # CHECK-NEXT:   Single Issue       : false;
47 # CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x4 = ADDXrr $x1, $x1
48 # CHECK-NEXT:   # preds left       : 0
49 # CHECK-NEXT:   # succs left       : 0
50 # CHECK-NEXT:   # rdefs left       : 0
51 # CHECK-NEXT:   Latency            : 3
52 # CHECK-NEXT:   Depth              : 0
53 # CHECK-NEXT:   Height             : 0
54 # CHECK-NEXT:   Single Issue       : false;
55 # CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x5 = ADDXrr $x2, $x2
56 # CHECK-NEXT:   # preds left       : 0
57 # CHECK-NEXT:   # succs left       : 0
58 # CHECK-NEXT:   # rdefs left       : 0
59 # CHECK-NEXT:   Latency            : 3
60 # CHECK-NEXT:   Depth              : 0
61 # CHECK-NEXT:   Height             : 0
62 # CHECK-NEXT:   Single Issue       : false;
63 # CHECK-NEXT:   Resource booking (@0c): 
64 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
65 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
66 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
67 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
68 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
69 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
70 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
71 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
72 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
73 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
74 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
75 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
76 # CHECK-NEXT:   getNextResourceCycle (@0c): 
77 # CHECK-NEXT:     Instance 0 available @0c
78 # CHECK-NEXT:     Instance 1 available @0c
79 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
80 # CHECK-NEXT:   Resource booking (@0c): 
81 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
82 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
83 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
84 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
85 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
86 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
87 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
88 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
89 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
90 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
91 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
92 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
93 # CHECK-NEXT:   getNextResourceCycle (@0c): 
94 # CHECK-NEXT:     Instance 0 available @0c
95 # CHECK-NEXT:     Instance 1 available @0c
96 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
97 # CHECK-NEXT:   Resource booking (@0c): 
98 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
99 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
100 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
101 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
102 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
103 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
104 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
105 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
106 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
107 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
108 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
109 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
110 # CHECK-NEXT:   getNextResourceCycle (@0c): 
111 # CHECK-NEXT:     Instance 0 available @0c
112 # CHECK-NEXT:     Instance 1 available @0c
113 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
114 # CHECK-NEXT:   Resource booking (@0c): 
115 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
116 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
117 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
118 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
119 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
120 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
121 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
122 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
123 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
124 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
125 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
126 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
127 # CHECK-NEXT:   getNextResourceCycle (@0c): 
128 # CHECK-NEXT:     Instance 0 available @0c
129 # CHECK-NEXT:     Instance 1 available @0c
130 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
131 # CHECK-NEXT:   Resource booking (@0c): 
132 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
133 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
134 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
135 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
136 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
137 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
138 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
139 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
140 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
141 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
142 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
143 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
144 # CHECK-NEXT:   getNextResourceCycle (@0c): 
145 # CHECK-NEXT:     Instance 0 available @0c
146 # CHECK-NEXT:     Instance 1 available @0c
147 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
148 # CHECK-NEXT:   Resource booking (@0c): 
149 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
150 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
151 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
152 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
153 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
154 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
155 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
156 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
157 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
158 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
159 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
160 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
161 # CHECK-NEXT:   getNextResourceCycle (@0c): 
162 # CHECK-NEXT:     Instance 0 available @0c
163 # CHECK-NEXT:     Instance 1 available @0c
164 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
165 # CHECK-NEXT: Critical Path(GS-RR ): 0
166 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
167 # CHECK-NEXT:   Resource booking (@0c): 
168 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
169 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
170 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
171 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
172 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
173 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
174 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
175 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
176 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
177 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
178 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
179 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
180 # CHECK-NEXT:   getNextResourceCycle (@0c): 
181 # CHECK-NEXT:     Instance 0 available @0c
182 # CHECK-NEXT:     Instance 1 available @0c
183 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
184 # CHECK-NEXT:   Resource booking (@0c): 
185 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
186 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
187 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
188 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
189 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
190 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
191 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
192 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
193 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
194 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
195 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
196 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
197 # CHECK-NEXT:   getNextResourceCycle (@0c): 
198 # CHECK-NEXT:     Instance 0 available @0c
199 # CHECK-NEXT:     Instance 1 available @0c
200 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
201 # CHECK-NEXT:   Resource booking (@0c): 
202 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
203 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
204 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
205 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
206 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
207 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
208 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
209 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
210 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
211 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
212 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
213 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
214 # CHECK-NEXT:   getNextResourceCycle (@0c): 
215 # CHECK-NEXT:     Instance 0 available @0c
216 # CHECK-NEXT:     Instance 1 available @0c
217 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
218 # CHECK-NEXT: Queue BotQ.P: 
219 # CHECK-NEXT: Queue BotQ.A: 2 1 0 
220 # CHECK-NEXT:   Cand SU(2) ORDER                              
221 # CHECK-NEXT: Pick Bot ORDER     
222 # CHECK-NEXT: Scheduling SU(2) $x5 = ADDXrr $x2, $x2
223 # CHECK-NEXT:   Ready @0c
224 # CHECK-NEXT:   CortexA55UnitALU +1x1u
225 # CHECK-NEXT:   Resource booking (@0c): 
226 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
227 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
228 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
229 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
230 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
231 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
232 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
233 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
234 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
235 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
236 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
237 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
238 # CHECK-NEXT:   getNextResourceCycle (@0c): 
239 # CHECK-NEXT:     Instance 0 available @0c
240 # CHECK-NEXT:     Instance 1 available @0c
241 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
242 # CHECK-NEXT:   Resource booking (@0c): 
243 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
244 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
245 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
246 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
247 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
248 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
249 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
250 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
251 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
252 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
253 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
254 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
255 # CHECK-NEXT:   getNextResourceCycle (@0c): 
256 # CHECK-NEXT:     Instance 0 available @0c
257 # CHECK-NEXT:     Instance 1 available @0c
258 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
259 # CHECK-NEXT: BotQ.A @0c
260 # CHECK-NEXT:   Retired: 1
261 # CHECK-NEXT:   Executed: 0c
262 # CHECK-NEXT:   Critical: 0c, 1 MOps
263 # CHECK-NEXT:   ExpectedLatency: 0c
264 # CHECK-NEXT:   - Latency limited.
265 # CHECK-NEXT: CortexA55UnitALU(0) = 0
266 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
267 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
268 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
269 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
270 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
271 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
272 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
273 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
274 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
275 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
276 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
277 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
278 # CHECK-NEXT:   Resource booking (@0c): 
279 # CHECK-NEXT: CortexA55UnitALU(0) = 0
280 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
281 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
282 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
283 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
284 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
285 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
286 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
287 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
288 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
289 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
290 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
291 # CHECK-NEXT:   getNextResourceCycle (@0c): 
292 # CHECK-NEXT:     Instance 0 available @1c
293 # CHECK-NEXT:     Instance 1 available @0c
294 # CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c
295 # CHECK-NEXT:   Resource booking (@0c): 
296 # CHECK-NEXT: CortexA55UnitALU(0) = 0
297 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
298 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
299 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
300 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
301 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
302 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
303 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
304 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
305 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
306 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
307 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
308 # CHECK-NEXT:   getNextResourceCycle (@0c): 
309 # CHECK-NEXT:     Instance 0 available @1c
310 # CHECK-NEXT:     Instance 1 available @0c
311 # CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c
312 # CHECK-NEXT: Queue BotQ.P: 
313 # CHECK-NEXT: Queue BotQ.A: 0 1 
314 # CHECK-NEXT:   Cand SU(0) ORDER                              
315 # CHECK-NEXT:   Cand SU(1) ORDER                              
316 # CHECK-NEXT: Pick Bot ORDER     
317 # CHECK-NEXT: Scheduling SU(1) $x4 = ADDXrr $x1, $x1
318 # CHECK-NEXT:   Ready @0c
319 # CHECK-NEXT:   CortexA55UnitALU +1x1u
320 # CHECK-NEXT:   Resource booking (@0c): 
321 # CHECK-NEXT: CortexA55UnitALU(0) = 0
322 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
323 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
324 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
325 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
326 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
327 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
328 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
329 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
330 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
331 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
332 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
333 # CHECK-NEXT:   getNextResourceCycle (@0c): 
334 # CHECK-NEXT:     Instance 0 available @1c
335 # CHECK-NEXT:     Instance 1 available @0c
336 # CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c
337 # CHECK-NEXT:   Resource booking (@0c): 
338 # CHECK-NEXT: CortexA55UnitALU(0) = 0
339 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
340 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
341 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
342 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
343 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
344 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
345 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
346 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
347 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
348 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
349 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
350 # CHECK-NEXT:   getNextResourceCycle (@0c): 
351 # CHECK-NEXT:     Instance 0 available @1c
352 # CHECK-NEXT:     Instance 1 available @0c
353 # CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c
354 # CHECK-NEXT:   *** Max MOps 2 at cycle 0
355 # CHECK-NEXT: Cycle: 1 BotQ.A
356 # CHECK-NEXT: BotQ.A @1c
357 # CHECK-NEXT:   Retired: 2
358 # CHECK-NEXT:   Executed: 1c
359 # CHECK-NEXT:   Critical: 1c, 2 MOps
360 # CHECK-NEXT:   ExpectedLatency: 0c
361 # CHECK-NEXT:   - Latency limited.
362 # CHECK-NEXT: CortexA55UnitALU(0) = 0
363 # CHECK-NEXT: CortexA55UnitALU(1) = 0
364 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
365 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
366 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
367 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
368 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
369 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
370 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
371 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
372 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
373 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
374 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
375 # CHECK-NEXT:   Resource booking (@1c): 
376 # CHECK-NEXT: CortexA55UnitALU(0) = 0
377 # CHECK-NEXT: CortexA55UnitALU(1) = 0
378 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
379 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
380 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
381 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
382 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
383 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
384 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
385 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
386 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
387 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
388 # CHECK-NEXT:   getNextResourceCycle (@1c): 
389 # CHECK-NEXT:     Instance 0 available @1c
390 # CHECK-NEXT:     Instance 1 available @1c
391 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c
392 # CHECK-NEXT: Queue BotQ.P: 
393 # CHECK-NEXT: Queue BotQ.A: 0 
394 # CHECK-NEXT: Scheduling SU(0) $x3 = ADDXrr $x0, $x0
395 # CHECK-NEXT:   Ready @1c
396 # CHECK-NEXT:   CortexA55UnitALU +1x1u
397 # CHECK-NEXT:   Resource booking (@1c): 
398 # CHECK-NEXT: CortexA55UnitALU(0) = 0
399 # CHECK-NEXT: CortexA55UnitALU(1) = 0
400 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
401 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
402 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
403 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
404 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
405 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
406 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
407 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
408 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
409 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
410 # CHECK-NEXT:   getNextResourceCycle (@1c): 
411 # CHECK-NEXT:     Instance 0 available @1c
412 # CHECK-NEXT:     Instance 1 available @1c
413 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c
414 # CHECK-NEXT:   Resource booking (@1c): 
415 # CHECK-NEXT: CortexA55UnitALU(0) = 0
416 # CHECK-NEXT: CortexA55UnitALU(1) = 0
417 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
418 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
419 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
420 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
421 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
422 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
423 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
424 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
425 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
426 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
427 # CHECK-NEXT:   getNextResourceCycle (@1c): 
428 # CHECK-NEXT:     Instance 0 available @1c
429 # CHECK-NEXT:     Instance 1 available @1c
430 # CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c
431 # CHECK-NEXT: BotQ.A @1c
432 # CHECK-NEXT:   Retired: 3
433 # CHECK-NEXT:   Executed: 1c
434 # CHECK-NEXT:   Critical: 1c, 3 MOps
435 # CHECK-NEXT:   ExpectedLatency: 0c
436 # CHECK-NEXT:   - Latency limited.
437 # CHECK-NEXT: CortexA55UnitALU(0) = 1
438 # CHECK-NEXT: CortexA55UnitALU(1) = 0
439 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
440 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
441 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
442 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
443 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
444 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
445 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
446 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
447 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
448 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
449 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
450 # CHECK-NEXT: *** Final schedule for %bb.0 ***
451 # CHECK-NEXT:  * Schedule table (BottomUp):
452 # CHECK-NEXT:   i: issue
453 # CHECK-NEXT:   x: resource booked
454 # CHECK-NEXT: Cycle              | 1 | 0 |
455 # CHECK-NEXT: SU(0)              | i |   |
456 # CHECK-NEXT:   CortexA55UnitALU | x |   | 
457 # CHECK-NEXT: SU(1)              |   | i |
458 # CHECK-NEXT:   CortexA55UnitALU |   | x | 
459 # CHECK-NEXT: SU(2)              |   | i |
460 # CHECK-NEXT:   CortexA55UnitALU |   | x | 
461 # CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 1]:   $x3 = ADDXrr $x0, $x0
462 # CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x4 = ADDXrr $x1, $x1
463 # CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x5 = ADDXrr $x2, $x2
464 # CHECK-EMPTY: 
465 # CHECK-NEXT: ********** INTERVALS **********
466 # CHECK-NEXT: W0 [0B,16r:0) 0@0B-phi
467 # CHECK-NEXT: W1 [0B,32r:0) 0@0B-phi
468 # CHECK-NEXT: W2 [0B,48r:0) 0@0B-phi
469 # CHECK-NEXT: RegMasks:
470 # CHECK-NEXT: ********** MACHINEINSTRS **********
471 # CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs
472 # CHECK-EMPTY: 
473 # CHECK-NEXT: 0B        bb.0:
474 # CHECK-NEXT:     liveins: $x0, $x1, $x2
475 # CHECK-NEXT: 16B         $x3 = ADDXrr $x0, $x0
476 # CHECK-NEXT: 32B         $x4 = ADDXrr $x1, $x1
477 # CHECK-NEXT: 48B         $x5 = ADDXrr $x2, $x2
478 # CHECK-EMPTY: 
479 # CHECK-NEXT: # End machine code for function f.