1 # RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -mcpu=cortex-a55 %s -o - 2>&1 \
2 # RUN: -misched-dump-reserved-cycles=true \
3 # RUN: -run-pass=machine-scheduler -debug-only=machine-scheduler \
4 # RUN: -misched-bottomup=true -sched-print-cycles=true \
5 # RUN: -misched-detail-resource-booking=true \
6 # RUN: -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-header-width=21 \
9 # REQUIRES: asserts, aarch64-registered-target
12 ; ModuleID = '../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll'
13 source_filename = "../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll"
14 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
15 target triple = "aarch64-none-linux-gnu"
17 define <8 x i32> @umull_and_v8i32(<8 x i16> %src1, <8 x i32> %src2) #0 {
19 %in1 = zext <8 x i16> %src1 to <8 x i32>
20 %in2 = and <8 x i32> %src2, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
21 %out = mul nsw <8 x i32> %in1, %in2
25 attributes #0 = { "target-features"="+neon" }
31 tracksRegLiveness: true
33 - { id: 0, class: fpr128 }
34 - { id: 1, class: fpr128 }
35 - { id: 2, class: fpr128 }
36 - { id: 3, class: fpr128 }
37 - { id: 4, class: fpr64 }
38 - { id: 5, class: fpr64 }
39 - { id: 6, class: fpr128 }
40 - { id: 7, class: fpr128 }
41 - { id: 8, class: fpr128 }
42 - { id: 9, class: fpr64 }
43 - { id: 10, class: fpr128 }
44 - { id: 11, class: fpr64 }
45 - { id: 12, class: fpr128 }
47 - { reg: '$q0', virtual-reg: '%0' }
48 - { reg: '$q1', virtual-reg: '%1' }
49 - { reg: '$q2', virtual-reg: '%2' }
53 machineFunctionInfo: {}
56 liveins: $q0, $q1, $q2
61 %3:fpr128 = EXTv16i8 %0, %0, 8
62 %6:fpr128 = MOVIv2d_ns 17
63 %7:fpr128 = ANDv16i8 %2, %6
64 %8:fpr128 = ANDv16i8 %1, %6
65 %9:fpr64 = XTNv4i16 %8
66 %10:fpr128 = UMULLv4i16_v4i32 %0.dsub, %9
67 %11:fpr64 = XTNv4i16 %7
68 %12:fpr128 = UMULLv4i16_v4i32 %3.dsub, %11
71 RET_ReallyLR implicit $q0, implicit $q1
75 # CHECK-LABEL: Before MISched:
76 # CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness
77 # CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2
79 # CHECK-NEXT: bb.0.entry:
80 # CHECK-NEXT: liveins: $q0, $q1, $q2
81 # CHECK-NEXT: %2:fpr128 = COPY $q2
82 # CHECK-NEXT: %1:fpr128 = COPY $q1
83 # CHECK-NEXT: %0:fpr128 = COPY $q0
84 # CHECK-NEXT: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
85 # CHECK-NEXT: %6:fpr128 = MOVIv2d_ns 17
86 # CHECK-NEXT: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
87 # CHECK-NEXT: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
88 # CHECK-NEXT: %9:fpr64 = XTNv4i16 %8:fpr128
89 # CHECK-NEXT: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
90 # CHECK-NEXT: %11:fpr64 = XTNv4i16 %7:fpr128
91 # CHECK-NEXT: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
92 # CHECK-NEXT: $q0 = COPY %10:fpr128
93 # CHECK-NEXT: $q1 = COPY %12:fpr128
94 # CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1
96 # CHECK-NEXT: # End machine code for function umull_and_v8i32.
98 # CHECK-NEXT: ********** MI Scheduling **********
99 # CHECK-NEXT: umull_and_v8i32:%bb.0 entry
100 # CHECK-NEXT: From: %2:fpr128 = COPY $q2
101 # CHECK-NEXT: To: RET_ReallyLR implicit $q0, implicit $q1
102 # CHECK-NEXT: RegionInstrs: 13
103 # CHECK-NEXT: ScheduleDAGMILive::schedule starting
104 # CHECK-NEXT: GenericScheduler RegionPolicy: ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=1
105 # CHECK-NEXT: Disabled scoreboard hazard recognizer
106 # CHECK-NEXT: Disabled scoreboard hazard recognizer
107 # CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 0]: %2:fpr128 = COPY $q2
108 # CHECK-NEXT: # preds left : 0
109 # CHECK-NEXT: # succs left : 1
110 # CHECK-NEXT: # rdefs left : 0
111 # CHECK-NEXT: Latency : 3
112 # CHECK-NEXT: Depth : 0
113 # CHECK-NEXT: Height : 13
114 # CHECK-NEXT: Successors:
115 # CHECK-NEXT: SU(5): Data Latency=3 Reg=%2
116 # CHECK-NEXT: Single Issue : false;
117 # CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]: %1:fpr128 = COPY $q1
118 # CHECK-NEXT: # preds left : 0
119 # CHECK-NEXT: # succs left : 2
120 # CHECK-NEXT: # rdefs left : 0
121 # CHECK-NEXT: Latency : 3
122 # CHECK-NEXT: Depth : 0
123 # CHECK-NEXT: Height : 13
124 # CHECK-NEXT: Successors:
125 # CHECK-NEXT: SU(6): Data Latency=3 Reg=%1
126 # CHECK-NEXT: SU(12): Anti Latency=0
127 # CHECK-NEXT: Single Issue : false;
128 # CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]: %0:fpr128 = COPY $q0
129 # CHECK-NEXT: # preds left : 0
130 # CHECK-NEXT: # succs left : 3
131 # CHECK-NEXT: # rdefs left : 0
132 # CHECK-NEXT: Latency : 3
133 # CHECK-NEXT: Depth : 0
134 # CHECK-NEXT: Height : 14
135 # CHECK-NEXT: Successors:
136 # CHECK-NEXT: SU(8): Data Latency=3 Reg=%0
137 # CHECK-NEXT: SU(3): Data Latency=3 Reg=%0
138 # CHECK-NEXT: SU(11): Anti Latency=0
139 # CHECK-NEXT: Single Issue : false;
140 # CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 0]: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
141 # CHECK-NEXT: # preds left : 1
142 # CHECK-NEXT: # succs left : 1
143 # CHECK-NEXT: # rdefs left : 0
144 # CHECK-NEXT: Latency : 4
145 # CHECK-NEXT: Depth : 3
146 # CHECK-NEXT: Height : 11
147 # CHECK-NEXT: Predecessors:
148 # CHECK-NEXT: SU(2): Data Latency=3 Reg=%0
149 # CHECK-NEXT: Successors:
150 # CHECK-NEXT: SU(10): Data Latency=4 Reg=%3
151 # CHECK-NEXT: Single Issue : false;
152 # CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 0]: %6:fpr128 = MOVIv2d_ns 17
153 # CHECK-NEXT: # preds left : 0
154 # CHECK-NEXT: # succs left : 2
155 # CHECK-NEXT: # rdefs left : 0
156 # CHECK-NEXT: Latency : 4
157 # CHECK-NEXT: Depth : 0
158 # CHECK-NEXT: Height : 14
159 # CHECK-NEXT: Successors:
160 # CHECK-NEXT: SU(6): Data Latency=4 Reg=%6
161 # CHECK-NEXT: SU(5): Data Latency=4 Reg=%6
162 # CHECK-NEXT: Single Issue : false;
163 # CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 0]: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
164 # CHECK-NEXT: # preds left : 2
165 # CHECK-NEXT: # succs left : 1
166 # CHECK-NEXT: # rdefs left : 0
167 # CHECK-NEXT: Latency : 1
168 # CHECK-NEXT: Depth : 4
169 # CHECK-NEXT: Height : 10
170 # CHECK-NEXT: Predecessors:
171 # CHECK-NEXT: SU(4): Data Latency=4 Reg=%6
172 # CHECK-NEXT: SU(0): Data Latency=3 Reg=%2
173 # CHECK-NEXT: Successors:
174 # CHECK-NEXT: SU(9): Data Latency=1 Reg=%7
175 # CHECK-NEXT: Single Issue : false;
176 # CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 0]: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
177 # CHECK-NEXT: # preds left : 2
178 # CHECK-NEXT: # succs left : 1
179 # CHECK-NEXT: # rdefs left : 0
180 # CHECK-NEXT: Latency : 1
181 # CHECK-NEXT: Depth : 4
182 # CHECK-NEXT: Height : 10
183 # CHECK-NEXT: Predecessors:
184 # CHECK-NEXT: SU(4): Data Latency=4 Reg=%6
185 # CHECK-NEXT: SU(1): Data Latency=3 Reg=%1
186 # CHECK-NEXT: Successors:
187 # CHECK-NEXT: SU(7): Data Latency=1 Reg=%8
188 # CHECK-NEXT: Single Issue : false;
189 # CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 0]: %9:fpr64 = XTNv4i16 %8:fpr128
190 # CHECK-NEXT: # preds left : 1
191 # CHECK-NEXT: # succs left : 1
192 # CHECK-NEXT: # rdefs left : 0
193 # CHECK-NEXT: Latency : 2
194 # CHECK-NEXT: Depth : 5
195 # CHECK-NEXT: Height : 9
196 # CHECK-NEXT: Predecessors:
197 # CHECK-NEXT: SU(6): Data Latency=1 Reg=%8
198 # CHECK-NEXT: Successors:
199 # CHECK-NEXT: SU(8): Data Latency=2 Reg=%9
200 # CHECK-NEXT: Single Issue : false;
201 # CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 0]: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
202 # CHECK-NEXT: # preds left : 2
203 # CHECK-NEXT: # succs left : 1
204 # CHECK-NEXT: # rdefs left : 0
205 # CHECK-NEXT: Latency : 4
206 # CHECK-NEXT: Depth : 7
207 # CHECK-NEXT: Height : 7
208 # CHECK-NEXT: Predecessors:
209 # CHECK-NEXT: SU(7): Data Latency=2 Reg=%9
210 # CHECK-NEXT: SU(2): Data Latency=3 Reg=%0
211 # CHECK-NEXT: Successors:
212 # CHECK-NEXT: SU(11): Data Latency=4 Reg=%10
213 # CHECK-NEXT: Single Issue : false;
214 # CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 0]: %11:fpr64 = XTNv4i16 %7:fpr128
215 # CHECK-NEXT: # preds left : 1
216 # CHECK-NEXT: # succs left : 1
217 # CHECK-NEXT: # rdefs left : 0
218 # CHECK-NEXT: Latency : 2
219 # CHECK-NEXT: Depth : 5
220 # CHECK-NEXT: Height : 9
221 # CHECK-NEXT: Predecessors:
222 # CHECK-NEXT: SU(5): Data Latency=1 Reg=%7
223 # CHECK-NEXT: Successors:
224 # CHECK-NEXT: SU(10): Data Latency=2 Reg=%11
225 # CHECK-NEXT: Single Issue : false;
226 # CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 0]: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
227 # CHECK-NEXT: # preds left : 2
228 # CHECK-NEXT: # succs left : 1
229 # CHECK-NEXT: # rdefs left : 0
230 # CHECK-NEXT: Latency : 4
231 # CHECK-NEXT: Depth : 7
232 # CHECK-NEXT: Height : 7
233 # CHECK-NEXT: Predecessors:
234 # CHECK-NEXT: SU(9): Data Latency=2 Reg=%11
235 # CHECK-NEXT: SU(3): Data Latency=4 Reg=%3
236 # CHECK-NEXT: Successors:
237 # CHECK-NEXT: SU(12): Data Latency=4 Reg=%12
238 # CHECK-NEXT: Single Issue : false;
239 # CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 0]: $q0 = COPY %10:fpr128
240 # CHECK-NEXT: # preds left : 2
241 # CHECK-NEXT: # succs left : 1
242 # CHECK-NEXT: # rdefs left : 0
243 # CHECK-NEXT: Latency : 3
244 # CHECK-NEXT: Depth : 11
245 # CHECK-NEXT: Height : 3
246 # CHECK-NEXT: Predecessors:
247 # CHECK-NEXT: SU(8): Data Latency=4 Reg=%10
248 # CHECK-NEXT: SU(2): Anti Latency=0
249 # CHECK-NEXT: Successors:
250 # CHECK-NEXT: ExitSU: Ord Latency=3 Artificial
251 # CHECK-NEXT: Single Issue : false;
252 # CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 0]: $q1 = COPY %12:fpr128
253 # CHECK-NEXT: # preds left : 2
254 # CHECK-NEXT: # succs left : 1
255 # CHECK-NEXT: # rdefs left : 0
256 # CHECK-NEXT: Latency : 3
257 # CHECK-NEXT: Depth : 11
258 # CHECK-NEXT: Height : 3
259 # CHECK-NEXT: Predecessors:
260 # CHECK-NEXT: SU(10): Data Latency=4 Reg=%12
261 # CHECK-NEXT: SU(1): Anti Latency=0
262 # CHECK-NEXT: Successors:
263 # CHECK-NEXT: ExitSU: Ord Latency=3 Artificial
264 # CHECK-NEXT: Single Issue : false;
265 # CHECK-NEXT: ExitSU [TopReadyCycle = 0, BottomReadyCycle = 0]: RET_ReallyLR implicit $q0, implicit $q1
266 # CHECK-NEXT: # preds left : 2
267 # CHECK-NEXT: # succs left : 0
268 # CHECK-NEXT: # rdefs left : 0
269 # CHECK-NEXT: Latency : 0
270 # CHECK-NEXT: Depth : 14
271 # CHECK-NEXT: Height : 0
272 # CHECK-NEXT: Predecessors:
273 # CHECK-NEXT: SU(12): Ord Latency=3 Artificial
274 # CHECK-NEXT: SU(11): Ord Latency=3 Artificial
275 # CHECK-NEXT: Resource booking (@0c):
276 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
277 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
278 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
279 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
280 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
281 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
282 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
283 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
284 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
285 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
286 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
287 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
288 # CHECK-NEXT: getNextResourceCycle (@0c):
289 # CHECK-NEXT: Instance 0 available @0c
290 # CHECK-NEXT: Instance 1 available @0c
291 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c
292 # CHECK-NEXT: Resource booking (@0c):
293 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
294 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
295 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
296 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
297 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
298 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
299 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
300 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
301 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
302 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
303 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
304 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
305 # CHECK-NEXT: getNextResourceCycle (@0c):
306 # CHECK-NEXT: Instance 0 available @0c
307 # CHECK-NEXT: Instance 1 available @0c
308 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c
309 # CHECK-NEXT: Resource booking (@0c):
310 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
311 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
312 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
313 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
314 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
315 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
316 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
317 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
318 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
319 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
320 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
321 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
322 # CHECK-NEXT: getNextResourceCycle (@0c):
323 # CHECK-NEXT: Instance 0 available @0c
324 # CHECK-NEXT: Instance 1 available @0c
325 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c
326 # CHECK-NEXT: Resource booking (@0c):
327 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
328 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
329 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
330 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
331 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
332 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
333 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
334 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
335 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
336 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
337 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
338 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
339 # CHECK-NEXT: getNextResourceCycle (@0c):
340 # CHECK-NEXT: Instance 0 available @0c
341 # CHECK-NEXT: Instance 1 available @0c
342 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @0c
343 # CHECK-NEXT: Critical Path(GS-RR ): 14
344 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
345 # CHECK-NEXT: Cycle: 3 BotQ.A
346 # CHECK-NEXT: Resource booking (@3c):
347 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
348 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
349 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
350 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
351 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
352 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
353 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
354 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
355 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
356 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
357 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
358 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
359 # CHECK-NEXT: getNextResourceCycle (@3c):
360 # CHECK-NEXT: Instance 0 available @3c
361 # CHECK-NEXT: Instance 1 available @3c
362 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c
363 # CHECK-NEXT: Resource booking (@3c):
364 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
365 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
366 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
367 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
368 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
369 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
370 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
371 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
372 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
373 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
374 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
375 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
376 # CHECK-NEXT: getNextResourceCycle (@3c):
377 # CHECK-NEXT: Instance 0 available @3c
378 # CHECK-NEXT: Instance 1 available @3c
379 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c
380 # CHECK-NEXT: Queue BotQ.P:
381 # CHECK-NEXT: Queue BotQ.A: 12 11
382 # CHECK-NEXT: Cand SU(12) ORDER
383 # CHECK-NEXT: Pick Bot ORDER
384 # CHECK-NEXT: Scheduling SU(12) $q1 = COPY %12:fpr128
385 # CHECK-NEXT: Ready @3c
386 # CHECK-NEXT: CortexA55UnitALU +1x1u
387 # CHECK-NEXT: Resource booking (@3c):
388 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
389 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
390 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
391 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
392 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
393 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
394 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
395 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
396 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
397 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
398 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
399 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
400 # CHECK-NEXT: getNextResourceCycle (@3c):
401 # CHECK-NEXT: Instance 0 available @3c
402 # CHECK-NEXT: Instance 1 available @3c
403 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c
404 # CHECK-NEXT: Resource booking (@3c):
405 # CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
406 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
407 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
408 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
409 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
410 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
411 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
412 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
413 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
414 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
415 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
416 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
417 # CHECK-NEXT: getNextResourceCycle (@3c):
418 # CHECK-NEXT: Instance 0 available @3c
419 # CHECK-NEXT: Instance 1 available @3c
420 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c
421 # CHECK-NEXT: BotQ.A TopLatency SU(12) 11c
422 # CHECK-NEXT: BotQ.A BotLatency SU(12) 3c
423 # CHECK-NEXT: BotQ.A @3c
424 # CHECK-NEXT: Retired: 1
425 # CHECK-NEXT: Executed: 3c
426 # CHECK-NEXT: Critical: 0c, 1 MOps
427 # CHECK-NEXT: ExpectedLatency: 3c
428 # CHECK-NEXT: - Latency limited.
429 # CHECK-NEXT: CortexA55UnitALU(0) = 3
430 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
431 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
432 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
433 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
434 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
435 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
436 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
437 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
438 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
439 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
440 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
441 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
442 # CHECK-NEXT: Resource booking (@3c):
443 # CHECK-NEXT: CortexA55UnitALU(0) = 3
444 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
445 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
446 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
447 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
448 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
449 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
450 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
451 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
452 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
453 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
454 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
455 # CHECK-NEXT: getNextResourceCycle (@3c):
456 # CHECK-NEXT: Instance 0 available @4c
457 # CHECK-NEXT: Instance 1 available @3c
458 # CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c
459 # CHECK-NEXT: Queue BotQ.P: 10
460 # CHECK-NEXT: Queue BotQ.A: 11
461 # CHECK-NEXT: Scheduling SU(11) $q0 = COPY %10:fpr128
462 # CHECK-NEXT: Ready @3c
463 # CHECK-NEXT: CortexA55UnitALU +1x1u
464 # CHECK-NEXT: Resource booking (@3c):
465 # CHECK-NEXT: CortexA55UnitALU(0) = 3
466 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
467 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
468 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
469 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
470 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
471 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
472 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
473 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
474 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
475 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
476 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
477 # CHECK-NEXT: getNextResourceCycle (@3c):
478 # CHECK-NEXT: Instance 0 available @4c
479 # CHECK-NEXT: Instance 1 available @3c
480 # CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c
481 # CHECK-NEXT: Resource booking (@3c):
482 # CHECK-NEXT: CortexA55UnitALU(0) = 3
483 # CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
484 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
485 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
486 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
487 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
488 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
489 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
490 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
491 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
492 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
493 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
494 # CHECK-NEXT: getNextResourceCycle (@3c):
495 # CHECK-NEXT: Instance 0 available @4c
496 # CHECK-NEXT: Instance 1 available @3c
497 # CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c
498 # CHECK-NEXT: *** Max MOps 2 at cycle 3
499 # CHECK-NEXT: Cycle: 4 BotQ.A
500 # CHECK-NEXT: BotQ.A @4c
501 # CHECK-NEXT: Retired: 2
502 # CHECK-NEXT: Executed: 4c
503 # CHECK-NEXT: Critical: 1c, 2 MOps
504 # CHECK-NEXT: ExpectedLatency: 3c
505 # CHECK-NEXT: - Latency limited.
506 # CHECK-NEXT: CortexA55UnitALU(0) = 3
507 # CHECK-NEXT: CortexA55UnitALU(1) = 3
508 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
509 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
510 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
511 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
512 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
513 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
514 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
515 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
516 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
517 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
518 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
519 # CHECK-NEXT: Cycle: 7 BotQ.A
520 # CHECK-NEXT: Resource booking (@7c):
521 # CHECK-NEXT: CortexA55UnitALU(0) = 3
522 # CHECK-NEXT: CortexA55UnitALU(1) = 3
523 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
524 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
525 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
526 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
527 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
528 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
529 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
530 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
531 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
532 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
533 # CHECK-NEXT: getNextResourceCycle (@7c):
534 # CHECK-NEXT: Instance 0 available @7c
535 # CHECK-NEXT: Instance 1 available @7c
536 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c
537 # CHECK-NEXT: Resource booking (@7c):
538 # CHECK-NEXT: CortexA55UnitALU(0) = 3
539 # CHECK-NEXT: CortexA55UnitALU(1) = 3
540 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
541 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
542 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
543 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
544 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
545 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
546 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
547 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
548 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
549 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
550 # CHECK-NEXT: getNextResourceCycle (@7c):
551 # CHECK-NEXT: Instance 0 available @7c
552 # CHECK-NEXT: Instance 1 available @7c
553 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c
554 # CHECK-NEXT: Queue BotQ.P:
555 # CHECK-NEXT: Queue BotQ.A: 10 8
556 # CHECK-NEXT: Cand SU(10) ORDER
557 # CHECK-NEXT: Pick Bot ORDER
558 # CHECK-NEXT: Scheduling SU(10) %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
559 # CHECK-NEXT: Ready @7c
560 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
561 # CHECK-NEXT: Resource booking (@7c):
562 # CHECK-NEXT: CortexA55UnitALU(0) = 3
563 # CHECK-NEXT: CortexA55UnitALU(1) = 3
564 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
565 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
566 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
567 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
568 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
569 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
570 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
571 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
572 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
573 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
574 # CHECK-NEXT: getNextResourceCycle (@7c):
575 # CHECK-NEXT: Instance 0 available @7c
576 # CHECK-NEXT: Instance 1 available @7c
577 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c
578 # CHECK-NEXT: Resource booking (@7c):
579 # CHECK-NEXT: CortexA55UnitALU(0) = 3
580 # CHECK-NEXT: CortexA55UnitALU(1) = 3
581 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
582 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
583 # CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
584 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
585 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
586 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
587 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
588 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
589 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
590 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
591 # CHECK-NEXT: getNextResourceCycle (@7c):
592 # CHECK-NEXT: Instance 0 available @7c
593 # CHECK-NEXT: Instance 1 available @7c
594 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c
595 # CHECK-NEXT: BotQ.A BotLatency SU(10) 7c
596 # CHECK-NEXT: Bump cycle to begin group
597 # CHECK-NEXT: Cycle: 8 BotQ.A
598 # CHECK-NEXT: BotQ.A @8c
599 # CHECK-NEXT: Retired: 3
600 # CHECK-NEXT: Executed: 8c
601 # CHECK-NEXT: Critical: 1c, 3 MOps
602 # CHECK-NEXT: ExpectedLatency: 7c
603 # CHECK-NEXT: - Latency limited.
604 # CHECK-NEXT: CortexA55UnitALU(0) = 3
605 # CHECK-NEXT: CortexA55UnitALU(1) = 3
606 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
607 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
608 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
609 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
610 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
611 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
612 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
613 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
614 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
615 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
616 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
617 # CHECK-NEXT: Resource booking (@8c):
618 # CHECK-NEXT: CortexA55UnitALU(0) = 3
619 # CHECK-NEXT: CortexA55UnitALU(1) = 3
620 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
621 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
622 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
623 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
624 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
625 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
626 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
627 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
628 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
629 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
630 # CHECK-NEXT: getNextResourceCycle (@8c):
631 # CHECK-NEXT: Instance 0 available @9c
632 # CHECK-NEXT: Instance 1 available @8c
633 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c
634 # CHECK-NEXT: Queue BotQ.P: 9 3
635 # CHECK-NEXT: Queue BotQ.A: 8
636 # CHECK-NEXT: Scheduling SU(8) %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
637 # CHECK-NEXT: Ready @8c
638 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
639 # CHECK-NEXT: Resource booking (@8c):
640 # CHECK-NEXT: CortexA55UnitALU(0) = 3
641 # CHECK-NEXT: CortexA55UnitALU(1) = 3
642 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
643 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
644 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
645 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
646 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
647 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
648 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
649 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
650 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
651 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
652 # CHECK-NEXT: getNextResourceCycle (@8c):
653 # CHECK-NEXT: Instance 0 available @9c
654 # CHECK-NEXT: Instance 1 available @8c
655 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c
656 # CHECK-NEXT: Resource booking (@8c):
657 # CHECK-NEXT: CortexA55UnitALU(0) = 3
658 # CHECK-NEXT: CortexA55UnitALU(1) = 3
659 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
660 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
661 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
662 # CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
663 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
664 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
665 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
666 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
667 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
668 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
669 # CHECK-NEXT: getNextResourceCycle (@8c):
670 # CHECK-NEXT: Instance 0 available @9c
671 # CHECK-NEXT: Instance 1 available @8c
672 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c
673 # CHECK-NEXT: BotQ.A TopLatency SU(8) 7c
674 # CHECK-NEXT: Bump cycle to begin group
675 # CHECK-NEXT: Cycle: 9 BotQ.A
676 # CHECK-NEXT: BotQ.A @9c
677 # CHECK-NEXT: Retired: 4
678 # CHECK-NEXT: Executed: 9c
679 # CHECK-NEXT: Critical: 2c, 4 MOps
680 # CHECK-NEXT: ExpectedLatency: 7c
681 # CHECK-NEXT: - Latency limited.
682 # CHECK-NEXT: CortexA55UnitALU(0) = 3
683 # CHECK-NEXT: CortexA55UnitALU(1) = 3
684 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
685 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
686 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
687 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
688 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
689 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
690 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
691 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
692 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
693 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
694 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
695 # CHECK-NEXT: Resource booking (@9c):
696 # CHECK-NEXT: CortexA55UnitALU(0) = 3
697 # CHECK-NEXT: CortexA55UnitALU(1) = 3
698 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
699 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
700 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
701 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
702 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
703 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
704 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
705 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
706 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
707 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
708 # CHECK-NEXT: getNextResourceCycle (@9c):
709 # CHECK-NEXT: Instance 0 available @9c
710 # CHECK-NEXT: Instance 1 available @9c
711 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c
712 # CHECK-NEXT: Resource booking (@9c):
713 # CHECK-NEXT: CortexA55UnitALU(0) = 3
714 # CHECK-NEXT: CortexA55UnitALU(1) = 3
715 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
716 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
717 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
718 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
719 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
720 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
721 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
722 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
723 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
724 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
725 # CHECK-NEXT: getNextResourceCycle (@9c):
726 # CHECK-NEXT: Instance 0 available @9c
727 # CHECK-NEXT: Instance 1 available @9c
728 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c
729 # CHECK-NEXT: Queue BotQ.P: 7 3
730 # CHECK-NEXT: Queue BotQ.A: 9
731 # CHECK-NEXT: Scheduling SU(9) %11:fpr64 = XTNv4i16 %7:fpr128
732 # CHECK-NEXT: Ready @9c
733 # CHECK-NEXT: CortexA55UnitFPALU +1x1u
734 # CHECK-NEXT: Resource booking (@9c):
735 # CHECK-NEXT: CortexA55UnitALU(0) = 3
736 # CHECK-NEXT: CortexA55UnitALU(1) = 3
737 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
738 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
739 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
740 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
741 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
742 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
743 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
744 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
745 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
746 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
747 # CHECK-NEXT: getNextResourceCycle (@9c):
748 # CHECK-NEXT: Instance 0 available @9c
749 # CHECK-NEXT: Instance 1 available @9c
750 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c
751 # CHECK-NEXT: Resource booking (@9c):
752 # CHECK-NEXT: CortexA55UnitALU(0) = 3
753 # CHECK-NEXT: CortexA55UnitALU(1) = 3
754 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
755 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
756 # CHECK-NEXT: CortexA55UnitFPALU(0) = 7
757 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
758 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
759 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
760 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
761 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
762 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
763 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
764 # CHECK-NEXT: getNextResourceCycle (@9c):
765 # CHECK-NEXT: Instance 0 available @9c
766 # CHECK-NEXT: Instance 1 available @9c
767 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c
768 # CHECK-NEXT: BotQ.A BotLatency SU(9) 9c
769 # CHECK-NEXT: BotQ.A @9c
770 # CHECK-NEXT: Retired: 5
771 # CHECK-NEXT: Executed: 9c
772 # CHECK-NEXT: Critical: 2c, 5 MOps
773 # CHECK-NEXT: ExpectedLatency: 9c
774 # CHECK-NEXT: - Latency limited.
775 # CHECK-NEXT: CortexA55UnitALU(0) = 3
776 # CHECK-NEXT: CortexA55UnitALU(1) = 3
777 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
778 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
779 # CHECK-NEXT: CortexA55UnitFPALU(0) = 9
780 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
781 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
782 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
783 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
784 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
785 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
786 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
787 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
788 # CHECK-NEXT: Cycle: 10 BotQ.A
789 # CHECK-NEXT: Resource booking (@10c):
790 # CHECK-NEXT: CortexA55UnitALU(0) = 3
791 # CHECK-NEXT: CortexA55UnitALU(1) = 3
792 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
793 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
794 # CHECK-NEXT: CortexA55UnitFPALU(0) = 9
795 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
796 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
797 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
798 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
799 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
800 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
801 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
802 # CHECK-NEXT: getNextResourceCycle (@10c):
803 # CHECK-NEXT: Instance 0 available @10c
804 # CHECK-NEXT: Instance 1 available @10c
805 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c
806 # CHECK-NEXT: Resource booking (@10c):
807 # CHECK-NEXT: CortexA55UnitALU(0) = 3
808 # CHECK-NEXT: CortexA55UnitALU(1) = 3
809 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
810 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
811 # CHECK-NEXT: CortexA55UnitFPALU(0) = 9
812 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
813 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
814 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
815 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
816 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
817 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
818 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
819 # CHECK-NEXT: getNextResourceCycle (@10c):
820 # CHECK-NEXT: Instance 0 available @11c
821 # CHECK-NEXT: Instance 1 available @10c
822 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c
823 # CHECK-NEXT: Queue BotQ.P: 3
824 # CHECK-NEXT: Queue BotQ.A: 7 5
825 # CHECK-NEXT: Cand SU(7) ORDER
826 # CHECK-NEXT: Pick Bot ORDER
827 # CHECK-NEXT: Scheduling SU(7) %9:fpr64 = XTNv4i16 %8:fpr128
828 # CHECK-NEXT: Ready @10c
829 # CHECK-NEXT: CortexA55UnitFPALU +1x1u
830 # CHECK-NEXT: Resource booking (@10c):
831 # CHECK-NEXT: CortexA55UnitALU(0) = 3
832 # CHECK-NEXT: CortexA55UnitALU(1) = 3
833 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
834 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
835 # CHECK-NEXT: CortexA55UnitFPALU(0) = 9
836 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
837 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
838 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
839 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
840 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
841 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
842 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
843 # CHECK-NEXT: getNextResourceCycle (@10c):
844 # CHECK-NEXT: Instance 0 available @10c
845 # CHECK-NEXT: Instance 1 available @10c
846 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c
847 # CHECK-NEXT: Resource booking (@10c):
848 # CHECK-NEXT: CortexA55UnitALU(0) = 3
849 # CHECK-NEXT: CortexA55UnitALU(1) = 3
850 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
851 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
852 # CHECK-NEXT: CortexA55UnitFPALU(0) = 9
853 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
854 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
855 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
856 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
857 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
858 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
859 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
860 # CHECK-NEXT: getNextResourceCycle (@10c):
861 # CHECK-NEXT: Instance 0 available @10c
862 # CHECK-NEXT: Instance 1 available @10c
863 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c
864 # CHECK-NEXT: BotQ.A @10c
865 # CHECK-NEXT: Retired: 6
866 # CHECK-NEXT: Executed: 10c
867 # CHECK-NEXT: Critical: 3c, 6 MOps
868 # CHECK-NEXT: ExpectedLatency: 9c
869 # CHECK-NEXT: - Latency limited.
870 # CHECK-NEXT: CortexA55UnitALU(0) = 3
871 # CHECK-NEXT: CortexA55UnitALU(1) = 3
872 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
873 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
874 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
875 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
876 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
877 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
878 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
879 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
880 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
881 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
882 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
883 # CHECK-NEXT: Resource booking (@10c):
884 # CHECK-NEXT: CortexA55UnitALU(0) = 3
885 # CHECK-NEXT: CortexA55UnitALU(1) = 3
886 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
887 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
888 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
889 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
890 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
891 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
892 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
893 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
894 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
895 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
896 # CHECK-NEXT: getNextResourceCycle (@10c):
897 # CHECK-NEXT: Instance 0 available @12c
898 # CHECK-NEXT: Instance 1 available @10c
899 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c
900 # CHECK-NEXT: Queue BotQ.P: 3 6
901 # CHECK-NEXT: Queue BotQ.A: 5
902 # CHECK-NEXT: Scheduling SU(5) %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
903 # CHECK-NEXT: Ready @10c
904 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
905 # CHECK-NEXT: *** Critical resource CortexA55UnitFPALU: 4c
906 # CHECK-NEXT: Resource booking (@10c):
907 # CHECK-NEXT: CortexA55UnitALU(0) = 3
908 # CHECK-NEXT: CortexA55UnitALU(1) = 3
909 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
910 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
911 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
912 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
913 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
914 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
915 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
916 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
917 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
918 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
919 # CHECK-NEXT: getNextResourceCycle (@10c):
920 # CHECK-NEXT: Instance 0 available @12c
921 # CHECK-NEXT: Instance 1 available @10c
922 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c
923 # CHECK-NEXT: Resource booking (@10c):
924 # CHECK-NEXT: CortexA55UnitALU(0) = 3
925 # CHECK-NEXT: CortexA55UnitALU(1) = 3
926 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
927 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
928 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
929 # CHECK-NEXT: CortexA55UnitFPALU(1) = 8
930 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
931 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
932 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
933 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
934 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
935 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
936 # CHECK-NEXT: getNextResourceCycle (@10c):
937 # CHECK-NEXT: Instance 0 available @12c
938 # CHECK-NEXT: Instance 1 available @10c
939 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c
940 # CHECK-NEXT: BotQ.A BotLatency SU(5) 10c
941 # CHECK-NEXT: Bump cycle to begin group
942 # CHECK-NEXT: Cycle: 11 BotQ.A
943 # CHECK-NEXT: BotQ.A @11c
944 # CHECK-NEXT: Retired: 7
945 # CHECK-NEXT: Executed: 11c
946 # CHECK-NEXT: Critical: 4c, 8 CortexA55UnitFPALU
947 # CHECK-NEXT: ExpectedLatency: 10c
948 # CHECK-NEXT: - Latency limited.
949 # CHECK-NEXT: CortexA55UnitALU(0) = 3
950 # CHECK-NEXT: CortexA55UnitALU(1) = 3
951 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
952 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
953 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
954 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
955 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
956 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
957 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
958 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
959 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
960 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
961 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
962 # CHECK-NEXT: Resource booking (@11c):
963 # CHECK-NEXT: CortexA55UnitALU(0) = 3
964 # CHECK-NEXT: CortexA55UnitALU(1) = 3
965 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
966 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
967 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
968 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
969 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
970 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
971 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
972 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
973 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
974 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
975 # CHECK-NEXT: getNextResourceCycle (@11c):
976 # CHECK-NEXT: Instance 0 available @12c
977 # CHECK-NEXT: Instance 1 available @12c
978 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
979 # CHECK-NEXT: SU(3) CortexA55UnitFPALU[0]=12c
980 # CHECK-NEXT: Resource booking (@11c):
981 # CHECK-NEXT: CortexA55UnitALU(0) = 3
982 # CHECK-NEXT: CortexA55UnitALU(1) = 3
983 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
984 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
985 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
986 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
987 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
988 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
989 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
990 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
991 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
992 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
993 # CHECK-NEXT: getNextResourceCycle (@11c):
994 # CHECK-NEXT: Instance 0 available @12c
995 # CHECK-NEXT: Instance 1 available @12c
996 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
997 # CHECK-NEXT: SU(6) CortexA55UnitFPALU[0]=12c
998 # CHECK-NEXT: Cycle: 12 BotQ.A
999 # CHECK-NEXT: Resource booking (@12c):
1000 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1001 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1002 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1003 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1004 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
1005 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1006 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1007 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1008 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1009 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1010 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1011 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1012 # CHECK-NEXT: getNextResourceCycle (@12c):
1013 # CHECK-NEXT: Instance 0 available @12c
1014 # CHECK-NEXT: Instance 1 available @12c
1015 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
1016 # CHECK-NEXT: Resource booking (@12c):
1017 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1018 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1019 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1020 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1021 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
1022 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1023 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1024 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1025 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1026 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1027 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1028 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1029 # CHECK-NEXT: getNextResourceCycle (@12c):
1030 # CHECK-NEXT: Instance 0 available @12c
1031 # CHECK-NEXT: Instance 1 available @12c
1032 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
1033 # CHECK-NEXT: Queue BotQ.P: 0
1034 # CHECK-NEXT: Queue BotQ.A: 3 6
1035 # CHECK-NEXT: Cand SU(3) ORDER
1036 # CHECK-NEXT: Cand SU(6) ORDER
1037 # CHECK-NEXT: Pick Bot ORDER
1038 # CHECK-NEXT: Scheduling SU(6) %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
1039 # CHECK-NEXT: Ready @12c
1040 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
1041 # CHECK-NEXT: Resource booking (@12c):
1042 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1043 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1044 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1045 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1046 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
1047 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1048 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1049 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1050 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1051 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1052 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1053 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1054 # CHECK-NEXT: getNextResourceCycle (@12c):
1055 # CHECK-NEXT: Instance 0 available @12c
1056 # CHECK-NEXT: Instance 1 available @12c
1057 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
1058 # CHECK-NEXT: Resource booking (@12c):
1059 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1060 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1061 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1062 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1063 # CHECK-NEXT: CortexA55UnitFPALU(0) = 10
1064 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1065 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1066 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1067 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1068 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1069 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1070 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1071 # CHECK-NEXT: getNextResourceCycle (@12c):
1072 # CHECK-NEXT: Instance 0 available @12c
1073 # CHECK-NEXT: Instance 1 available @12c
1074 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c
1075 # CHECK-NEXT: BotQ.A TopLatency SU(6) 4c
1076 # CHECK-NEXT: Bump cycle to begin group
1077 # CHECK-NEXT: Cycle: 13 BotQ.A
1078 # CHECK-NEXT: BotQ.A @13c
1079 # CHECK-NEXT: Retired: 8
1080 # CHECK-NEXT: Executed: 13c
1081 # CHECK-NEXT: Critical: 5c, 10 CortexA55UnitFPALU
1082 # CHECK-NEXT: ExpectedLatency: 10c
1083 # CHECK-NEXT: - Latency limited.
1084 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1085 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1086 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1087 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1088 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1089 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1090 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1091 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1092 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1093 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1094 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1095 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1096 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1097 # CHECK-NEXT: Resource booking (@13c):
1098 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1099 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1100 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1101 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1102 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1103 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1104 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1105 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1106 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1107 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1108 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1109 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1110 # CHECK-NEXT: getNextResourceCycle (@13c):
1111 # CHECK-NEXT: Instance 0 available @13c
1112 # CHECK-NEXT: Instance 1 available @13c
1113 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @13c
1114 # CHECK-NEXT: Resource booking (@13c):
1115 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1116 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1117 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1118 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1119 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1120 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1121 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1122 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1123 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1124 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1125 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1126 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1127 # CHECK-NEXT: getNextResourceCycle (@13c):
1128 # CHECK-NEXT: Instance 0 available @14c
1129 # CHECK-NEXT: Instance 1 available @13c
1130 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c
1131 # CHECK-NEXT: Resource booking (@13c):
1132 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1133 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1134 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1135 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1136 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1137 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1138 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1139 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1140 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1141 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1142 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1143 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1144 # CHECK-NEXT: getNextResourceCycle (@13c):
1145 # CHECK-NEXT: Instance 0 available @13c
1146 # CHECK-NEXT: Instance 1 available @13c
1147 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @13c
1148 # CHECK-NEXT: Queue BotQ.P: 1 4
1149 # CHECK-NEXT: Queue BotQ.A: 3 0
1150 # CHECK-NEXT: Cand SU(3) ORDER
1151 # CHECK-NEXT: Pick Bot PHYS-REG
1152 # CHECK-NEXT: Scheduling SU(3) %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
1153 # CHECK-NEXT: Ready @13c
1154 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
1155 # CHECK-NEXT: Resource booking (@13c):
1156 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1157 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1158 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1159 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1160 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1161 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1162 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1163 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1164 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1165 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1166 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1167 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1168 # CHECK-NEXT: getNextResourceCycle (@13c):
1169 # CHECK-NEXT: Instance 0 available @14c
1170 # CHECK-NEXT: Instance 1 available @13c
1171 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c
1172 # CHECK-NEXT: Resource booking (@13c):
1173 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1174 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1175 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1176 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1177 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1178 # CHECK-NEXT: CortexA55UnitFPALU(1) = 10
1179 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1180 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1181 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1182 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1183 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1184 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1185 # CHECK-NEXT: getNextResourceCycle (@13c):
1186 # CHECK-NEXT: Instance 0 available @14c
1187 # CHECK-NEXT: Instance 1 available @13c
1188 # CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c
1189 # CHECK-NEXT: BotQ.A BotLatency SU(3) 11c
1190 # CHECK-NEXT: Bump cycle to begin group
1191 # CHECK-NEXT: Cycle: 14 BotQ.A
1192 # CHECK-NEXT: BotQ.A @14c
1193 # CHECK-NEXT: Retired: 9
1194 # CHECK-NEXT: Executed: 14c
1195 # CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU
1196 # CHECK-NEXT: ExpectedLatency: 11c
1197 # CHECK-NEXT: - Latency limited.
1198 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1199 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1200 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1201 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1202 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1203 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1204 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1205 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1206 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1207 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1208 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1209 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1210 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1211 # CHECK-NEXT: Resource booking (@14c):
1212 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1213 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1214 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1215 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1216 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1217 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1218 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1219 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1220 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1221 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1222 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1223 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1224 # CHECK-NEXT: getNextResourceCycle (@14c):
1225 # CHECK-NEXT: Instance 0 available @14c
1226 # CHECK-NEXT: Instance 1 available @14c
1227 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c
1228 # CHECK-NEXT: Queue BotQ.P: 1 4 2
1229 # CHECK-NEXT: Queue BotQ.A: 0
1230 # CHECK-NEXT: Scheduling SU(0) %2:fpr128 = COPY $q2
1231 # CHECK-NEXT: Ready @14c
1232 # CHECK-NEXT: CortexA55UnitALU +1x1u
1233 # CHECK-NEXT: Resource booking (@14c):
1234 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1235 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1236 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1237 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1238 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1239 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1240 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1241 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1242 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1243 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1244 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1245 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1246 # CHECK-NEXT: getNextResourceCycle (@14c):
1247 # CHECK-NEXT: Instance 0 available @14c
1248 # CHECK-NEXT: Instance 1 available @14c
1249 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c
1250 # CHECK-NEXT: Resource booking (@14c):
1251 # CHECK-NEXT: CortexA55UnitALU(0) = 3
1252 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1253 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1254 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1255 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1256 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1257 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1258 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1259 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1260 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1261 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1262 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1263 # CHECK-NEXT: getNextResourceCycle (@14c):
1264 # CHECK-NEXT: Instance 0 available @14c
1265 # CHECK-NEXT: Instance 1 available @14c
1266 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c
1267 # CHECK-NEXT: BotQ.A BotLatency SU(0) 13c
1268 # CHECK-NEXT: BotQ.A @14c
1269 # CHECK-NEXT: Retired: 10
1270 # CHECK-NEXT: Executed: 14c
1271 # CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU
1272 # CHECK-NEXT: ExpectedLatency: 13c
1273 # CHECK-NEXT: - Latency limited.
1274 # CHECK-NEXT: CortexA55UnitALU(0) = 14
1275 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1276 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1277 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1278 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1279 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1280 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1281 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1282 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1283 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1284 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1285 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1286 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1287 # CHECK-NEXT: Cycle: 15 BotQ.A
1288 # CHECK-NEXT: Resource booking (@15c):
1289 # CHECK-NEXT: CortexA55UnitALU(0) = 14
1290 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1291 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1292 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1293 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1294 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1295 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1296 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1297 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1298 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1299 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1300 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1301 # CHECK-NEXT: getNextResourceCycle (@15c):
1302 # CHECK-NEXT: Instance 0 available @15c
1303 # CHECK-NEXT: Instance 1 available @15c
1304 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c
1305 # CHECK-NEXT: Queue BotQ.P: 2 4
1306 # CHECK-NEXT: Queue BotQ.A: 1
1307 # CHECK-NEXT: Scheduling SU(1) %1:fpr128 = COPY $q1
1308 # CHECK-NEXT: Ready @15c
1309 # CHECK-NEXT: CortexA55UnitALU +1x1u
1310 # CHECK-NEXT: Resource booking (@15c):
1311 # CHECK-NEXT: CortexA55UnitALU(0) = 14
1312 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1313 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1314 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1315 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1316 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1317 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1318 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1319 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1320 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1321 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1322 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1323 # CHECK-NEXT: getNextResourceCycle (@15c):
1324 # CHECK-NEXT: Instance 0 available @15c
1325 # CHECK-NEXT: Instance 1 available @15c
1326 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c
1327 # CHECK-NEXT: Resource booking (@15c):
1328 # CHECK-NEXT: CortexA55UnitALU(0) = 14
1329 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1330 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1331 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1332 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1333 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1334 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1335 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1336 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1337 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1338 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1339 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1340 # CHECK-NEXT: getNextResourceCycle (@15c):
1341 # CHECK-NEXT: Instance 0 available @15c
1342 # CHECK-NEXT: Instance 1 available @15c
1343 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c
1344 # CHECK-NEXT: BotQ.A @15c
1345 # CHECK-NEXT: Retired: 11
1346 # CHECK-NEXT: Executed: 15c
1347 # CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU
1348 # CHECK-NEXT: ExpectedLatency: 13c
1349 # CHECK-NEXT: - Latency limited.
1350 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1351 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1352 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1353 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1354 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1355 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1356 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1357 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1358 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1359 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1360 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1361 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1362 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1363 # CHECK-NEXT: Cycle: 16 BotQ.A
1364 # CHECK-NEXT: Resource booking (@16c):
1365 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1366 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1367 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1368 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1369 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1370 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1371 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1372 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1373 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1374 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1375 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1376 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1377 # CHECK-NEXT: getNextResourceCycle (@16c):
1378 # CHECK-NEXT: Instance 0 available @16c
1379 # CHECK-NEXT: Instance 1 available @16c
1380 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @16c
1381 # CHECK-NEXT: Resource booking (@16c):
1382 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1383 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1384 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1385 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1386 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1387 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1388 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1389 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1390 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1391 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1392 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1393 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1394 # CHECK-NEXT: getNextResourceCycle (@16c):
1395 # CHECK-NEXT: Instance 0 available @16c
1396 # CHECK-NEXT: Instance 1 available @16c
1397 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c
1398 # CHECK-NEXT: Queue BotQ.P:
1399 # CHECK-NEXT: Queue BotQ.A: 2 4
1400 # CHECK-NEXT: Cand SU(2) ORDER
1401 # CHECK-NEXT: Cand SU(4) PHYS-REG
1402 # CHECK-NEXT: Pick Bot PHYS-REG
1403 # CHECK-NEXT: Scheduling SU(4) %6:fpr128 = MOVIv2d_ns 17
1404 # CHECK-NEXT: Ready @16c
1405 # CHECK-NEXT: CortexA55UnitFPALU +2x1u
1406 # CHECK-NEXT: Resource booking (@16c):
1407 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1408 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1409 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1410 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1411 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1412 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1413 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1414 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1415 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1416 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1417 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1418 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1419 # CHECK-NEXT: getNextResourceCycle (@16c):
1420 # CHECK-NEXT: Instance 0 available @16c
1421 # CHECK-NEXT: Instance 1 available @16c
1422 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c
1423 # CHECK-NEXT: Resource booking (@16c):
1424 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1425 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1426 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1427 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1428 # CHECK-NEXT: CortexA55UnitFPALU(0) = 12
1429 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1430 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1431 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1432 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1433 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1434 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1435 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1436 # CHECK-NEXT: getNextResourceCycle (@16c):
1437 # CHECK-NEXT: Instance 0 available @16c
1438 # CHECK-NEXT: Instance 1 available @16c
1439 # CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c
1440 # CHECK-NEXT: BotQ.A BotLatency SU(4) 14c
1441 # CHECK-NEXT: Bump cycle to begin group
1442 # CHECK-NEXT: Cycle: 17 BotQ.A
1443 # CHECK-NEXT: BotQ.A @17c
1444 # CHECK-NEXT: Retired: 12
1445 # CHECK-NEXT: Executed: 17c
1446 # CHECK-NEXT: Critical: 7c, 14 CortexA55UnitFPALU
1447 # CHECK-NEXT: ExpectedLatency: 14c
1448 # CHECK-NEXT: - Latency limited.
1449 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1450 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1451 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1452 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1453 # CHECK-NEXT: CortexA55UnitFPALU(0) = 16
1454 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1455 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1456 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1457 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1458 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1459 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1460 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1461 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1462 # CHECK-NEXT: Resource booking (@17c):
1463 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1464 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1465 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1466 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1467 # CHECK-NEXT: CortexA55UnitFPALU(0) = 16
1468 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1469 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1470 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1471 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1472 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1473 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1474 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1475 # CHECK-NEXT: getNextResourceCycle (@17c):
1476 # CHECK-NEXT: Instance 0 available @17c
1477 # CHECK-NEXT: Instance 1 available @17c
1478 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c
1479 # CHECK-NEXT: Queue BotQ.P:
1480 # CHECK-NEXT: Queue BotQ.A: 2
1481 # CHECK-NEXT: Scheduling SU(2) %0:fpr128 = COPY $q0
1482 # CHECK-NEXT: Ready @17c
1483 # CHECK-NEXT: CortexA55UnitALU +1x1u
1484 # CHECK-NEXT: Resource booking (@17c):
1485 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1486 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1487 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1488 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1489 # CHECK-NEXT: CortexA55UnitFPALU(0) = 16
1490 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1491 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1492 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1493 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1494 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1495 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1496 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1497 # CHECK-NEXT: getNextResourceCycle (@17c):
1498 # CHECK-NEXT: Instance 0 available @17c
1499 # CHECK-NEXT: Instance 1 available @17c
1500 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c
1501 # CHECK-NEXT: Resource booking (@17c):
1502 # CHECK-NEXT: CortexA55UnitALU(0) = 15
1503 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1504 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1505 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1506 # CHECK-NEXT: CortexA55UnitFPALU(0) = 16
1507 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1508 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1509 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1510 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1511 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1512 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1513 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1514 # CHECK-NEXT: getNextResourceCycle (@17c):
1515 # CHECK-NEXT: Instance 0 available @17c
1516 # CHECK-NEXT: Instance 1 available @17c
1517 # CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c
1518 # CHECK-NEXT: BotQ.A @17c
1519 # CHECK-NEXT: Retired: 13
1520 # CHECK-NEXT: Executed: 17c
1521 # CHECK-NEXT: Critical: 7c, 14 CortexA55UnitFPALU
1522 # CHECK-NEXT: ExpectedLatency: 14c
1523 # CHECK-NEXT: - Latency limited.
1524 # CHECK-NEXT: CortexA55UnitALU(0) = 17
1525 # CHECK-NEXT: CortexA55UnitALU(1) = 3
1526 # CHECK-NEXT: CortexA55UnitB(0) = 4294967295
1527 # CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
1528 # CHECK-NEXT: CortexA55UnitFPALU(0) = 16
1529 # CHECK-NEXT: CortexA55UnitFPALU(1) = 13
1530 # CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
1531 # CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
1532 # CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
1533 # CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
1534 # CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
1535 # CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
1536 # CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
1537 # CHECK-NEXT: *** Final schedule for %bb.0 ***
1538 # CHECK-NEXT: * Schedule table (BottomUp):
1539 # CHECK-NEXT: i: issue
1540 # CHECK-NEXT: x: resource booked
1541 # CHECK-NEXT: Cycle | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 |
1542 # CHECK-NEXT: SU(2) | i | | | | | | | | | | | | | | |
1543 # CHECK-NEXT: CortexA55UnitALU | x | | | | | | | | | | | | | | |
1544 # CHECK-NEXT: SU(4) | | i | | | | | | | | | | | | | |
1545 # CHECK-NEXT: CortexA55UnitFPALU | | x | x | | | | | | | | | | | | |
1546 # CHECK-NEXT: SU(1) | | | i | | | | | | | | | | | | |
1547 # CHECK-NEXT: CortexA55UnitALU | | | x | | | | | | | | | | | | |
1548 # CHECK-NEXT: SU(0) | | | | i | | | | | | | | | | | |
1549 # CHECK-NEXT: CortexA55UnitALU | | | | x | | | | | | | | | | | |
1550 # CHECK-NEXT: SU(3) | | | | | i | | | | | | | | | | |
1551 # CHECK-NEXT: CortexA55UnitFPALU | | | | | x | x | | | | | | | | | |
1552 # CHECK-NEXT: SU(6) | | | | | | i | | | | | | | | | |
1553 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | x | x | | | | | | | | |
1554 # CHECK-NEXT: SU(5) | | | | | | | | i | | | | | | | |
1555 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | x | x | | | | | | |
1556 # CHECK-NEXT: SU(7) | | | | | | | | i | | | | | | | |
1557 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | x | | | | | | | |
1558 # CHECK-NEXT: SU(9) | | | | | | | | | i | | | | | | |
1559 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | x | | | | | | |
1560 # CHECK-NEXT: SU(8) | | | | | | | | | | i | | | | | |
1561 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | | x | x | | | | |
1562 # CHECK-NEXT: SU(10) | | | | | | | | | | | i | | | | |
1563 # CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | | | x | x | | | |
1564 # CHECK-NEXT: SU(11) | | | | | | | | | | | | | | | i |
1565 # CHECK-NEXT: CortexA55UnitALU | | | | | | | | | | | | | | | x |
1566 # CHECK-NEXT: SU(12) | | | | | | | | | | | | | | | i |
1567 # CHECK-NEXT: CortexA55UnitALU | | | | | | | | | | | | | | | x |
1568 # CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 17]: %0:fpr128 = COPY $q0
1569 # CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 16]: %6:fpr128 = MOVIv2d_ns 17
1570 # CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 15]: %1:fpr128 = COPY $q1
1571 # CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 14]: %2:fpr128 = COPY $q2
1572 # CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 13]: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
1573 # CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 12]: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
1574 # CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 10]: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
1575 # CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 10]: %9:fpr64 = XTNv4i16 %8:fpr128
1576 # CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 9]: %11:fpr64 = XTNv4i16 %7:fpr128
1577 # CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 8]: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
1578 # CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 7]: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
1579 # CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 3]: $q0 = COPY %10:fpr128
1580 # CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 3]: $q1 = COPY %12:fpr128
1582 # CHECK-NEXT: ********** INTERVALS **********
1583 # CHECK-NEXT: B0 [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r
1584 # CHECK-NEXT: B1 [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r
1585 # CHECK-NEXT: B2 [0B,96r:0) 0@0B-phi
1586 # CHECK-NEXT: %0 [48r,168r:0) 0@48r weight:0.000000e+00
1587 # CHECK-NEXT: %1 [88r,120r:0) 0@88r weight:0.000000e+00
1588 # CHECK-NEXT: %2 [96r,128r:0) 0@96r weight:0.000000e+00
1589 # CHECK-NEXT: %3 [104r,176r:0) 0@104r weight:0.000000e+00
1590 # CHECK-NEXT: %6 [80r,128r:0) 0@80r weight:0.000000e+00
1591 # CHECK-NEXT: %7 [128r,160r:0) 0@128r weight:0.000000e+00
1592 # CHECK-NEXT: %8 [120r,136r:0) 0@120r weight:0.000000e+00
1593 # CHECK-NEXT: %9 [136r,168r:0) 0@136r weight:0.000000e+00
1594 # CHECK-NEXT: %10 [168r,192r:0) 0@168r weight:0.000000e+00
1595 # CHECK-NEXT: %11 [160r,176r:0) 0@160r weight:0.000000e+00
1596 # CHECK-NEXT: %12 [176r,208r:0) 0@176r weight:0.000000e+00
1597 # CHECK-NEXT: RegMasks:
1598 # CHECK-NEXT: ********** MACHINEINSTRS **********
1599 # CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness
1600 # CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2
1602 # CHECK-NEXT: 0B bb.0.entry:
1603 # CHECK-NEXT: liveins: $q0, $q1, $q2
1604 # CHECK-NEXT: 48B %0:fpr128 = COPY $q0
1605 # CHECK-NEXT: 80B %6:fpr128 = MOVIv2d_ns 17
1606 # CHECK-NEXT: 88B %1:fpr128 = COPY $q1
1607 # CHECK-NEXT: 96B %2:fpr128 = COPY $q2
1608 # CHECK-NEXT: 104B %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
1609 # CHECK-NEXT: 120B %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
1610 # CHECK-NEXT: 128B %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
1611 # CHECK-NEXT: 136B %9:fpr64 = XTNv4i16 %8:fpr128
1612 # CHECK-NEXT: 160B %11:fpr64 = XTNv4i16 %7:fpr128
1613 # CHECK-NEXT: 168B %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
1614 # CHECK-NEXT: 176B %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
1615 # CHECK-NEXT: 192B $q0 = COPY %10:fpr128
1616 # CHECK-NEXT: 208B $q1 = COPY %12:fpr128
1617 # CHECK-NEXT: 224B RET_ReallyLR implicit $q0, implicit $q1
1619 # CHECK-NEXT: # End machine code for function umull_and_v8i32.