1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -scheduler-stats -dispatch-stats -iterations=100 -timeline -timeline-max-iterations=1 < %s | FileCheck %s
46 # CHECK: [0] Code Region
48 # CHECK: Iterations: 100
49 # CHECK-NEXT: Instructions: 400
50 # CHECK-NEXT: Total Cycles: 207
51 # CHECK-NEXT: Total uOps: 400
53 # CHECK: Dispatch Width: 4
54 # CHECK-NEXT: uOps Per Cycle: 1.93
55 # CHECK-NEXT: IPC: 1.93
56 # CHECK-NEXT: Block RThroughput: 2.0
58 # CHECK: Instruction Info:
59 # CHECK-NEXT: [1]: #uOps
60 # CHECK-NEXT: [2]: Latency
61 # CHECK-NEXT: [3]: RThroughput
62 # CHECK-NEXT: [4]: MayLoad
63 # CHECK-NEXT: [5]: MayStore
64 # CHECK-NEXT: [6]: HasSideEffects (U)
66 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
67 # CHECK-NEXT: 1 5 0.50 * movb (%rax), %spl
68 # CHECK-NEXT: 1 5 0.50 * movb (%rcx), %bpl
69 # CHECK-NEXT: 1 5 0.50 * movb (%rdx), %sil
70 # CHECK-NEXT: 1 5 0.50 * movb (%rbx), %dil
72 # CHECK: Dynamic Dispatch Stall Cycles:
73 # CHECK-NEXT: RAT - Register unavailable: 0
74 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
75 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
76 # CHECK-NEXT: LQ - Load queue full: 0
77 # CHECK-NEXT: SQ - Store queue full: 0
78 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
80 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
81 # CHECK-NEXT: [# dispatched], [# cycles]
82 # CHECK-NEXT: 0, 33 (15.9%)
83 # CHECK-NEXT: 2, 148 (71.5%)
84 # CHECK-NEXT: 4, 26 (12.6%)
86 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
87 # CHECK-NEXT: [# issued], [# cycles]
88 # CHECK-NEXT: 0, 7 (3.4%)
89 # CHECK-NEXT: 2, 200 (96.6%)
91 # CHECK: Scheduler's queue usage:
92 # CHECK-NEXT: [1] Resource name.
93 # CHECK-NEXT: [2] Average number of used buffer entries.
94 # CHECK-NEXT: [3] Maximum number of used buffer entries.
95 # CHECK-NEXT: [4] Total number of buffer entries.
97 # CHECK: [1] [2] [3] [4]
98 # CHECK-NEXT: SBPortAny 45 54 54
101 # CHECK-NEXT: [0] - SBDivider
102 # CHECK-NEXT: [1] - SBFPDivider
103 # CHECK-NEXT: [2] - SBPort0
104 # CHECK-NEXT: [3] - SBPort1
105 # CHECK-NEXT: [4] - SBPort4
106 # CHECK-NEXT: [5] - SBPort5
107 # CHECK-NEXT: [6.0] - SBPort23
108 # CHECK-NEXT: [6.1] - SBPort23
110 # CHECK: Resource pressure per iteration:
111 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
112 # CHECK-NEXT: - - - - - - 2.00 2.00
114 # CHECK: Resource pressure by instruction:
115 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
116 # CHECK-NEXT: - - - - - - - 1.00 movb (%rax), %spl
117 # CHECK-NEXT: - - - - - - 1.00 - movb (%rcx), %bpl
118 # CHECK-NEXT: - - - - - - - 1.00 movb (%rdx), %sil
119 # CHECK-NEXT: - - - - - - 1.00 - movb (%rbx), %dil
121 # CHECK: Timeline view:
122 # CHECK-NEXT: Index 012345678
124 # CHECK: [0,0] DeeeeeER. movb (%rax), %spl
125 # CHECK-NEXT: [0,1] DeeeeeER. movb (%rcx), %bpl
126 # CHECK-NEXT: [0,2] D=eeeeeER movb (%rdx), %sil
127 # CHECK-NEXT: [0,3] D=eeeeeER movb (%rbx), %dil
129 # CHECK: Average Wait times (based on the timeline view):
130 # CHECK-NEXT: [0]: Executions
131 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
132 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
133 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
135 # CHECK: [0] [1] [2] [3]
136 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb (%rax), %spl
137 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
138 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
139 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movb (%rbx), %dil
140 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>
142 # CHECK: [1] Code Region
144 # CHECK: Iterations: 100
145 # CHECK-NEXT: Instructions: 400
146 # CHECK-NEXT: Total Cycles: 207
147 # CHECK-NEXT: Total uOps: 400
149 # CHECK: Dispatch Width: 4
150 # CHECK-NEXT: uOps Per Cycle: 1.93
151 # CHECK-NEXT: IPC: 1.93
152 # CHECK-NEXT: Block RThroughput: 2.0
154 # CHECK: Instruction Info:
155 # CHECK-NEXT: [1]: #uOps
156 # CHECK-NEXT: [2]: Latency
157 # CHECK-NEXT: [3]: RThroughput
158 # CHECK-NEXT: [4]: MayLoad
159 # CHECK-NEXT: [5]: MayStore
160 # CHECK-NEXT: [6]: HasSideEffects (U)
162 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
163 # CHECK-NEXT: 1 5 0.50 * movw (%rax), %sp
164 # CHECK-NEXT: 1 5 0.50 * movw (%rcx), %bp
165 # CHECK-NEXT: 1 5 0.50 * movw (%rdx), %si
166 # CHECK-NEXT: 1 5 0.50 * movw (%rbx), %di
168 # CHECK: Dynamic Dispatch Stall Cycles:
169 # CHECK-NEXT: RAT - Register unavailable: 0
170 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
171 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
172 # CHECK-NEXT: LQ - Load queue full: 0
173 # CHECK-NEXT: SQ - Store queue full: 0
174 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
176 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
177 # CHECK-NEXT: [# dispatched], [# cycles]
178 # CHECK-NEXT: 0, 33 (15.9%)
179 # CHECK-NEXT: 2, 148 (71.5%)
180 # CHECK-NEXT: 4, 26 (12.6%)
182 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
183 # CHECK-NEXT: [# issued], [# cycles]
184 # CHECK-NEXT: 0, 7 (3.4%)
185 # CHECK-NEXT: 2, 200 (96.6%)
187 # CHECK: Scheduler's queue usage:
188 # CHECK-NEXT: [1] Resource name.
189 # CHECK-NEXT: [2] Average number of used buffer entries.
190 # CHECK-NEXT: [3] Maximum number of used buffer entries.
191 # CHECK-NEXT: [4] Total number of buffer entries.
193 # CHECK: [1] [2] [3] [4]
194 # CHECK-NEXT: SBPortAny 45 54 54
197 # CHECK-NEXT: [0] - SBDivider
198 # CHECK-NEXT: [1] - SBFPDivider
199 # CHECK-NEXT: [2] - SBPort0
200 # CHECK-NEXT: [3] - SBPort1
201 # CHECK-NEXT: [4] - SBPort4
202 # CHECK-NEXT: [5] - SBPort5
203 # CHECK-NEXT: [6.0] - SBPort23
204 # CHECK-NEXT: [6.1] - SBPort23
206 # CHECK: Resource pressure per iteration:
207 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
208 # CHECK-NEXT: - - - - - - 2.00 2.00
210 # CHECK: Resource pressure by instruction:
211 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
212 # CHECK-NEXT: - - - - - - - 1.00 movw (%rax), %sp
213 # CHECK-NEXT: - - - - - - 1.00 - movw (%rcx), %bp
214 # CHECK-NEXT: - - - - - - - 1.00 movw (%rdx), %si
215 # CHECK-NEXT: - - - - - - 1.00 - movw (%rbx), %di
217 # CHECK: Timeline view:
218 # CHECK-NEXT: Index 012345678
220 # CHECK: [0,0] DeeeeeER. movw (%rax), %sp
221 # CHECK-NEXT: [0,1] DeeeeeER. movw (%rcx), %bp
222 # CHECK-NEXT: [0,2] D=eeeeeER movw (%rdx), %si
223 # CHECK-NEXT: [0,3] D=eeeeeER movw (%rbx), %di
225 # CHECK: Average Wait times (based on the timeline view):
226 # CHECK-NEXT: [0]: Executions
227 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
228 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
229 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
231 # CHECK: [0] [1] [2] [3]
232 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw (%rax), %sp
233 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
234 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
235 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movw (%rbx), %di
236 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>
238 # CHECK: [2] Code Region
240 # CHECK: Iterations: 100
241 # CHECK-NEXT: Instructions: 400
242 # CHECK-NEXT: Total Cycles: 207
243 # CHECK-NEXT: Total uOps: 400
245 # CHECK: Dispatch Width: 4
246 # CHECK-NEXT: uOps Per Cycle: 1.93
247 # CHECK-NEXT: IPC: 1.93
248 # CHECK-NEXT: Block RThroughput: 2.0
250 # CHECK: Instruction Info:
251 # CHECK-NEXT: [1]: #uOps
252 # CHECK-NEXT: [2]: Latency
253 # CHECK-NEXT: [3]: RThroughput
254 # CHECK-NEXT: [4]: MayLoad
255 # CHECK-NEXT: [5]: MayStore
256 # CHECK-NEXT: [6]: HasSideEffects (U)
258 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
259 # CHECK-NEXT: 1 5 0.50 * movl (%rax), %esp
260 # CHECK-NEXT: 1 5 0.50 * movl (%rcx), %ebp
261 # CHECK-NEXT: 1 5 0.50 * movl (%rdx), %esi
262 # CHECK-NEXT: 1 5 0.50 * movl (%rbx), %edi
264 # CHECK: Dynamic Dispatch Stall Cycles:
265 # CHECK-NEXT: RAT - Register unavailable: 0
266 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
267 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
268 # CHECK-NEXT: LQ - Load queue full: 0
269 # CHECK-NEXT: SQ - Store queue full: 0
270 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
272 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
273 # CHECK-NEXT: [# dispatched], [# cycles]
274 # CHECK-NEXT: 0, 33 (15.9%)
275 # CHECK-NEXT: 2, 148 (71.5%)
276 # CHECK-NEXT: 4, 26 (12.6%)
278 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
279 # CHECK-NEXT: [# issued], [# cycles]
280 # CHECK-NEXT: 0, 7 (3.4%)
281 # CHECK-NEXT: 2, 200 (96.6%)
283 # CHECK: Scheduler's queue usage:
284 # CHECK-NEXT: [1] Resource name.
285 # CHECK-NEXT: [2] Average number of used buffer entries.
286 # CHECK-NEXT: [3] Maximum number of used buffer entries.
287 # CHECK-NEXT: [4] Total number of buffer entries.
289 # CHECK: [1] [2] [3] [4]
290 # CHECK-NEXT: SBPortAny 45 54 54
293 # CHECK-NEXT: [0] - SBDivider
294 # CHECK-NEXT: [1] - SBFPDivider
295 # CHECK-NEXT: [2] - SBPort0
296 # CHECK-NEXT: [3] - SBPort1
297 # CHECK-NEXT: [4] - SBPort4
298 # CHECK-NEXT: [5] - SBPort5
299 # CHECK-NEXT: [6.0] - SBPort23
300 # CHECK-NEXT: [6.1] - SBPort23
302 # CHECK: Resource pressure per iteration:
303 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
304 # CHECK-NEXT: - - - - - - 2.00 2.00
306 # CHECK: Resource pressure by instruction:
307 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
308 # CHECK-NEXT: - - - - - - - 1.00 movl (%rax), %esp
309 # CHECK-NEXT: - - - - - - 1.00 - movl (%rcx), %ebp
310 # CHECK-NEXT: - - - - - - - 1.00 movl (%rdx), %esi
311 # CHECK-NEXT: - - - - - - 1.00 - movl (%rbx), %edi
313 # CHECK: Timeline view:
314 # CHECK-NEXT: Index 012345678
316 # CHECK: [0,0] DeeeeeER. movl (%rax), %esp
317 # CHECK-NEXT: [0,1] DeeeeeER. movl (%rcx), %ebp
318 # CHECK-NEXT: [0,2] D=eeeeeER movl (%rdx), %esi
319 # CHECK-NEXT: [0,3] D=eeeeeER movl (%rbx), %edi
321 # CHECK: Average Wait times (based on the timeline view):
322 # CHECK-NEXT: [0]: Executions
323 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
324 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
325 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
327 # CHECK: [0] [1] [2] [3]
328 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl (%rax), %esp
329 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
330 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
331 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movl (%rbx), %edi
332 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>
334 # CHECK: [3] Code Region
336 # CHECK: Iterations: 100
337 # CHECK-NEXT: Instructions: 400
338 # CHECK-NEXT: Total Cycles: 207
339 # CHECK-NEXT: Total uOps: 400
341 # CHECK: Dispatch Width: 4
342 # CHECK-NEXT: uOps Per Cycle: 1.93
343 # CHECK-NEXT: IPC: 1.93
344 # CHECK-NEXT: Block RThroughput: 2.0
346 # CHECK: Instruction Info:
347 # CHECK-NEXT: [1]: #uOps
348 # CHECK-NEXT: [2]: Latency
349 # CHECK-NEXT: [3]: RThroughput
350 # CHECK-NEXT: [4]: MayLoad
351 # CHECK-NEXT: [5]: MayStore
352 # CHECK-NEXT: [6]: HasSideEffects (U)
354 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
355 # CHECK-NEXT: 1 5 0.50 * movq (%rax), %rsp
356 # CHECK-NEXT: 1 5 0.50 * movq (%rcx), %rbp
357 # CHECK-NEXT: 1 5 0.50 * movq (%rdx), %rsi
358 # CHECK-NEXT: 1 5 0.50 * movq (%rbx), %rdi
360 # CHECK: Dynamic Dispatch Stall Cycles:
361 # CHECK-NEXT: RAT - Register unavailable: 0
362 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
363 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
364 # CHECK-NEXT: LQ - Load queue full: 0
365 # CHECK-NEXT: SQ - Store queue full: 0
366 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
368 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
369 # CHECK-NEXT: [# dispatched], [# cycles]
370 # CHECK-NEXT: 0, 33 (15.9%)
371 # CHECK-NEXT: 2, 148 (71.5%)
372 # CHECK-NEXT: 4, 26 (12.6%)
374 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
375 # CHECK-NEXT: [# issued], [# cycles]
376 # CHECK-NEXT: 0, 7 (3.4%)
377 # CHECK-NEXT: 2, 200 (96.6%)
379 # CHECK: Scheduler's queue usage:
380 # CHECK-NEXT: [1] Resource name.
381 # CHECK-NEXT: [2] Average number of used buffer entries.
382 # CHECK-NEXT: [3] Maximum number of used buffer entries.
383 # CHECK-NEXT: [4] Total number of buffer entries.
385 # CHECK: [1] [2] [3] [4]
386 # CHECK-NEXT: SBPortAny 45 54 54
389 # CHECK-NEXT: [0] - SBDivider
390 # CHECK-NEXT: [1] - SBFPDivider
391 # CHECK-NEXT: [2] - SBPort0
392 # CHECK-NEXT: [3] - SBPort1
393 # CHECK-NEXT: [4] - SBPort4
394 # CHECK-NEXT: [5] - SBPort5
395 # CHECK-NEXT: [6.0] - SBPort23
396 # CHECK-NEXT: [6.1] - SBPort23
398 # CHECK: Resource pressure per iteration:
399 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
400 # CHECK-NEXT: - - - - - - 2.00 2.00
402 # CHECK: Resource pressure by instruction:
403 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
404 # CHECK-NEXT: - - - - - - - 1.00 movq (%rax), %rsp
405 # CHECK-NEXT: - - - - - - 1.00 - movq (%rcx), %rbp
406 # CHECK-NEXT: - - - - - - - 1.00 movq (%rdx), %rsi
407 # CHECK-NEXT: - - - - - - 1.00 - movq (%rbx), %rdi
409 # CHECK: Timeline view:
410 # CHECK-NEXT: Index 012345678
412 # CHECK: [0,0] DeeeeeER. movq (%rax), %rsp
413 # CHECK-NEXT: [0,1] DeeeeeER. movq (%rcx), %rbp
414 # CHECK-NEXT: [0,2] D=eeeeeER movq (%rdx), %rsi
415 # CHECK-NEXT: [0,3] D=eeeeeER movq (%rbx), %rdi
417 # CHECK: Average Wait times (based on the timeline view):
418 # CHECK-NEXT: [0]: Executions
419 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
420 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
421 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
423 # CHECK: [0] [1] [2] [3]
424 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq (%rax), %rsp
425 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
426 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
427 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movq (%rbx), %rdi
428 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>
430 # CHECK: [4] Code Region
432 # CHECK: Iterations: 100
433 # CHECK-NEXT: Instructions: 400
434 # CHECK-NEXT: Total Cycles: 207
435 # CHECK-NEXT: Total uOps: 400
437 # CHECK: Dispatch Width: 4
438 # CHECK-NEXT: uOps Per Cycle: 1.93
439 # CHECK-NEXT: IPC: 1.93
440 # CHECK-NEXT: Block RThroughput: 2.0
442 # CHECK: Instruction Info:
443 # CHECK-NEXT: [1]: #uOps
444 # CHECK-NEXT: [2]: Latency
445 # CHECK-NEXT: [3]: RThroughput
446 # CHECK-NEXT: [4]: MayLoad
447 # CHECK-NEXT: [5]: MayStore
448 # CHECK-NEXT: [6]: HasSideEffects (U)
450 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
451 # CHECK-NEXT: 1 5 0.50 * movd (%rax), %mm0
452 # CHECK-NEXT: 1 5 0.50 * movd (%rcx), %mm1
453 # CHECK-NEXT: 1 5 0.50 * movd (%rdx), %mm2
454 # CHECK-NEXT: 1 5 0.50 * movd (%rbx), %mm3
456 # CHECK: Dynamic Dispatch Stall Cycles:
457 # CHECK-NEXT: RAT - Register unavailable: 0
458 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
459 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
460 # CHECK-NEXT: LQ - Load queue full: 0
461 # CHECK-NEXT: SQ - Store queue full: 0
462 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
464 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
465 # CHECK-NEXT: [# dispatched], [# cycles]
466 # CHECK-NEXT: 0, 33 (15.9%)
467 # CHECK-NEXT: 2, 148 (71.5%)
468 # CHECK-NEXT: 4, 26 (12.6%)
470 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
471 # CHECK-NEXT: [# issued], [# cycles]
472 # CHECK-NEXT: 0, 7 (3.4%)
473 # CHECK-NEXT: 2, 200 (96.6%)
475 # CHECK: Scheduler's queue usage:
476 # CHECK-NEXT: [1] Resource name.
477 # CHECK-NEXT: [2] Average number of used buffer entries.
478 # CHECK-NEXT: [3] Maximum number of used buffer entries.
479 # CHECK-NEXT: [4] Total number of buffer entries.
481 # CHECK: [1] [2] [3] [4]
482 # CHECK-NEXT: SBPortAny 45 54 54
485 # CHECK-NEXT: [0] - SBDivider
486 # CHECK-NEXT: [1] - SBFPDivider
487 # CHECK-NEXT: [2] - SBPort0
488 # CHECK-NEXT: [3] - SBPort1
489 # CHECK-NEXT: [4] - SBPort4
490 # CHECK-NEXT: [5] - SBPort5
491 # CHECK-NEXT: [6.0] - SBPort23
492 # CHECK-NEXT: [6.1] - SBPort23
494 # CHECK: Resource pressure per iteration:
495 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
496 # CHECK-NEXT: - - - - - - 2.00 2.00
498 # CHECK: Resource pressure by instruction:
499 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
500 # CHECK-NEXT: - - - - - - - 1.00 movd (%rax), %mm0
501 # CHECK-NEXT: - - - - - - 1.00 - movd (%rcx), %mm1
502 # CHECK-NEXT: - - - - - - - 1.00 movd (%rdx), %mm2
503 # CHECK-NEXT: - - - - - - 1.00 - movd (%rbx), %mm3
505 # CHECK: Timeline view:
506 # CHECK-NEXT: Index 012345678
508 # CHECK: [0,0] DeeeeeER. movd (%rax), %mm0
509 # CHECK-NEXT: [0,1] DeeeeeER. movd (%rcx), %mm1
510 # CHECK-NEXT: [0,2] D=eeeeeER movd (%rdx), %mm2
511 # CHECK-NEXT: [0,3] D=eeeeeER movd (%rbx), %mm3
513 # CHECK: Average Wait times (based on the timeline view):
514 # CHECK-NEXT: [0]: Executions
515 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
516 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
517 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
519 # CHECK: [0] [1] [2] [3]
520 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd (%rax), %mm0
521 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
522 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
523 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movd (%rbx), %mm3
524 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>
526 # CHECK: [5] Code Region
528 # CHECK: Iterations: 100
529 # CHECK-NEXT: Instructions: 400
530 # CHECK-NEXT: Total Cycles: 208
531 # CHECK-NEXT: Total uOps: 400
533 # CHECK: Dispatch Width: 4
534 # CHECK-NEXT: uOps Per Cycle: 1.92
535 # CHECK-NEXT: IPC: 1.92
536 # CHECK-NEXT: Block RThroughput: 2.0
538 # CHECK: Instruction Info:
539 # CHECK-NEXT: [1]: #uOps
540 # CHECK-NEXT: [2]: Latency
541 # CHECK-NEXT: [3]: RThroughput
542 # CHECK-NEXT: [4]: MayLoad
543 # CHECK-NEXT: [5]: MayStore
544 # CHECK-NEXT: [6]: HasSideEffects (U)
546 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
547 # CHECK-NEXT: 1 6 0.50 * movaps (%rax), %xmm0
548 # CHECK-NEXT: 1 6 0.50 * movaps (%rcx), %xmm1
549 # CHECK-NEXT: 1 6 0.50 * movaps (%rdx), %xmm2
550 # CHECK-NEXT: 1 6 0.50 * movaps (%rbx), %xmm3
552 # CHECK: Dynamic Dispatch Stall Cycles:
553 # CHECK-NEXT: RAT - Register unavailable: 0
554 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
555 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (70.7%)
556 # CHECK-NEXT: LQ - Load queue full: 0
557 # CHECK-NEXT: SQ - Store queue full: 0
558 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
560 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
561 # CHECK-NEXT: [# dispatched], [# cycles]
562 # CHECK-NEXT: 0, 34 (16.3%)
563 # CHECK-NEXT: 2, 148 (71.2%)
564 # CHECK-NEXT: 4, 26 (12.5%)
566 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
567 # CHECK-NEXT: [# issued], [# cycles]
568 # CHECK-NEXT: 0, 8 (3.8%)
569 # CHECK-NEXT: 2, 200 (96.2%)
571 # CHECK: Scheduler's queue usage:
572 # CHECK-NEXT: [1] Resource name.
573 # CHECK-NEXT: [2] Average number of used buffer entries.
574 # CHECK-NEXT: [3] Maximum number of used buffer entries.
575 # CHECK-NEXT: [4] Total number of buffer entries.
577 # CHECK: [1] [2] [3] [4]
578 # CHECK-NEXT: SBPortAny 45 54 54
581 # CHECK-NEXT: [0] - SBDivider
582 # CHECK-NEXT: [1] - SBFPDivider
583 # CHECK-NEXT: [2] - SBPort0
584 # CHECK-NEXT: [3] - SBPort1
585 # CHECK-NEXT: [4] - SBPort4
586 # CHECK-NEXT: [5] - SBPort5
587 # CHECK-NEXT: [6.0] - SBPort23
588 # CHECK-NEXT: [6.1] - SBPort23
590 # CHECK: Resource pressure per iteration:
591 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
592 # CHECK-NEXT: - - - - - - 2.00 2.00
594 # CHECK: Resource pressure by instruction:
595 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
596 # CHECK-NEXT: - - - - - - - 1.00 movaps (%rax), %xmm0
597 # CHECK-NEXT: - - - - - - 1.00 - movaps (%rcx), %xmm1
598 # CHECK-NEXT: - - - - - - - 1.00 movaps (%rdx), %xmm2
599 # CHECK-NEXT: - - - - - - 1.00 - movaps (%rbx), %xmm3
601 # CHECK: Timeline view:
602 # CHECK-NEXT: Index 0123456789
604 # CHECK: [0,0] DeeeeeeER. movaps (%rax), %xmm0
605 # CHECK-NEXT: [0,1] DeeeeeeER. movaps (%rcx), %xmm1
606 # CHECK-NEXT: [0,2] D=eeeeeeER movaps (%rdx), %xmm2
607 # CHECK-NEXT: [0,3] D=eeeeeeER movaps (%rbx), %xmm3
609 # CHECK: Average Wait times (based on the timeline view):
610 # CHECK-NEXT: [0]: Executions
611 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
612 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
613 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
615 # CHECK: [0] [1] [2] [3]
616 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps (%rax), %xmm0
617 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
618 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
619 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movaps (%rbx), %xmm3
620 # CHECK-NEXT: 1 1.5 1.5 0.0 <total>