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
53 # CHECK: [0] Code Region
55 # CHECK: Iterations: 100
56 # CHECK-NEXT: Instructions: 400
57 # CHECK-NEXT: Total Cycles: 406
58 # CHECK-NEXT: Total uOps: 400
60 # CHECK: Dispatch Width: 4
61 # CHECK-NEXT: uOps Per Cycle: 0.99
62 # CHECK-NEXT: IPC: 0.99
63 # CHECK-NEXT: Block RThroughput: 4.0
65 # CHECK: Instruction Info:
66 # CHECK-NEXT: [1]: #uOps
67 # CHECK-NEXT: [2]: Latency
68 # CHECK-NEXT: [3]: RThroughput
69 # CHECK-NEXT: [4]: MayLoad
70 # CHECK-NEXT: [5]: MayStore
71 # CHECK-NEXT: [6]: HasSideEffects (U)
73 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
74 # CHECK-NEXT: 1 5 1.00 * movb (%rax), %spl
75 # CHECK-NEXT: 1 5 1.00 * movb (%rcx), %bpl
76 # CHECK-NEXT: 1 5 1.00 * movb (%rdx), %sil
77 # CHECK-NEXT: 1 5 1.00 * movb (%rbx), %dil
79 # CHECK: Dynamic Dispatch Stall Cycles:
80 # CHECK-NEXT: RAT - Register unavailable: 0
81 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
82 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
83 # CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
84 # CHECK-NEXT: SQ - Store queue full: 0
85 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
87 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
88 # CHECK-NEXT: [# dispatched], [# cycles]
89 # CHECK-NEXT: 0, 217 (53.4%)
90 # CHECK-NEXT: 2, 178 (43.8%)
91 # CHECK-NEXT: 4, 11 (2.7%)
93 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
94 # CHECK-NEXT: [# issued], [# cycles]
95 # CHECK-NEXT: 0, 206 (50.7%)
96 # CHECK-NEXT: 2, 200 (49.3%)
98 # CHECK: Scheduler's queue usage:
99 # CHECK-NEXT: [1] Resource name.
100 # CHECK-NEXT: [2] Average number of used buffer entries.
101 # CHECK-NEXT: [3] Maximum number of used buffer entries.
102 # CHECK-NEXT: [4] Total number of buffer entries.
104 # CHECK: [1] [2] [3] [4]
105 # CHECK-NEXT: PdEX 32 36 40
106 # CHECK-NEXT: PdFPU 0 0 64
107 # CHECK-NEXT: PdLoad 37 40 40
108 # CHECK-NEXT: PdStore 0 0 24
111 # CHECK-NEXT: [0.0] - PdAGLU01
112 # CHECK-NEXT: [0.1] - PdAGLU01
113 # CHECK-NEXT: [1] - PdBranch
114 # CHECK-NEXT: [2] - PdCount
115 # CHECK-NEXT: [3] - PdDiv
116 # CHECK-NEXT: [4] - PdEX0
117 # CHECK-NEXT: [5] - PdEX1
118 # CHECK-NEXT: [6] - PdFPCVT
119 # CHECK-NEXT: [7.0] - PdFPFMA
120 # CHECK-NEXT: [7.1] - PdFPFMA
121 # CHECK-NEXT: [8.0] - PdFPMAL
122 # CHECK-NEXT: [8.1] - PdFPMAL
123 # CHECK-NEXT: [9] - PdFPMMA
124 # CHECK-NEXT: [10] - PdFPSTO
125 # CHECK-NEXT: [11] - PdFPU0
126 # CHECK-NEXT: [12] - PdFPU1
127 # CHECK-NEXT: [13] - PdFPU2
128 # CHECK-NEXT: [14] - PdFPU3
129 # CHECK-NEXT: [15] - PdFPXBR
130 # CHECK-NEXT: [16.0] - PdLoad
131 # CHECK-NEXT: [16.1] - PdLoad
132 # CHECK-NEXT: [17] - PdMul
133 # CHECK-NEXT: [18] - PdStore
135 # CHECK: Resource pressure per iteration:
136 # 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]
137 # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
139 # CHECK: Resource pressure by instruction:
140 # 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:
141 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rax), %spl
142 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rcx), %bpl
143 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rdx), %sil
144 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rbx), %dil
146 # CHECK: Timeline view:
147 # CHECK-NEXT: Index 0123456789
149 # CHECK: [0,0] DeeeeeER . movb (%rax), %spl
150 # CHECK-NEXT: [0,1] DeeeeeER . movb (%rcx), %bpl
151 # CHECK-NEXT: [0,2] D==eeeeeER movb (%rdx), %sil
152 # CHECK-NEXT: [0,3] D==eeeeeER movb (%rbx), %dil
154 # CHECK: Average Wait times (based on the timeline view):
155 # CHECK-NEXT: [0]: Executions
156 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
157 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
158 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
160 # CHECK: [0] [1] [2] [3]
161 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb (%rax), %spl
162 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
163 # CHECK-NEXT: 2. 1 3.0 3.0 0.0 movb (%rdx), %sil
164 # CHECK-NEXT: 3. 1 3.0 3.0 0.0 movb (%rbx), %dil
166 # CHECK: [1] Code Region
168 # CHECK: Iterations: 100
169 # CHECK-NEXT: Instructions: 400
170 # CHECK-NEXT: Total Cycles: 406
171 # CHECK-NEXT: Total uOps: 400
173 # CHECK: Dispatch Width: 4
174 # CHECK-NEXT: uOps Per Cycle: 0.99
175 # CHECK-NEXT: IPC: 0.99
176 # CHECK-NEXT: Block RThroughput: 4.0
178 # CHECK: Instruction Info:
179 # CHECK-NEXT: [1]: #uOps
180 # CHECK-NEXT: [2]: Latency
181 # CHECK-NEXT: [3]: RThroughput
182 # CHECK-NEXT: [4]: MayLoad
183 # CHECK-NEXT: [5]: MayStore
184 # CHECK-NEXT: [6]: HasSideEffects (U)
186 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
187 # CHECK-NEXT: 1 5 1.00 * movw (%rax), %sp
188 # CHECK-NEXT: 1 5 1.00 * movw (%rcx), %bp
189 # CHECK-NEXT: 1 5 1.00 * movw (%rdx), %si
190 # CHECK-NEXT: 1 5 1.00 * movw (%rbx), %di
192 # CHECK: Dynamic Dispatch Stall Cycles:
193 # CHECK-NEXT: RAT - Register unavailable: 0
194 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
195 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
196 # CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
197 # CHECK-NEXT: SQ - Store queue full: 0
198 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
200 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
201 # CHECK-NEXT: [# dispatched], [# cycles]
202 # CHECK-NEXT: 0, 217 (53.4%)
203 # CHECK-NEXT: 2, 178 (43.8%)
204 # CHECK-NEXT: 4, 11 (2.7%)
206 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
207 # CHECK-NEXT: [# issued], [# cycles]
208 # CHECK-NEXT: 0, 206 (50.7%)
209 # CHECK-NEXT: 2, 200 (49.3%)
211 # CHECK: Scheduler's queue usage:
212 # CHECK-NEXT: [1] Resource name.
213 # CHECK-NEXT: [2] Average number of used buffer entries.
214 # CHECK-NEXT: [3] Maximum number of used buffer entries.
215 # CHECK-NEXT: [4] Total number of buffer entries.
217 # CHECK: [1] [2] [3] [4]
218 # CHECK-NEXT: PdEX 32 36 40
219 # CHECK-NEXT: PdFPU 0 0 64
220 # CHECK-NEXT: PdLoad 37 40 40
221 # CHECK-NEXT: PdStore 0 0 24
224 # CHECK-NEXT: [0.0] - PdAGLU01
225 # CHECK-NEXT: [0.1] - PdAGLU01
226 # CHECK-NEXT: [1] - PdBranch
227 # CHECK-NEXT: [2] - PdCount
228 # CHECK-NEXT: [3] - PdDiv
229 # CHECK-NEXT: [4] - PdEX0
230 # CHECK-NEXT: [5] - PdEX1
231 # CHECK-NEXT: [6] - PdFPCVT
232 # CHECK-NEXT: [7.0] - PdFPFMA
233 # CHECK-NEXT: [7.1] - PdFPFMA
234 # CHECK-NEXT: [8.0] - PdFPMAL
235 # CHECK-NEXT: [8.1] - PdFPMAL
236 # CHECK-NEXT: [9] - PdFPMMA
237 # CHECK-NEXT: [10] - PdFPSTO
238 # CHECK-NEXT: [11] - PdFPU0
239 # CHECK-NEXT: [12] - PdFPU1
240 # CHECK-NEXT: [13] - PdFPU2
241 # CHECK-NEXT: [14] - PdFPU3
242 # CHECK-NEXT: [15] - PdFPXBR
243 # CHECK-NEXT: [16.0] - PdLoad
244 # CHECK-NEXT: [16.1] - PdLoad
245 # CHECK-NEXT: [17] - PdMul
246 # CHECK-NEXT: [18] - PdStore
248 # CHECK: Resource pressure per iteration:
249 # 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]
250 # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
252 # CHECK: Resource pressure by instruction:
253 # 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:
254 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rax), %sp
255 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rcx), %bp
256 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rdx), %si
257 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rbx), %di
259 # CHECK: Timeline view:
260 # CHECK-NEXT: Index 0123456789
262 # CHECK: [0,0] DeeeeeER . movw (%rax), %sp
263 # CHECK-NEXT: [0,1] DeeeeeER . movw (%rcx), %bp
264 # CHECK-NEXT: [0,2] D==eeeeeER movw (%rdx), %si
265 # CHECK-NEXT: [0,3] D==eeeeeER movw (%rbx), %di
267 # CHECK: Average Wait times (based on the timeline view):
268 # CHECK-NEXT: [0]: Executions
269 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
270 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
271 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
273 # CHECK: [0] [1] [2] [3]
274 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw (%rax), %sp
275 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
276 # CHECK-NEXT: 2. 1 3.0 3.0 0.0 movw (%rdx), %si
277 # CHECK-NEXT: 3. 1 3.0 3.0 0.0 movw (%rbx), %di
279 # CHECK: [2] Code Region
281 # CHECK: Iterations: 100
282 # CHECK-NEXT: Instructions: 400
283 # CHECK-NEXT: Total Cycles: 406
284 # CHECK-NEXT: Total uOps: 400
286 # CHECK: Dispatch Width: 4
287 # CHECK-NEXT: uOps Per Cycle: 0.99
288 # CHECK-NEXT: IPC: 0.99
289 # CHECK-NEXT: Block RThroughput: 4.0
291 # CHECK: Instruction Info:
292 # CHECK-NEXT: [1]: #uOps
293 # CHECK-NEXT: [2]: Latency
294 # CHECK-NEXT: [3]: RThroughput
295 # CHECK-NEXT: [4]: MayLoad
296 # CHECK-NEXT: [5]: MayStore
297 # CHECK-NEXT: [6]: HasSideEffects (U)
299 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
300 # CHECK-NEXT: 1 5 1.00 * movl (%rax), %esp
301 # CHECK-NEXT: 1 5 1.00 * movl (%rcx), %ebp
302 # CHECK-NEXT: 1 5 1.00 * movl (%rdx), %esi
303 # CHECK-NEXT: 1 5 1.00 * movl (%rbx), %edi
305 # CHECK: Dynamic Dispatch Stall Cycles:
306 # CHECK-NEXT: RAT - Register unavailable: 0
307 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
308 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
309 # CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
310 # CHECK-NEXT: SQ - Store queue full: 0
311 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
313 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
314 # CHECK-NEXT: [# dispatched], [# cycles]
315 # CHECK-NEXT: 0, 217 (53.4%)
316 # CHECK-NEXT: 2, 178 (43.8%)
317 # CHECK-NEXT: 4, 11 (2.7%)
319 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
320 # CHECK-NEXT: [# issued], [# cycles]
321 # CHECK-NEXT: 0, 206 (50.7%)
322 # CHECK-NEXT: 2, 200 (49.3%)
324 # CHECK: Scheduler's queue usage:
325 # CHECK-NEXT: [1] Resource name.
326 # CHECK-NEXT: [2] Average number of used buffer entries.
327 # CHECK-NEXT: [3] Maximum number of used buffer entries.
328 # CHECK-NEXT: [4] Total number of buffer entries.
330 # CHECK: [1] [2] [3] [4]
331 # CHECK-NEXT: PdEX 32 36 40
332 # CHECK-NEXT: PdFPU 0 0 64
333 # CHECK-NEXT: PdLoad 37 40 40
334 # CHECK-NEXT: PdStore 0 0 24
337 # CHECK-NEXT: [0.0] - PdAGLU01
338 # CHECK-NEXT: [0.1] - PdAGLU01
339 # CHECK-NEXT: [1] - PdBranch
340 # CHECK-NEXT: [2] - PdCount
341 # CHECK-NEXT: [3] - PdDiv
342 # CHECK-NEXT: [4] - PdEX0
343 # CHECK-NEXT: [5] - PdEX1
344 # CHECK-NEXT: [6] - PdFPCVT
345 # CHECK-NEXT: [7.0] - PdFPFMA
346 # CHECK-NEXT: [7.1] - PdFPFMA
347 # CHECK-NEXT: [8.0] - PdFPMAL
348 # CHECK-NEXT: [8.1] - PdFPMAL
349 # CHECK-NEXT: [9] - PdFPMMA
350 # CHECK-NEXT: [10] - PdFPSTO
351 # CHECK-NEXT: [11] - PdFPU0
352 # CHECK-NEXT: [12] - PdFPU1
353 # CHECK-NEXT: [13] - PdFPU2
354 # CHECK-NEXT: [14] - PdFPU3
355 # CHECK-NEXT: [15] - PdFPXBR
356 # CHECK-NEXT: [16.0] - PdLoad
357 # CHECK-NEXT: [16.1] - PdLoad
358 # CHECK-NEXT: [17] - PdMul
359 # CHECK-NEXT: [18] - PdStore
361 # CHECK: Resource pressure per iteration:
362 # 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]
363 # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
365 # CHECK: Resource pressure by instruction:
366 # 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:
367 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rax), %esp
368 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rcx), %ebp
369 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rdx), %esi
370 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rbx), %edi
372 # CHECK: Timeline view:
373 # CHECK-NEXT: Index 0123456789
375 # CHECK: [0,0] DeeeeeER . movl (%rax), %esp
376 # CHECK-NEXT: [0,1] DeeeeeER . movl (%rcx), %ebp
377 # CHECK-NEXT: [0,2] D==eeeeeER movl (%rdx), %esi
378 # CHECK-NEXT: [0,3] D==eeeeeER movl (%rbx), %edi
380 # CHECK: Average Wait times (based on the timeline view):
381 # CHECK-NEXT: [0]: Executions
382 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
383 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
384 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
386 # CHECK: [0] [1] [2] [3]
387 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl (%rax), %esp
388 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
389 # CHECK-NEXT: 2. 1 3.0 3.0 0.0 movl (%rdx), %esi
390 # CHECK-NEXT: 3. 1 3.0 3.0 0.0 movl (%rbx), %edi
392 # CHECK: [3] Code Region
394 # CHECK: Iterations: 100
395 # CHECK-NEXT: Instructions: 400
396 # CHECK-NEXT: Total Cycles: 406
397 # CHECK-NEXT: Total uOps: 400
399 # CHECK: Dispatch Width: 4
400 # CHECK-NEXT: uOps Per Cycle: 0.99
401 # CHECK-NEXT: IPC: 0.99
402 # CHECK-NEXT: Block RThroughput: 4.0
404 # CHECK: Instruction Info:
405 # CHECK-NEXT: [1]: #uOps
406 # CHECK-NEXT: [2]: Latency
407 # CHECK-NEXT: [3]: RThroughput
408 # CHECK-NEXT: [4]: MayLoad
409 # CHECK-NEXT: [5]: MayStore
410 # CHECK-NEXT: [6]: HasSideEffects (U)
412 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
413 # CHECK-NEXT: 1 5 1.00 * movq (%rax), %rsp
414 # CHECK-NEXT: 1 5 1.00 * movq (%rcx), %rbp
415 # CHECK-NEXT: 1 5 1.00 * movq (%rdx), %rsi
416 # CHECK-NEXT: 1 5 1.00 * movq (%rbx), %rdi
418 # CHECK: Dynamic Dispatch Stall Cycles:
419 # CHECK-NEXT: RAT - Register unavailable: 0
420 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
421 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
422 # CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
423 # CHECK-NEXT: SQ - Store queue full: 0
424 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
426 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
427 # CHECK-NEXT: [# dispatched], [# cycles]
428 # CHECK-NEXT: 0, 217 (53.4%)
429 # CHECK-NEXT: 2, 178 (43.8%)
430 # CHECK-NEXT: 4, 11 (2.7%)
432 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
433 # CHECK-NEXT: [# issued], [# cycles]
434 # CHECK-NEXT: 0, 206 (50.7%)
435 # CHECK-NEXT: 2, 200 (49.3%)
437 # CHECK: Scheduler's queue usage:
438 # CHECK-NEXT: [1] Resource name.
439 # CHECK-NEXT: [2] Average number of used buffer entries.
440 # CHECK-NEXT: [3] Maximum number of used buffer entries.
441 # CHECK-NEXT: [4] Total number of buffer entries.
443 # CHECK: [1] [2] [3] [4]
444 # CHECK-NEXT: PdEX 32 36 40
445 # CHECK-NEXT: PdFPU 0 0 64
446 # CHECK-NEXT: PdLoad 37 40 40
447 # CHECK-NEXT: PdStore 0 0 24
450 # CHECK-NEXT: [0.0] - PdAGLU01
451 # CHECK-NEXT: [0.1] - PdAGLU01
452 # CHECK-NEXT: [1] - PdBranch
453 # CHECK-NEXT: [2] - PdCount
454 # CHECK-NEXT: [3] - PdDiv
455 # CHECK-NEXT: [4] - PdEX0
456 # CHECK-NEXT: [5] - PdEX1
457 # CHECK-NEXT: [6] - PdFPCVT
458 # CHECK-NEXT: [7.0] - PdFPFMA
459 # CHECK-NEXT: [7.1] - PdFPFMA
460 # CHECK-NEXT: [8.0] - PdFPMAL
461 # CHECK-NEXT: [8.1] - PdFPMAL
462 # CHECK-NEXT: [9] - PdFPMMA
463 # CHECK-NEXT: [10] - PdFPSTO
464 # CHECK-NEXT: [11] - PdFPU0
465 # CHECK-NEXT: [12] - PdFPU1
466 # CHECK-NEXT: [13] - PdFPU2
467 # CHECK-NEXT: [14] - PdFPU3
468 # CHECK-NEXT: [15] - PdFPXBR
469 # CHECK-NEXT: [16.0] - PdLoad
470 # CHECK-NEXT: [16.1] - PdLoad
471 # CHECK-NEXT: [17] - PdMul
472 # CHECK-NEXT: [18] - PdStore
474 # CHECK: Resource pressure per iteration:
475 # 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]
476 # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
478 # CHECK: Resource pressure by instruction:
479 # 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:
480 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rax), %rsp
481 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rcx), %rbp
482 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rdx), %rsi
483 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rbx), %rdi
485 # CHECK: Timeline view:
486 # CHECK-NEXT: Index 0123456789
488 # CHECK: [0,0] DeeeeeER . movq (%rax), %rsp
489 # CHECK-NEXT: [0,1] DeeeeeER . movq (%rcx), %rbp
490 # CHECK-NEXT: [0,2] D==eeeeeER movq (%rdx), %rsi
491 # CHECK-NEXT: [0,3] D==eeeeeER movq (%rbx), %rdi
493 # CHECK: Average Wait times (based on the timeline view):
494 # CHECK-NEXT: [0]: Executions
495 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
496 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
497 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
499 # CHECK: [0] [1] [2] [3]
500 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq (%rax), %rsp
501 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
502 # CHECK-NEXT: 2. 1 3.0 3.0 0.0 movq (%rdx), %rsi
503 # CHECK-NEXT: 3. 1 3.0 3.0 0.0 movq (%rbx), %rdi
505 # CHECK: [4] Code Region
507 # CHECK: Iterations: 100
508 # CHECK-NEXT: Instructions: 400
509 # CHECK-NEXT: Total Cycles: 605
510 # CHECK-NEXT: Total uOps: 400
512 # CHECK: Dispatch Width: 4
513 # CHECK-NEXT: uOps Per Cycle: 0.66
514 # CHECK-NEXT: IPC: 0.66
515 # CHECK-NEXT: Block RThroughput: 6.0
517 # CHECK: Instruction Info:
518 # CHECK-NEXT: [1]: #uOps
519 # CHECK-NEXT: [2]: Latency
520 # CHECK-NEXT: [3]: RThroughput
521 # CHECK-NEXT: [4]: MayLoad
522 # CHECK-NEXT: [5]: MayStore
523 # CHECK-NEXT: [6]: HasSideEffects (U)
525 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
526 # CHECK-NEXT: 1 5 1.50 * movd (%rax), %mm0
527 # CHECK-NEXT: 1 5 1.50 * movd (%rcx), %mm1
528 # CHECK-NEXT: 1 5 1.50 * movd (%rdx), %mm2
529 # CHECK-NEXT: 1 5 1.50 * movd (%rbx), %mm3
531 # CHECK: Dynamic Dispatch Stall Cycles:
532 # CHECK-NEXT: RAT - Register unavailable: 0
533 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
534 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
535 # CHECK-NEXT: LQ - Load queue full: 532 (87.9%)
536 # CHECK-NEXT: SQ - Store queue full: 0
537 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
539 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
540 # CHECK-NEXT: [# dispatched], [# cycles]
541 # CHECK-NEXT: 0, 416 (68.8%)
542 # CHECK-NEXT: 2, 178 (29.4%)
543 # CHECK-NEXT: 4, 11 (1.8%)
545 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
546 # CHECK-NEXT: [# issued], [# cycles]
547 # CHECK-NEXT: 0, 405 (66.9%)
548 # CHECK-NEXT: 2, 200 (33.1%)
550 # CHECK: Scheduler's queue usage:
551 # CHECK-NEXT: [1] Resource name.
552 # CHECK-NEXT: [2] Average number of used buffer entries.
553 # CHECK-NEXT: [3] Maximum number of used buffer entries.
554 # CHECK-NEXT: [4] Total number of buffer entries.
556 # CHECK: [1] [2] [3] [4]
557 # CHECK-NEXT: PdEX 34 38 40
558 # CHECK-NEXT: PdFPU 34 38 64
559 # CHECK-NEXT: PdLoad 37 40 40
560 # CHECK-NEXT: PdStore 0 0 24
563 # CHECK-NEXT: [0.0] - PdAGLU01
564 # CHECK-NEXT: [0.1] - PdAGLU01
565 # CHECK-NEXT: [1] - PdBranch
566 # CHECK-NEXT: [2] - PdCount
567 # CHECK-NEXT: [3] - PdDiv
568 # CHECK-NEXT: [4] - PdEX0
569 # CHECK-NEXT: [5] - PdEX1
570 # CHECK-NEXT: [6] - PdFPCVT
571 # CHECK-NEXT: [7.0] - PdFPFMA
572 # CHECK-NEXT: [7.1] - PdFPFMA
573 # CHECK-NEXT: [8.0] - PdFPMAL
574 # CHECK-NEXT: [8.1] - PdFPMAL
575 # CHECK-NEXT: [9] - PdFPMMA
576 # CHECK-NEXT: [10] - PdFPSTO
577 # CHECK-NEXT: [11] - PdFPU0
578 # CHECK-NEXT: [12] - PdFPU1
579 # CHECK-NEXT: [13] - PdFPU2
580 # CHECK-NEXT: [14] - PdFPU3
581 # CHECK-NEXT: [15] - PdFPXBR
582 # CHECK-NEXT: [16.0] - PdLoad
583 # CHECK-NEXT: [16.1] - PdLoad
584 # CHECK-NEXT: [17] - PdMul
585 # CHECK-NEXT: [18] - PdStore
587 # CHECK: Resource pressure per iteration:
588 # 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]
589 # CHECK-NEXT: 6.00 6.00 - - - - - - - - 6.00 6.00 - - 2.00 2.00 - - - 6.00 6.00 - -
591 # CHECK: Resource pressure by instruction:
592 # 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:
593 # CHECK-NEXT: - 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rax), %mm0
594 # CHECK-NEXT: 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rcx), %mm1
595 # CHECK-NEXT: - 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rdx), %mm2
596 # CHECK-NEXT: 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rbx), %mm3
598 # CHECK: Timeline view:
600 # CHECK-NEXT: Index 0123456789
602 # CHECK: [0,0] DeeeeeER . movd (%rax), %mm0
603 # CHECK-NEXT: [0,1] DeeeeeER . movd (%rcx), %mm1
604 # CHECK-NEXT: [0,2] D===eeeeeER movd (%rdx), %mm2
605 # CHECK-NEXT: [0,3] D===eeeeeER movd (%rbx), %mm3
607 # CHECK: Average Wait times (based on the timeline view):
608 # CHECK-NEXT: [0]: Executions
609 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
610 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
611 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
613 # CHECK: [0] [1] [2] [3]
614 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd (%rax), %mm0
615 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
616 # CHECK-NEXT: 2. 1 4.0 4.0 0.0 movd (%rdx), %mm2
617 # CHECK-NEXT: 3. 1 4.0 4.0 0.0 movd (%rbx), %mm3
619 # CHECK: [5] Code Region
621 # CHECK: Iterations: 100
622 # CHECK-NEXT: Instructions: 400
623 # CHECK-NEXT: Total Cycles: 605
624 # CHECK-NEXT: Total uOps: 400
626 # CHECK: Dispatch Width: 4
627 # CHECK-NEXT: uOps Per Cycle: 0.66
628 # CHECK-NEXT: IPC: 0.66
629 # CHECK-NEXT: Block RThroughput: 6.0
631 # CHECK: Instruction Info:
632 # CHECK-NEXT: [1]: #uOps
633 # CHECK-NEXT: [2]: Latency
634 # CHECK-NEXT: [3]: RThroughput
635 # CHECK-NEXT: [4]: MayLoad
636 # CHECK-NEXT: [5]: MayStore
637 # CHECK-NEXT: [6]: HasSideEffects (U)
639 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
640 # CHECK-NEXT: 1 5 1.50 * movaps (%rax), %xmm0
641 # CHECK-NEXT: 1 5 1.50 * movaps (%rcx), %xmm1
642 # CHECK-NEXT: 1 5 1.50 * movaps (%rdx), %xmm2
643 # CHECK-NEXT: 1 5 1.50 * movaps (%rbx), %xmm3
645 # CHECK: Dynamic Dispatch Stall Cycles:
646 # CHECK-NEXT: RAT - Register unavailable: 0
647 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
648 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
649 # CHECK-NEXT: LQ - Load queue full: 532 (87.9%)
650 # CHECK-NEXT: SQ - Store queue full: 0
651 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
653 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
654 # CHECK-NEXT: [# dispatched], [# cycles]
655 # CHECK-NEXT: 0, 416 (68.8%)
656 # CHECK-NEXT: 2, 178 (29.4%)
657 # CHECK-NEXT: 4, 11 (1.8%)
659 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
660 # CHECK-NEXT: [# issued], [# cycles]
661 # CHECK-NEXT: 0, 405 (66.9%)
662 # CHECK-NEXT: 2, 200 (33.1%)
664 # CHECK: Scheduler's queue usage:
665 # CHECK-NEXT: [1] Resource name.
666 # CHECK-NEXT: [2] Average number of used buffer entries.
667 # CHECK-NEXT: [3] Maximum number of used buffer entries.
668 # CHECK-NEXT: [4] Total number of buffer entries.
670 # CHECK: [1] [2] [3] [4]
671 # CHECK-NEXT: PdEX 34 38 40
672 # CHECK-NEXT: PdFPU 34 38 64
673 # CHECK-NEXT: PdLoad 37 40 40
674 # CHECK-NEXT: PdStore 0 0 24
677 # CHECK-NEXT: [0.0] - PdAGLU01
678 # CHECK-NEXT: [0.1] - PdAGLU01
679 # CHECK-NEXT: [1] - PdBranch
680 # CHECK-NEXT: [2] - PdCount
681 # CHECK-NEXT: [3] - PdDiv
682 # CHECK-NEXT: [4] - PdEX0
683 # CHECK-NEXT: [5] - PdEX1
684 # CHECK-NEXT: [6] - PdFPCVT
685 # CHECK-NEXT: [7.0] - PdFPFMA
686 # CHECK-NEXT: [7.1] - PdFPFMA
687 # CHECK-NEXT: [8.0] - PdFPMAL
688 # CHECK-NEXT: [8.1] - PdFPMAL
689 # CHECK-NEXT: [9] - PdFPMMA
690 # CHECK-NEXT: [10] - PdFPSTO
691 # CHECK-NEXT: [11] - PdFPU0
692 # CHECK-NEXT: [12] - PdFPU1
693 # CHECK-NEXT: [13] - PdFPU2
694 # CHECK-NEXT: [14] - PdFPU3
695 # CHECK-NEXT: [15] - PdFPXBR
696 # CHECK-NEXT: [16.0] - PdLoad
697 # CHECK-NEXT: [16.1] - PdLoad
698 # CHECK-NEXT: [17] - PdMul
699 # CHECK-NEXT: [18] - PdStore
701 # CHECK: Resource pressure per iteration:
702 # 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]
703 # CHECK-NEXT: 6.00 6.00 - - - - - - 6.00 6.00 - - - - 2.00 2.00 - - - 6.00 6.00 - -
705 # CHECK: Resource pressure by instruction:
706 # 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:
707 # CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rax), %xmm0
708 # CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rcx), %xmm1
709 # CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rdx), %xmm2
710 # CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rbx), %xmm3
712 # CHECK: Timeline view:
714 # CHECK-NEXT: Index 0123456789
716 # CHECK: [0,0] DeeeeeER . movaps (%rax), %xmm0
717 # CHECK-NEXT: [0,1] DeeeeeER . movaps (%rcx), %xmm1
718 # CHECK-NEXT: [0,2] D===eeeeeER movaps (%rdx), %xmm2
719 # CHECK-NEXT: [0,3] D===eeeeeER movaps (%rbx), %xmm3
721 # CHECK: Average Wait times (based on the timeline view):
722 # CHECK-NEXT: [0]: Executions
723 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
724 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
725 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
727 # CHECK: [0] [1] [2] [3]
728 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps (%rax), %xmm0
729 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
730 # CHECK-NEXT: 2. 1 4.0 4.0 0.0 movaps (%rdx), %xmm2
731 # CHECK-NEXT: 3. 1 4.0 4.0 0.0 movaps (%rbx), %xmm3
733 # CHECK: [6] Code Region
735 # CHECK: Iterations: 100
736 # CHECK-NEXT: Instructions: 400
737 # CHECK-NEXT: Total Cycles: 605
738 # CHECK-NEXT: Total uOps: 800
740 # CHECK: Dispatch Width: 4
741 # CHECK-NEXT: uOps Per Cycle: 1.32
742 # CHECK-NEXT: IPC: 0.66
743 # CHECK-NEXT: Block RThroughput: 6.0
745 # CHECK: Instruction Info:
746 # CHECK-NEXT: [1]: #uOps
747 # CHECK-NEXT: [2]: Latency
748 # CHECK-NEXT: [3]: RThroughput
749 # CHECK-NEXT: [4]: MayLoad
750 # CHECK-NEXT: [5]: MayStore
751 # CHECK-NEXT: [6]: HasSideEffects (U)
753 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
754 # CHECK-NEXT: 2 5 1.50 * vmovaps (%rax), %ymm0
755 # CHECK-NEXT: 2 5 1.50 * vmovaps (%rcx), %ymm1
756 # CHECK-NEXT: 2 5 1.50 * vmovaps (%rdx), %ymm2
757 # CHECK-NEXT: 2 5 1.50 * vmovaps (%rbx), %ymm3
759 # CHECK: Dynamic Dispatch Stall Cycles:
760 # CHECK-NEXT: RAT - Register unavailable: 0
761 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
762 # CHECK-NEXT: SCHEDQ - Scheduler full: 0
763 # CHECK-NEXT: LQ - Load queue full: 344 (56.9%)
764 # CHECK-NEXT: SQ - Store queue full: 0
765 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
767 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
768 # CHECK-NEXT: [# dispatched], [# cycles]
769 # CHECK-NEXT: 0, 405 (66.9%)
770 # CHECK-NEXT: 4, 200 (33.1%)
772 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
773 # CHECK-NEXT: [# issued], [# cycles]
774 # CHECK-NEXT: 0, 405 (66.9%)
775 # CHECK-NEXT: 4, 200 (33.1%)
777 # CHECK: Scheduler's queue usage:
778 # CHECK-NEXT: [1] Resource name.
779 # CHECK-NEXT: [2] Average number of used buffer entries.
780 # CHECK-NEXT: [3] Maximum number of used buffer entries.
781 # CHECK-NEXT: [4] Total number of buffer entries.
783 # CHECK: [1] [2] [3] [4]
784 # CHECK-NEXT: PdEX 33 38 40
785 # CHECK-NEXT: PdFPU 33 38 64
786 # CHECK-NEXT: PdLoad 37 40 40
787 # CHECK-NEXT: PdStore 0 0 24
790 # CHECK-NEXT: [0.0] - PdAGLU01
791 # CHECK-NEXT: [0.1] - PdAGLU01
792 # CHECK-NEXT: [1] - PdBranch
793 # CHECK-NEXT: [2] - PdCount
794 # CHECK-NEXT: [3] - PdDiv
795 # CHECK-NEXT: [4] - PdEX0
796 # CHECK-NEXT: [5] - PdEX1
797 # CHECK-NEXT: [6] - PdFPCVT
798 # CHECK-NEXT: [7.0] - PdFPFMA
799 # CHECK-NEXT: [7.1] - PdFPFMA
800 # CHECK-NEXT: [8.0] - PdFPMAL
801 # CHECK-NEXT: [8.1] - PdFPMAL
802 # CHECK-NEXT: [9] - PdFPMMA
803 # CHECK-NEXT: [10] - PdFPSTO
804 # CHECK-NEXT: [11] - PdFPU0
805 # CHECK-NEXT: [12] - PdFPU1
806 # CHECK-NEXT: [13] - PdFPU2
807 # CHECK-NEXT: [14] - PdFPU3
808 # CHECK-NEXT: [15] - PdFPXBR
809 # CHECK-NEXT: [16.0] - PdLoad
810 # CHECK-NEXT: [16.1] - PdLoad
811 # CHECK-NEXT: [17] - PdMul
812 # CHECK-NEXT: [18] - PdStore
814 # CHECK: Resource pressure per iteration:
815 # 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]
816 # CHECK-NEXT: 6.00 6.00 - - - - - - 6.00 6.00 - - - - 2.00 2.00 - - - 6.00 6.00 - -
818 # CHECK: Resource pressure by instruction:
819 # 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:
820 # CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rax), %ymm0
821 # CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps (%rcx), %ymm1
822 # CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rdx), %ymm2
823 # CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps (%rbx), %ymm3
825 # CHECK: Timeline view:
827 # CHECK-NEXT: Index 0123456789
829 # CHECK: [0,0] DeeeeeER . vmovaps (%rax), %ymm0
830 # CHECK-NEXT: [0,1] DeeeeeER . vmovaps (%rcx), %ymm1
831 # CHECK-NEXT: [0,2] .D==eeeeeER vmovaps (%rdx), %ymm2
832 # CHECK-NEXT: [0,3] .D==eeeeeER vmovaps (%rbx), %ymm3
834 # CHECK: Average Wait times (based on the timeline view):
835 # CHECK-NEXT: [0]: Executions
836 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
837 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
838 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
840 # CHECK: [0] [1] [2] [3]
841 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 vmovaps (%rax), %ymm0
842 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 vmovaps (%rcx), %ymm1
843 # CHECK-NEXT: 2. 1 3.0 3.0 0.0 vmovaps (%rdx), %ymm2
844 # CHECK-NEXT: 3. 1 3.0 3.0 0.0 vmovaps (%rbx), %ymm3