1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -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: 306
51 # CHECK-NEXT: Total uOps: 400
53 # CHECK: Dispatch Width: 4
54 # CHECK-NEXT: uOps Per Cycle: 1.31
55 # CHECK-NEXT: IPC: 1.31
56 # CHECK-NEXT: Block RThroughput: 3.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 1 1.00 * movb %spl, (%rax)
68 # CHECK-NEXT: 1 5 1.00 * movb (%rcx), %bpl
69 # CHECK-NEXT: 1 5 1.00 * movb (%rdx), %sil
70 # CHECK-NEXT: 1 1 1.00 * movb %dil, (%rbx)
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: 256 (83.7%)
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
79 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
81 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
82 # CHECK-NEXT: [# dispatched], [# cycles]
83 # CHECK-NEXT: 0, 35 (11.4%)
84 # CHECK-NEXT: 1, 171 (55.9%)
85 # CHECK-NEXT: 2, 85 (27.8%)
86 # CHECK-NEXT: 3, 1 (0.3%)
87 # CHECK-NEXT: 4, 14 (4.6%)
89 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
90 # CHECK-NEXT: [# issued], [# cycles]
91 # CHECK-NEXT: 0, 6 (2.0%)
92 # CHECK-NEXT: 1, 200 (65.4%)
93 # CHECK-NEXT: 2, 100 (32.7%)
95 # CHECK: Scheduler's queue usage:
96 # CHECK-NEXT: [1] Resource name.
97 # CHECK-NEXT: [2] Average number of used buffer entries.
98 # CHECK-NEXT: [3] Maximum number of used buffer entries.
99 # CHECK-NEXT: [4] Total number of buffer entries.
101 # CHECK: [1] [2] [3] [4]
102 # CHECK-NEXT: PdEX 36 40 40
103 # CHECK-NEXT: PdFPU 0 0 64
104 # CHECK-NEXT: PdLoad 21 24 40
105 # CHECK-NEXT: PdStore 18 21 24
108 # CHECK-NEXT: [0.0] - PdAGLU01
109 # CHECK-NEXT: [0.1] - PdAGLU01
110 # CHECK-NEXT: [1] - PdBranch
111 # CHECK-NEXT: [2] - PdCount
112 # CHECK-NEXT: [3] - PdDiv
113 # CHECK-NEXT: [4] - PdEX0
114 # CHECK-NEXT: [5] - PdEX1
115 # CHECK-NEXT: [6] - PdFPCVT
116 # CHECK-NEXT: [7.0] - PdFPFMA
117 # CHECK-NEXT: [7.1] - PdFPFMA
118 # CHECK-NEXT: [8.0] - PdFPMAL
119 # CHECK-NEXT: [8.1] - PdFPMAL
120 # CHECK-NEXT: [9] - PdFPMMA
121 # CHECK-NEXT: [10] - PdFPSTO
122 # CHECK-NEXT: [11] - PdFPU0
123 # CHECK-NEXT: [12] - PdFPU1
124 # CHECK-NEXT: [13] - PdFPU2
125 # CHECK-NEXT: [14] - PdFPU3
126 # CHECK-NEXT: [15] - PdFPXBR
127 # CHECK-NEXT: [16.0] - PdLoad
128 # CHECK-NEXT: [16.1] - PdLoad
129 # CHECK-NEXT: [17] - PdMul
130 # CHECK-NEXT: [18] - PdStore
132 # CHECK: Resource pressure per iteration:
133 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
134 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
136 # CHECK: Resource pressure by instruction:
137 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
138 # CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movb %spl, (%rax)
139 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rcx), %bpl
140 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rdx), %sil
141 # CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movb %dil, (%rbx)
143 # CHECK: Timeline view:
144 # CHECK-NEXT: Index 012345678
146 # CHECK: [0,0] DeER . . movb %spl, (%rax)
147 # CHECK-NEXT: [0,1] DeeeeeER. movb (%rcx), %bpl
148 # CHECK-NEXT: [0,2] D=eeeeeER movb (%rdx), %sil
149 # CHECK-NEXT: [0,3] D==eE---R movb %dil, (%rbx)
151 # CHECK: Average Wait times (based on the timeline view):
152 # CHECK-NEXT: [0]: Executions
153 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
154 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
155 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
157 # CHECK: [0] [1] [2] [3]
158 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb %spl, (%rax)
159 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
160 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
161 # CHECK-NEXT: 3. 1 3.0 1.0 3.0 movb %dil, (%rbx)
162 # CHECK-NEXT: 1 1.8 1.3 0.8 <total>
164 # CHECK: [1] Code Region
166 # CHECK: Iterations: 100
167 # CHECK-NEXT: Instructions: 400
168 # CHECK-NEXT: Total Cycles: 306
169 # CHECK-NEXT: Total uOps: 400
171 # CHECK: Dispatch Width: 4
172 # CHECK-NEXT: uOps Per Cycle: 1.31
173 # CHECK-NEXT: IPC: 1.31
174 # CHECK-NEXT: Block RThroughput: 3.0
176 # CHECK: Instruction Info:
177 # CHECK-NEXT: [1]: #uOps
178 # CHECK-NEXT: [2]: Latency
179 # CHECK-NEXT: [3]: RThroughput
180 # CHECK-NEXT: [4]: MayLoad
181 # CHECK-NEXT: [5]: MayStore
182 # CHECK-NEXT: [6]: HasSideEffects (U)
184 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
185 # CHECK-NEXT: 1 1 1.00 * movw %sp, (%rax)
186 # CHECK-NEXT: 1 5 1.00 * movw (%rcx), %bp
187 # CHECK-NEXT: 1 5 1.00 * movw (%rdx), %si
188 # CHECK-NEXT: 1 1 1.00 * movw %di, (%rbx)
190 # CHECK: Dynamic Dispatch Stall Cycles:
191 # CHECK-NEXT: RAT - Register unavailable: 0
192 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
193 # CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%)
194 # CHECK-NEXT: LQ - Load queue full: 0
195 # CHECK-NEXT: SQ - Store queue full: 0
196 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
197 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
199 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
200 # CHECK-NEXT: [# dispatched], [# cycles]
201 # CHECK-NEXT: 0, 35 (11.4%)
202 # CHECK-NEXT: 1, 171 (55.9%)
203 # CHECK-NEXT: 2, 85 (27.8%)
204 # CHECK-NEXT: 3, 1 (0.3%)
205 # CHECK-NEXT: 4, 14 (4.6%)
207 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
208 # CHECK-NEXT: [# issued], [# cycles]
209 # CHECK-NEXT: 0, 6 (2.0%)
210 # CHECK-NEXT: 1, 200 (65.4%)
211 # CHECK-NEXT: 2, 100 (32.7%)
213 # CHECK: Scheduler's queue usage:
214 # CHECK-NEXT: [1] Resource name.
215 # CHECK-NEXT: [2] Average number of used buffer entries.
216 # CHECK-NEXT: [3] Maximum number of used buffer entries.
217 # CHECK-NEXT: [4] Total number of buffer entries.
219 # CHECK: [1] [2] [3] [4]
220 # CHECK-NEXT: PdEX 36 40 40
221 # CHECK-NEXT: PdFPU 0 0 64
222 # CHECK-NEXT: PdLoad 21 24 40
223 # CHECK-NEXT: PdStore 18 21 24
226 # CHECK-NEXT: [0.0] - PdAGLU01
227 # CHECK-NEXT: [0.1] - PdAGLU01
228 # CHECK-NEXT: [1] - PdBranch
229 # CHECK-NEXT: [2] - PdCount
230 # CHECK-NEXT: [3] - PdDiv
231 # CHECK-NEXT: [4] - PdEX0
232 # CHECK-NEXT: [5] - PdEX1
233 # CHECK-NEXT: [6] - PdFPCVT
234 # CHECK-NEXT: [7.0] - PdFPFMA
235 # CHECK-NEXT: [7.1] - PdFPFMA
236 # CHECK-NEXT: [8.0] - PdFPMAL
237 # CHECK-NEXT: [8.1] - PdFPMAL
238 # CHECK-NEXT: [9] - PdFPMMA
239 # CHECK-NEXT: [10] - PdFPSTO
240 # CHECK-NEXT: [11] - PdFPU0
241 # CHECK-NEXT: [12] - PdFPU1
242 # CHECK-NEXT: [13] - PdFPU2
243 # CHECK-NEXT: [14] - PdFPU3
244 # CHECK-NEXT: [15] - PdFPXBR
245 # CHECK-NEXT: [16.0] - PdLoad
246 # CHECK-NEXT: [16.1] - PdLoad
247 # CHECK-NEXT: [17] - PdMul
248 # CHECK-NEXT: [18] - PdStore
250 # CHECK: Resource pressure per iteration:
251 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
252 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
254 # CHECK: Resource pressure by instruction:
255 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
256 # CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movw %sp, (%rax)
257 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rcx), %bp
258 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rdx), %si
259 # CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movw %di, (%rbx)
261 # CHECK: Timeline view:
262 # CHECK-NEXT: Index 012345678
264 # CHECK: [0,0] DeER . . movw %sp, (%rax)
265 # CHECK-NEXT: [0,1] DeeeeeER. movw (%rcx), %bp
266 # CHECK-NEXT: [0,2] D=eeeeeER movw (%rdx), %si
267 # CHECK-NEXT: [0,3] D==eE---R movw %di, (%rbx)
269 # CHECK: Average Wait times (based on the timeline view):
270 # CHECK-NEXT: [0]: Executions
271 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
272 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
273 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
275 # CHECK: [0] [1] [2] [3]
276 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw %sp, (%rax)
277 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
278 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
279 # CHECK-NEXT: 3. 1 3.0 1.0 3.0 movw %di, (%rbx)
280 # CHECK-NEXT: 1 1.8 1.3 0.8 <total>
282 # CHECK: [2] Code Region
284 # CHECK: Iterations: 100
285 # CHECK-NEXT: Instructions: 400
286 # CHECK-NEXT: Total Cycles: 306
287 # CHECK-NEXT: Total uOps: 400
289 # CHECK: Dispatch Width: 4
290 # CHECK-NEXT: uOps Per Cycle: 1.31
291 # CHECK-NEXT: IPC: 1.31
292 # CHECK-NEXT: Block RThroughput: 3.0
294 # CHECK: Instruction Info:
295 # CHECK-NEXT: [1]: #uOps
296 # CHECK-NEXT: [2]: Latency
297 # CHECK-NEXT: [3]: RThroughput
298 # CHECK-NEXT: [4]: MayLoad
299 # CHECK-NEXT: [5]: MayStore
300 # CHECK-NEXT: [6]: HasSideEffects (U)
302 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
303 # CHECK-NEXT: 1 1 1.00 * movl %esp, (%rax)
304 # CHECK-NEXT: 1 5 1.00 * movl (%rcx), %ebp
305 # CHECK-NEXT: 1 5 1.00 * movl (%rdx), %esi
306 # CHECK-NEXT: 1 1 1.00 * movl %edi, (%rbx)
308 # CHECK: Dynamic Dispatch Stall Cycles:
309 # CHECK-NEXT: RAT - Register unavailable: 0
310 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
311 # CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%)
312 # CHECK-NEXT: LQ - Load queue full: 0
313 # CHECK-NEXT: SQ - Store queue full: 0
314 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
315 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
317 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
318 # CHECK-NEXT: [# dispatched], [# cycles]
319 # CHECK-NEXT: 0, 35 (11.4%)
320 # CHECK-NEXT: 1, 171 (55.9%)
321 # CHECK-NEXT: 2, 85 (27.8%)
322 # CHECK-NEXT: 3, 1 (0.3%)
323 # CHECK-NEXT: 4, 14 (4.6%)
325 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
326 # CHECK-NEXT: [# issued], [# cycles]
327 # CHECK-NEXT: 0, 6 (2.0%)
328 # CHECK-NEXT: 1, 200 (65.4%)
329 # CHECK-NEXT: 2, 100 (32.7%)
331 # CHECK: Scheduler's queue usage:
332 # CHECK-NEXT: [1] Resource name.
333 # CHECK-NEXT: [2] Average number of used buffer entries.
334 # CHECK-NEXT: [3] Maximum number of used buffer entries.
335 # CHECK-NEXT: [4] Total number of buffer entries.
337 # CHECK: [1] [2] [3] [4]
338 # CHECK-NEXT: PdEX 36 40 40
339 # CHECK-NEXT: PdFPU 0 0 64
340 # CHECK-NEXT: PdLoad 21 24 40
341 # CHECK-NEXT: PdStore 18 21 24
344 # CHECK-NEXT: [0.0] - PdAGLU01
345 # CHECK-NEXT: [0.1] - PdAGLU01
346 # CHECK-NEXT: [1] - PdBranch
347 # CHECK-NEXT: [2] - PdCount
348 # CHECK-NEXT: [3] - PdDiv
349 # CHECK-NEXT: [4] - PdEX0
350 # CHECK-NEXT: [5] - PdEX1
351 # CHECK-NEXT: [6] - PdFPCVT
352 # CHECK-NEXT: [7.0] - PdFPFMA
353 # CHECK-NEXT: [7.1] - PdFPFMA
354 # CHECK-NEXT: [8.0] - PdFPMAL
355 # CHECK-NEXT: [8.1] - PdFPMAL
356 # CHECK-NEXT: [9] - PdFPMMA
357 # CHECK-NEXT: [10] - PdFPSTO
358 # CHECK-NEXT: [11] - PdFPU0
359 # CHECK-NEXT: [12] - PdFPU1
360 # CHECK-NEXT: [13] - PdFPU2
361 # CHECK-NEXT: [14] - PdFPU3
362 # CHECK-NEXT: [15] - PdFPXBR
363 # CHECK-NEXT: [16.0] - PdLoad
364 # CHECK-NEXT: [16.1] - PdLoad
365 # CHECK-NEXT: [17] - PdMul
366 # CHECK-NEXT: [18] - PdStore
368 # CHECK: Resource pressure per iteration:
369 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
370 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
372 # CHECK: Resource pressure by instruction:
373 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
374 # CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movl %esp, (%rax)
375 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rcx), %ebp
376 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rdx), %esi
377 # CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movl %edi, (%rbx)
379 # CHECK: Timeline view:
380 # CHECK-NEXT: Index 012345678
382 # CHECK: [0,0] DeER . . movl %esp, (%rax)
383 # CHECK-NEXT: [0,1] DeeeeeER. movl (%rcx), %ebp
384 # CHECK-NEXT: [0,2] D=eeeeeER movl (%rdx), %esi
385 # CHECK-NEXT: [0,3] D==eE---R movl %edi, (%rbx)
387 # CHECK: Average Wait times (based on the timeline view):
388 # CHECK-NEXT: [0]: Executions
389 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
390 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
391 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
393 # CHECK: [0] [1] [2] [3]
394 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl %esp, (%rax)
395 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
396 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
397 # CHECK-NEXT: 3. 1 3.0 1.0 3.0 movl %edi, (%rbx)
398 # CHECK-NEXT: 1 1.8 1.3 0.8 <total>
400 # CHECK: [3] Code Region
402 # CHECK: Iterations: 100
403 # CHECK-NEXT: Instructions: 400
404 # CHECK-NEXT: Total Cycles: 306
405 # CHECK-NEXT: Total uOps: 400
407 # CHECK: Dispatch Width: 4
408 # CHECK-NEXT: uOps Per Cycle: 1.31
409 # CHECK-NEXT: IPC: 1.31
410 # CHECK-NEXT: Block RThroughput: 3.0
412 # CHECK: Instruction Info:
413 # CHECK-NEXT: [1]: #uOps
414 # CHECK-NEXT: [2]: Latency
415 # CHECK-NEXT: [3]: RThroughput
416 # CHECK-NEXT: [4]: MayLoad
417 # CHECK-NEXT: [5]: MayStore
418 # CHECK-NEXT: [6]: HasSideEffects (U)
420 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
421 # CHECK-NEXT: 1 1 1.00 * movq %rsp, (%rax)
422 # CHECK-NEXT: 1 5 1.00 * movq (%rcx), %rbp
423 # CHECK-NEXT: 1 5 1.00 * movq (%rdx), %rsi
424 # CHECK-NEXT: 1 1 1.00 * movq %rdi, (%rbx)
426 # CHECK: Dynamic Dispatch Stall Cycles:
427 # CHECK-NEXT: RAT - Register unavailable: 0
428 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
429 # CHECK-NEXT: SCHEDQ - Scheduler full: 256 (83.7%)
430 # CHECK-NEXT: LQ - Load queue full: 0
431 # CHECK-NEXT: SQ - Store queue full: 0
432 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
433 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
435 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
436 # CHECK-NEXT: [# dispatched], [# cycles]
437 # CHECK-NEXT: 0, 35 (11.4%)
438 # CHECK-NEXT: 1, 171 (55.9%)
439 # CHECK-NEXT: 2, 85 (27.8%)
440 # CHECK-NEXT: 3, 1 (0.3%)
441 # CHECK-NEXT: 4, 14 (4.6%)
443 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
444 # CHECK-NEXT: [# issued], [# cycles]
445 # CHECK-NEXT: 0, 6 (2.0%)
446 # CHECK-NEXT: 1, 200 (65.4%)
447 # CHECK-NEXT: 2, 100 (32.7%)
449 # CHECK: Scheduler's queue usage:
450 # CHECK-NEXT: [1] Resource name.
451 # CHECK-NEXT: [2] Average number of used buffer entries.
452 # CHECK-NEXT: [3] Maximum number of used buffer entries.
453 # CHECK-NEXT: [4] Total number of buffer entries.
455 # CHECK: [1] [2] [3] [4]
456 # CHECK-NEXT: PdEX 36 40 40
457 # CHECK-NEXT: PdFPU 0 0 64
458 # CHECK-NEXT: PdLoad 21 24 40
459 # CHECK-NEXT: PdStore 18 21 24
462 # CHECK-NEXT: [0.0] - PdAGLU01
463 # CHECK-NEXT: [0.1] - PdAGLU01
464 # CHECK-NEXT: [1] - PdBranch
465 # CHECK-NEXT: [2] - PdCount
466 # CHECK-NEXT: [3] - PdDiv
467 # CHECK-NEXT: [4] - PdEX0
468 # CHECK-NEXT: [5] - PdEX1
469 # CHECK-NEXT: [6] - PdFPCVT
470 # CHECK-NEXT: [7.0] - PdFPFMA
471 # CHECK-NEXT: [7.1] - PdFPFMA
472 # CHECK-NEXT: [8.0] - PdFPMAL
473 # CHECK-NEXT: [8.1] - PdFPMAL
474 # CHECK-NEXT: [9] - PdFPMMA
475 # CHECK-NEXT: [10] - PdFPSTO
476 # CHECK-NEXT: [11] - PdFPU0
477 # CHECK-NEXT: [12] - PdFPU1
478 # CHECK-NEXT: [13] - PdFPU2
479 # CHECK-NEXT: [14] - PdFPU3
480 # CHECK-NEXT: [15] - PdFPXBR
481 # CHECK-NEXT: [16.0] - PdLoad
482 # CHECK-NEXT: [16.1] - PdLoad
483 # CHECK-NEXT: [17] - PdMul
484 # CHECK-NEXT: [18] - PdStore
486 # CHECK: Resource pressure per iteration:
487 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
488 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
490 # CHECK: Resource pressure by instruction:
491 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
492 # CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - - - 1.00 movq %rsp, (%rax)
493 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rcx), %rbp
494 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rdx), %rsi
495 # CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - - - - 1.00 movq %rdi, (%rbx)
497 # CHECK: Timeline view:
498 # CHECK-NEXT: Index 012345678
500 # CHECK: [0,0] DeER . . movq %rsp, (%rax)
501 # CHECK-NEXT: [0,1] DeeeeeER. movq (%rcx), %rbp
502 # CHECK-NEXT: [0,2] D=eeeeeER movq (%rdx), %rsi
503 # CHECK-NEXT: [0,3] D==eE---R movq %rdi, (%rbx)
505 # CHECK: Average Wait times (based on the timeline view):
506 # CHECK-NEXT: [0]: Executions
507 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
508 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
509 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
511 # CHECK: [0] [1] [2] [3]
512 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq %rsp, (%rax)
513 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
514 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
515 # CHECK-NEXT: 3. 1 3.0 1.0 3.0 movq %rdi, (%rbx)
516 # CHECK-NEXT: 1 1.8 1.3 0.8 <total>
518 # CHECK: [4] Code Region
520 # CHECK: Iterations: 100
521 # CHECK-NEXT: Instructions: 400
522 # CHECK-NEXT: Total Cycles: 405
523 # CHECK-NEXT: Total uOps: 400
525 # CHECK: Dispatch Width: 4
526 # CHECK-NEXT: uOps Per Cycle: 0.99
527 # CHECK-NEXT: IPC: 0.99
528 # CHECK-NEXT: Block RThroughput: 4.0
530 # CHECK: Instruction Info:
531 # CHECK-NEXT: [1]: #uOps
532 # CHECK-NEXT: [2]: Latency
533 # CHECK-NEXT: [3]: RThroughput
534 # CHECK-NEXT: [4]: MayLoad
535 # CHECK-NEXT: [5]: MayStore
536 # CHECK-NEXT: [6]: HasSideEffects (U)
538 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
539 # CHECK-NEXT: 1 2 1.50 * U movd %mm0, (%rax)
540 # CHECK-NEXT: 1 5 1.50 * movd (%rcx), %mm1
541 # CHECK-NEXT: 1 5 1.50 * movd (%rdx), %mm2
542 # CHECK-NEXT: 1 2 1.50 * U movd %mm3, (%rbx)
544 # CHECK: Dynamic Dispatch Stall Cycles:
545 # CHECK-NEXT: RAT - Register unavailable: 0
546 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
547 # CHECK-NEXT: SCHEDQ - Scheduler full: 347 (85.7%)
548 # CHECK-NEXT: LQ - Load queue full: 0
549 # CHECK-NEXT: SQ - Store queue full: 0
550 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
551 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
553 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
554 # CHECK-NEXT: [# dispatched], [# cycles]
555 # CHECK-NEXT: 0, 131 (32.3%)
556 # CHECK-NEXT: 1, 174 (43.0%)
557 # CHECK-NEXT: 2, 87 (21.5%)
558 # CHECK-NEXT: 4, 13 (3.2%)
560 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
561 # CHECK-NEXT: [# issued], [# cycles]
562 # CHECK-NEXT: 0, 105 (25.9%)
563 # CHECK-NEXT: 1, 200 (49.4%)
564 # CHECK-NEXT: 2, 100 (24.7%)
566 # CHECK: Scheduler's queue usage:
567 # CHECK-NEXT: [1] Resource name.
568 # CHECK-NEXT: [2] Average number of used buffer entries.
569 # CHECK-NEXT: [3] Maximum number of used buffer entries.
570 # CHECK-NEXT: [4] Total number of buffer entries.
572 # CHECK: [1] [2] [3] [4]
573 # CHECK-NEXT: PdEX 36 40 40
574 # CHECK-NEXT: PdFPU 36 40 64
575 # CHECK-NEXT: PdLoad 20 23 40
576 # CHECK-NEXT: PdStore 19 22 24
579 # CHECK-NEXT: [0.0] - PdAGLU01
580 # CHECK-NEXT: [0.1] - PdAGLU01
581 # CHECK-NEXT: [1] - PdBranch
582 # CHECK-NEXT: [2] - PdCount
583 # CHECK-NEXT: [3] - PdDiv
584 # CHECK-NEXT: [4] - PdEX0
585 # CHECK-NEXT: [5] - PdEX1
586 # CHECK-NEXT: [6] - PdFPCVT
587 # CHECK-NEXT: [7.0] - PdFPFMA
588 # CHECK-NEXT: [7.1] - PdFPFMA
589 # CHECK-NEXT: [8.0] - PdFPMAL
590 # CHECK-NEXT: [8.1] - PdFPMAL
591 # CHECK-NEXT: [9] - PdFPMMA
592 # CHECK-NEXT: [10] - PdFPSTO
593 # CHECK-NEXT: [11] - PdFPU0
594 # CHECK-NEXT: [12] - PdFPU1
595 # CHECK-NEXT: [13] - PdFPU2
596 # CHECK-NEXT: [14] - PdFPU3
597 # CHECK-NEXT: [15] - PdFPXBR
598 # CHECK-NEXT: [16.0] - PdLoad
599 # CHECK-NEXT: [16.1] - PdLoad
600 # CHECK-NEXT: [17] - PdMul
601 # CHECK-NEXT: [18] - PdStore
603 # CHECK: Resource pressure per iteration:
604 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
605 # CHECK-NEXT: 4.00 4.00 - - - - - - - - 3.00 3.00 - 2.00 1.00 1.00 3.00 3.00 - 3.00 3.00 - 2.00
607 # CHECK: Resource pressure by instruction:
608 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
609 # CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movd %mm0, (%rax)
610 # CHECK-NEXT: 3.00 - - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rcx), %mm1
611 # CHECK-NEXT: - 3.00 - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rdx), %mm2
612 # CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movd %mm3, (%rbx)
614 # CHECK: Timeline view:
615 # CHECK-NEXT: Index 012345678
617 # CHECK: [0,0] DeeER. . movd %mm0, (%rax)
618 # CHECK-NEXT: [0,1] DeeeeeER. movd (%rcx), %mm1
619 # CHECK-NEXT: [0,2] D=eeeeeER movd (%rdx), %mm2
620 # CHECK-NEXT: [0,3] D===eeE-R movd %mm3, (%rbx)
622 # CHECK: Average Wait times (based on the timeline view):
623 # CHECK-NEXT: [0]: Executions
624 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
625 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
626 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
628 # CHECK: [0] [1] [2] [3]
629 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd %mm0, (%rax)
630 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
631 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
632 # CHECK-NEXT: 3. 1 4.0 2.0 1.0 movd %mm3, (%rbx)
633 # CHECK-NEXT: 1 2.0 1.5 0.3 <total>
635 # CHECK: [5] Code Region
637 # CHECK: Iterations: 100
638 # CHECK-NEXT: Instructions: 400
639 # CHECK-NEXT: Total Cycles: 405
640 # CHECK-NEXT: Total uOps: 400
642 # CHECK: Dispatch Width: 4
643 # CHECK-NEXT: uOps Per Cycle: 0.99
644 # CHECK-NEXT: IPC: 0.99
645 # CHECK-NEXT: Block RThroughput: 4.0
647 # CHECK: Instruction Info:
648 # CHECK-NEXT: [1]: #uOps
649 # CHECK-NEXT: [2]: Latency
650 # CHECK-NEXT: [3]: RThroughput
651 # CHECK-NEXT: [4]: MayLoad
652 # CHECK-NEXT: [5]: MayStore
653 # CHECK-NEXT: [6]: HasSideEffects (U)
655 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
656 # CHECK-NEXT: 1 1 1.50 * movaps %xmm0, (%rax)
657 # CHECK-NEXT: 1 5 1.50 * movaps (%rcx), %xmm1
658 # CHECK-NEXT: 1 5 1.50 * movaps (%rdx), %xmm2
659 # CHECK-NEXT: 1 1 1.50 * movaps %xmm3, (%rbx)
661 # CHECK: Dynamic Dispatch Stall Cycles:
662 # CHECK-NEXT: RAT - Register unavailable: 0
663 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
664 # CHECK-NEXT: SCHEDQ - Scheduler full: 347 (85.7%)
665 # CHECK-NEXT: LQ - Load queue full: 0
666 # CHECK-NEXT: SQ - Store queue full: 0
667 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
668 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
670 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
671 # CHECK-NEXT: [# dispatched], [# cycles]
672 # CHECK-NEXT: 0, 131 (32.3%)
673 # CHECK-NEXT: 1, 174 (43.0%)
674 # CHECK-NEXT: 2, 87 (21.5%)
675 # CHECK-NEXT: 4, 13 (3.2%)
677 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
678 # CHECK-NEXT: [# issued], [# cycles]
679 # CHECK-NEXT: 0, 105 (25.9%)
680 # CHECK-NEXT: 1, 200 (49.4%)
681 # CHECK-NEXT: 2, 100 (24.7%)
683 # CHECK: Scheduler's queue usage:
684 # CHECK-NEXT: [1] Resource name.
685 # CHECK-NEXT: [2] Average number of used buffer entries.
686 # CHECK-NEXT: [3] Maximum number of used buffer entries.
687 # CHECK-NEXT: [4] Total number of buffer entries.
689 # CHECK: [1] [2] [3] [4]
690 # CHECK-NEXT: PdEX 36 40 40
691 # CHECK-NEXT: PdFPU 36 40 64
692 # CHECK-NEXT: PdLoad 20 23 40
693 # CHECK-NEXT: PdStore 19 21 24
696 # CHECK-NEXT: [0.0] - PdAGLU01
697 # CHECK-NEXT: [0.1] - PdAGLU01
698 # CHECK-NEXT: [1] - PdBranch
699 # CHECK-NEXT: [2] - PdCount
700 # CHECK-NEXT: [3] - PdDiv
701 # CHECK-NEXT: [4] - PdEX0
702 # CHECK-NEXT: [5] - PdEX1
703 # CHECK-NEXT: [6] - PdFPCVT
704 # CHECK-NEXT: [7.0] - PdFPFMA
705 # CHECK-NEXT: [7.1] - PdFPFMA
706 # CHECK-NEXT: [8.0] - PdFPMAL
707 # CHECK-NEXT: [8.1] - PdFPMAL
708 # CHECK-NEXT: [9] - PdFPMMA
709 # CHECK-NEXT: [10] - PdFPSTO
710 # CHECK-NEXT: [11] - PdFPU0
711 # CHECK-NEXT: [12] - PdFPU1
712 # CHECK-NEXT: [13] - PdFPU2
713 # CHECK-NEXT: [14] - PdFPU3
714 # CHECK-NEXT: [15] - PdFPXBR
715 # CHECK-NEXT: [16.0] - PdLoad
716 # CHECK-NEXT: [16.1] - PdLoad
717 # CHECK-NEXT: [17] - PdMul
718 # CHECK-NEXT: [18] - PdStore
720 # CHECK: Resource pressure per iteration:
721 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
722 # CHECK-NEXT: 4.00 4.00 - - - - - - 3.00 3.00 - - - 2.00 1.00 1.00 3.00 3.00 - 3.00 3.00 - 2.00
724 # CHECK: Resource pressure by instruction:
725 # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
726 # CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movaps %xmm0, (%rax)
727 # CHECK-NEXT: 3.00 - - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rcx), %xmm1
728 # CHECK-NEXT: - 3.00 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rdx), %xmm2
729 # CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movaps %xmm3, (%rbx)
731 # CHECK: Timeline view:
732 # CHECK-NEXT: Index 012345678
734 # CHECK: [0,0] DeER . . movaps %xmm0, (%rax)
735 # CHECK-NEXT: [0,1] DeeeeeER. movaps (%rcx), %xmm1
736 # CHECK-NEXT: [0,2] D=eeeeeER movaps (%rdx), %xmm2
737 # CHECK-NEXT: [0,3] D===eE--R movaps %xmm3, (%rbx)
739 # CHECK: Average Wait times (based on the timeline view):
740 # CHECK-NEXT: [0]: Executions
741 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
742 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
743 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
745 # CHECK: [0] [1] [2] [3]
746 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps %xmm0, (%rax)
747 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
748 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
749 # CHECK-NEXT: 3. 1 4.0 2.0 2.0 movaps %xmm3, (%rbx)
750 # CHECK-NEXT: 1 2.0 1.5 0.5 <total>