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
11 tracksRegLiveness: true
14 liveins: $x0, $x1, $x2
19 # CHECK-LABEL: Before MISched:
20 # CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs
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
28 # CHECK-NEXT: # End machine code for function f.
30 # CHECK-NEXT: ********** MI Scheduling **********
32 # CHECK-NEXT: From: $x3 = ADDXrr $x0, $x0
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
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
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
479 # CHECK-NEXT: # End machine code for function f.