[llvm-readelf] - Report a warning when .hash section contains a chain with a cycle.
[llvm-complete.git] / test / tools / llvm-mca / X86 / Barcelona / load-throughput.s
blobbd9ff550b7a73025cb385c4a9ce9b839d841b373
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
4 # LLVM-MCA-BEGIN
5 movb (%rax), %spl
6 movb (%rcx), %bpl
7 movb (%rdx), %sil
8 movb (%rbx), %dil
9 # LLVM-MCA-END
11 # LLVM-MCA-BEGIN
12 movw (%rax), %sp
13 movw (%rcx), %bp
14 movw (%rdx), %si
15 movw (%rbx), %di
16 # LLVM-MCA-END
18 # LLVM-MCA-BEGIN
19 movl (%rax), %esp
20 movl (%rcx), %ebp
21 movl (%rdx), %esi
22 movl (%rbx), %edi
23 # LLVM-MCA-END
25 # LLVM-MCA-BEGIN
26 movq (%rax), %rsp
27 movq (%rcx), %rbp
28 movq (%rdx), %rsi
29 movq (%rbx), %rdi
30 # LLVM-MCA-END
32 # LLVM-MCA-BEGIN
33 movd (%rax), %mm0
34 movd (%rcx), %mm1
35 movd (%rdx), %mm2
36 movd (%rbx), %mm3
37 # LLVM-MCA-END
39 # LLVM-MCA-BEGIN
40 movaps (%rax), %xmm0
41 movaps (%rcx), %xmm1
42 movaps (%rdx), %xmm2
43 movaps (%rbx), %xmm3
44 # LLVM-MCA-END
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
100 # CHECK: Resources:
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
141 # CHECK: [1] Code Region
143 # CHECK: Iterations: 100
144 # CHECK-NEXT: Instructions: 400
145 # CHECK-NEXT: Total Cycles: 207
146 # CHECK-NEXT: Total uOps: 400
148 # CHECK: Dispatch Width: 4
149 # CHECK-NEXT: uOps Per Cycle: 1.93
150 # CHECK-NEXT: IPC: 1.93
151 # CHECK-NEXT: Block RThroughput: 2.0
153 # CHECK: Instruction Info:
154 # CHECK-NEXT: [1]: #uOps
155 # CHECK-NEXT: [2]: Latency
156 # CHECK-NEXT: [3]: RThroughput
157 # CHECK-NEXT: [4]: MayLoad
158 # CHECK-NEXT: [5]: MayStore
159 # CHECK-NEXT: [6]: HasSideEffects (U)
161 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
162 # CHECK-NEXT: 1 5 0.50 * movw (%rax), %sp
163 # CHECK-NEXT: 1 5 0.50 * movw (%rcx), %bp
164 # CHECK-NEXT: 1 5 0.50 * movw (%rdx), %si
165 # CHECK-NEXT: 1 5 0.50 * movw (%rbx), %di
167 # CHECK: Dynamic Dispatch Stall Cycles:
168 # CHECK-NEXT: RAT - Register unavailable: 0
169 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
170 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
171 # CHECK-NEXT: LQ - Load queue full: 0
172 # CHECK-NEXT: SQ - Store queue full: 0
173 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
175 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
176 # CHECK-NEXT: [# dispatched], [# cycles]
177 # CHECK-NEXT: 0, 33 (15.9%)
178 # CHECK-NEXT: 2, 148 (71.5%)
179 # CHECK-NEXT: 4, 26 (12.6%)
181 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
182 # CHECK-NEXT: [# issued], [# cycles]
183 # CHECK-NEXT: 0, 7 (3.4%)
184 # CHECK-NEXT: 2, 200 (96.6%)
186 # CHECK: Scheduler's queue usage:
187 # CHECK-NEXT: [1] Resource name.
188 # CHECK-NEXT: [2] Average number of used buffer entries.
189 # CHECK-NEXT: [3] Maximum number of used buffer entries.
190 # CHECK-NEXT: [4] Total number of buffer entries.
192 # CHECK: [1] [2] [3] [4]
193 # CHECK-NEXT: SBPortAny 45 54 54
195 # CHECK: Resources:
196 # CHECK-NEXT: [0] - SBDivider
197 # CHECK-NEXT: [1] - SBFPDivider
198 # CHECK-NEXT: [2] - SBPort0
199 # CHECK-NEXT: [3] - SBPort1
200 # CHECK-NEXT: [4] - SBPort4
201 # CHECK-NEXT: [5] - SBPort5
202 # CHECK-NEXT: [6.0] - SBPort23
203 # CHECK-NEXT: [6.1] - SBPort23
205 # CHECK: Resource pressure per iteration:
206 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
207 # CHECK-NEXT: - - - - - - 2.00 2.00
209 # CHECK: Resource pressure by instruction:
210 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
211 # CHECK-NEXT: - - - - - - - 1.00 movw (%rax), %sp
212 # CHECK-NEXT: - - - - - - 1.00 - movw (%rcx), %bp
213 # CHECK-NEXT: - - - - - - - 1.00 movw (%rdx), %si
214 # CHECK-NEXT: - - - - - - 1.00 - movw (%rbx), %di
216 # CHECK: Timeline view:
217 # CHECK-NEXT: Index 012345678
219 # CHECK: [0,0] DeeeeeER. movw (%rax), %sp
220 # CHECK-NEXT: [0,1] DeeeeeER. movw (%rcx), %bp
221 # CHECK-NEXT: [0,2] D=eeeeeER movw (%rdx), %si
222 # CHECK-NEXT: [0,3] D=eeeeeER movw (%rbx), %di
224 # CHECK: Average Wait times (based on the timeline view):
225 # CHECK-NEXT: [0]: Executions
226 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
227 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
228 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
230 # CHECK: [0] [1] [2] [3]
231 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw (%rax), %sp
232 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
233 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
234 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movw (%rbx), %di
236 # CHECK: [2] Code Region
238 # CHECK: Iterations: 100
239 # CHECK-NEXT: Instructions: 400
240 # CHECK-NEXT: Total Cycles: 207
241 # CHECK-NEXT: Total uOps: 400
243 # CHECK: Dispatch Width: 4
244 # CHECK-NEXT: uOps Per Cycle: 1.93
245 # CHECK-NEXT: IPC: 1.93
246 # CHECK-NEXT: Block RThroughput: 2.0
248 # CHECK: Instruction Info:
249 # CHECK-NEXT: [1]: #uOps
250 # CHECK-NEXT: [2]: Latency
251 # CHECK-NEXT: [3]: RThroughput
252 # CHECK-NEXT: [4]: MayLoad
253 # CHECK-NEXT: [5]: MayStore
254 # CHECK-NEXT: [6]: HasSideEffects (U)
256 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
257 # CHECK-NEXT: 1 5 0.50 * movl (%rax), %esp
258 # CHECK-NEXT: 1 5 0.50 * movl (%rcx), %ebp
259 # CHECK-NEXT: 1 5 0.50 * movl (%rdx), %esi
260 # CHECK-NEXT: 1 5 0.50 * movl (%rbx), %edi
262 # CHECK: Dynamic Dispatch Stall Cycles:
263 # CHECK-NEXT: RAT - Register unavailable: 0
264 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
265 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
266 # CHECK-NEXT: LQ - Load queue full: 0
267 # CHECK-NEXT: SQ - Store queue full: 0
268 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
270 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
271 # CHECK-NEXT: [# dispatched], [# cycles]
272 # CHECK-NEXT: 0, 33 (15.9%)
273 # CHECK-NEXT: 2, 148 (71.5%)
274 # CHECK-NEXT: 4, 26 (12.6%)
276 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
277 # CHECK-NEXT: [# issued], [# cycles]
278 # CHECK-NEXT: 0, 7 (3.4%)
279 # CHECK-NEXT: 2, 200 (96.6%)
281 # CHECK: Scheduler's queue usage:
282 # CHECK-NEXT: [1] Resource name.
283 # CHECK-NEXT: [2] Average number of used buffer entries.
284 # CHECK-NEXT: [3] Maximum number of used buffer entries.
285 # CHECK-NEXT: [4] Total number of buffer entries.
287 # CHECK: [1] [2] [3] [4]
288 # CHECK-NEXT: SBPortAny 45 54 54
290 # CHECK: Resources:
291 # CHECK-NEXT: [0] - SBDivider
292 # CHECK-NEXT: [1] - SBFPDivider
293 # CHECK-NEXT: [2] - SBPort0
294 # CHECK-NEXT: [3] - SBPort1
295 # CHECK-NEXT: [4] - SBPort4
296 # CHECK-NEXT: [5] - SBPort5
297 # CHECK-NEXT: [6.0] - SBPort23
298 # CHECK-NEXT: [6.1] - SBPort23
300 # CHECK: Resource pressure per iteration:
301 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
302 # CHECK-NEXT: - - - - - - 2.00 2.00
304 # CHECK: Resource pressure by instruction:
305 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
306 # CHECK-NEXT: - - - - - - - 1.00 movl (%rax), %esp
307 # CHECK-NEXT: - - - - - - 1.00 - movl (%rcx), %ebp
308 # CHECK-NEXT: - - - - - - - 1.00 movl (%rdx), %esi
309 # CHECK-NEXT: - - - - - - 1.00 - movl (%rbx), %edi
311 # CHECK: Timeline view:
312 # CHECK-NEXT: Index 012345678
314 # CHECK: [0,0] DeeeeeER. movl (%rax), %esp
315 # CHECK-NEXT: [0,1] DeeeeeER. movl (%rcx), %ebp
316 # CHECK-NEXT: [0,2] D=eeeeeER movl (%rdx), %esi
317 # CHECK-NEXT: [0,3] D=eeeeeER movl (%rbx), %edi
319 # CHECK: Average Wait times (based on the timeline view):
320 # CHECK-NEXT: [0]: Executions
321 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
322 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
323 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
325 # CHECK: [0] [1] [2] [3]
326 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl (%rax), %esp
327 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
328 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
329 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movl (%rbx), %edi
331 # CHECK: [3] Code Region
333 # CHECK: Iterations: 100
334 # CHECK-NEXT: Instructions: 400
335 # CHECK-NEXT: Total Cycles: 207
336 # CHECK-NEXT: Total uOps: 400
338 # CHECK: Dispatch Width: 4
339 # CHECK-NEXT: uOps Per Cycle: 1.93
340 # CHECK-NEXT: IPC: 1.93
341 # CHECK-NEXT: Block RThroughput: 2.0
343 # CHECK: Instruction Info:
344 # CHECK-NEXT: [1]: #uOps
345 # CHECK-NEXT: [2]: Latency
346 # CHECK-NEXT: [3]: RThroughput
347 # CHECK-NEXT: [4]: MayLoad
348 # CHECK-NEXT: [5]: MayStore
349 # CHECK-NEXT: [6]: HasSideEffects (U)
351 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
352 # CHECK-NEXT: 1 5 0.50 * movq (%rax), %rsp
353 # CHECK-NEXT: 1 5 0.50 * movq (%rcx), %rbp
354 # CHECK-NEXT: 1 5 0.50 * movq (%rdx), %rsi
355 # CHECK-NEXT: 1 5 0.50 * movq (%rbx), %rdi
357 # CHECK: Dynamic Dispatch Stall Cycles:
358 # CHECK-NEXT: RAT - Register unavailable: 0
359 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
360 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
361 # CHECK-NEXT: LQ - Load queue full: 0
362 # CHECK-NEXT: SQ - Store queue full: 0
363 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
365 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
366 # CHECK-NEXT: [# dispatched], [# cycles]
367 # CHECK-NEXT: 0, 33 (15.9%)
368 # CHECK-NEXT: 2, 148 (71.5%)
369 # CHECK-NEXT: 4, 26 (12.6%)
371 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
372 # CHECK-NEXT: [# issued], [# cycles]
373 # CHECK-NEXT: 0, 7 (3.4%)
374 # CHECK-NEXT: 2, 200 (96.6%)
376 # CHECK: Scheduler's queue usage:
377 # CHECK-NEXT: [1] Resource name.
378 # CHECK-NEXT: [2] Average number of used buffer entries.
379 # CHECK-NEXT: [3] Maximum number of used buffer entries.
380 # CHECK-NEXT: [4] Total number of buffer entries.
382 # CHECK: [1] [2] [3] [4]
383 # CHECK-NEXT: SBPortAny 45 54 54
385 # CHECK: Resources:
386 # CHECK-NEXT: [0] - SBDivider
387 # CHECK-NEXT: [1] - SBFPDivider
388 # CHECK-NEXT: [2] - SBPort0
389 # CHECK-NEXT: [3] - SBPort1
390 # CHECK-NEXT: [4] - SBPort4
391 # CHECK-NEXT: [5] - SBPort5
392 # CHECK-NEXT: [6.0] - SBPort23
393 # CHECK-NEXT: [6.1] - SBPort23
395 # CHECK: Resource pressure per iteration:
396 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
397 # CHECK-NEXT: - - - - - - 2.00 2.00
399 # CHECK: Resource pressure by instruction:
400 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
401 # CHECK-NEXT: - - - - - - - 1.00 movq (%rax), %rsp
402 # CHECK-NEXT: - - - - - - 1.00 - movq (%rcx), %rbp
403 # CHECK-NEXT: - - - - - - - 1.00 movq (%rdx), %rsi
404 # CHECK-NEXT: - - - - - - 1.00 - movq (%rbx), %rdi
406 # CHECK: Timeline view:
407 # CHECK-NEXT: Index 012345678
409 # CHECK: [0,0] DeeeeeER. movq (%rax), %rsp
410 # CHECK-NEXT: [0,1] DeeeeeER. movq (%rcx), %rbp
411 # CHECK-NEXT: [0,2] D=eeeeeER movq (%rdx), %rsi
412 # CHECK-NEXT: [0,3] D=eeeeeER movq (%rbx), %rdi
414 # CHECK: Average Wait times (based on the timeline view):
415 # CHECK-NEXT: [0]: Executions
416 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
417 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
418 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
420 # CHECK: [0] [1] [2] [3]
421 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq (%rax), %rsp
422 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
423 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
424 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movq (%rbx), %rdi
426 # CHECK: [4] Code Region
428 # CHECK: Iterations: 100
429 # CHECK-NEXT: Instructions: 400
430 # CHECK-NEXT: Total Cycles: 207
431 # CHECK-NEXT: Total uOps: 400
433 # CHECK: Dispatch Width: 4
434 # CHECK-NEXT: uOps Per Cycle: 1.93
435 # CHECK-NEXT: IPC: 1.93
436 # CHECK-NEXT: Block RThroughput: 2.0
438 # CHECK: Instruction Info:
439 # CHECK-NEXT: [1]: #uOps
440 # CHECK-NEXT: [2]: Latency
441 # CHECK-NEXT: [3]: RThroughput
442 # CHECK-NEXT: [4]: MayLoad
443 # CHECK-NEXT: [5]: MayStore
444 # CHECK-NEXT: [6]: HasSideEffects (U)
446 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
447 # CHECK-NEXT: 1 5 0.50 * movd (%rax), %mm0
448 # CHECK-NEXT: 1 5 0.50 * movd (%rcx), %mm1
449 # CHECK-NEXT: 1 5 0.50 * movd (%rdx), %mm2
450 # CHECK-NEXT: 1 5 0.50 * movd (%rbx), %mm3
452 # CHECK: Dynamic Dispatch Stall Cycles:
453 # CHECK-NEXT: RAT - Register unavailable: 0
454 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
455 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (71.0%)
456 # CHECK-NEXT: LQ - Load queue full: 0
457 # CHECK-NEXT: SQ - Store queue full: 0
458 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
460 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
461 # CHECK-NEXT: [# dispatched], [# cycles]
462 # CHECK-NEXT: 0, 33 (15.9%)
463 # CHECK-NEXT: 2, 148 (71.5%)
464 # CHECK-NEXT: 4, 26 (12.6%)
466 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
467 # CHECK-NEXT: [# issued], [# cycles]
468 # CHECK-NEXT: 0, 7 (3.4%)
469 # CHECK-NEXT: 2, 200 (96.6%)
471 # CHECK: Scheduler's queue usage:
472 # CHECK-NEXT: [1] Resource name.
473 # CHECK-NEXT: [2] Average number of used buffer entries.
474 # CHECK-NEXT: [3] Maximum number of used buffer entries.
475 # CHECK-NEXT: [4] Total number of buffer entries.
477 # CHECK: [1] [2] [3] [4]
478 # CHECK-NEXT: SBPortAny 45 54 54
480 # CHECK: Resources:
481 # CHECK-NEXT: [0] - SBDivider
482 # CHECK-NEXT: [1] - SBFPDivider
483 # CHECK-NEXT: [2] - SBPort0
484 # CHECK-NEXT: [3] - SBPort1
485 # CHECK-NEXT: [4] - SBPort4
486 # CHECK-NEXT: [5] - SBPort5
487 # CHECK-NEXT: [6.0] - SBPort23
488 # CHECK-NEXT: [6.1] - SBPort23
490 # CHECK: Resource pressure per iteration:
491 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
492 # CHECK-NEXT: - - - - - - 2.00 2.00
494 # CHECK: Resource pressure by instruction:
495 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
496 # CHECK-NEXT: - - - - - - - 1.00 movd (%rax), %mm0
497 # CHECK-NEXT: - - - - - - 1.00 - movd (%rcx), %mm1
498 # CHECK-NEXT: - - - - - - - 1.00 movd (%rdx), %mm2
499 # CHECK-NEXT: - - - - - - 1.00 - movd (%rbx), %mm3
501 # CHECK: Timeline view:
502 # CHECK-NEXT: Index 012345678
504 # CHECK: [0,0] DeeeeeER. movd (%rax), %mm0
505 # CHECK-NEXT: [0,1] DeeeeeER. movd (%rcx), %mm1
506 # CHECK-NEXT: [0,2] D=eeeeeER movd (%rdx), %mm2
507 # CHECK-NEXT: [0,3] D=eeeeeER movd (%rbx), %mm3
509 # CHECK: Average Wait times (based on the timeline view):
510 # CHECK-NEXT: [0]: Executions
511 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
512 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
513 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
515 # CHECK: [0] [1] [2] [3]
516 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd (%rax), %mm0
517 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
518 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
519 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movd (%rbx), %mm3
521 # CHECK: [5] Code Region
523 # CHECK: Iterations: 100
524 # CHECK-NEXT: Instructions: 400
525 # CHECK-NEXT: Total Cycles: 208
526 # CHECK-NEXT: Total uOps: 400
528 # CHECK: Dispatch Width: 4
529 # CHECK-NEXT: uOps Per Cycle: 1.92
530 # CHECK-NEXT: IPC: 1.92
531 # CHECK-NEXT: Block RThroughput: 2.0
533 # CHECK: Instruction Info:
534 # CHECK-NEXT: [1]: #uOps
535 # CHECK-NEXT: [2]: Latency
536 # CHECK-NEXT: [3]: RThroughput
537 # CHECK-NEXT: [4]: MayLoad
538 # CHECK-NEXT: [5]: MayStore
539 # CHECK-NEXT: [6]: HasSideEffects (U)
541 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
542 # CHECK-NEXT: 1 6 0.50 * movaps (%rax), %xmm0
543 # CHECK-NEXT: 1 6 0.50 * movaps (%rcx), %xmm1
544 # CHECK-NEXT: 1 6 0.50 * movaps (%rdx), %xmm2
545 # CHECK-NEXT: 1 6 0.50 * movaps (%rbx), %xmm3
547 # CHECK: Dynamic Dispatch Stall Cycles:
548 # CHECK-NEXT: RAT - Register unavailable: 0
549 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
550 # CHECK-NEXT: SCHEDQ - Scheduler full: 147 (70.7%)
551 # CHECK-NEXT: LQ - Load queue full: 0
552 # CHECK-NEXT: SQ - Store queue full: 0
553 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
555 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
556 # CHECK-NEXT: [# dispatched], [# cycles]
557 # CHECK-NEXT: 0, 34 (16.3%)
558 # CHECK-NEXT: 2, 148 (71.2%)
559 # CHECK-NEXT: 4, 26 (12.5%)
561 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
562 # CHECK-NEXT: [# issued], [# cycles]
563 # CHECK-NEXT: 0, 8 (3.8%)
564 # CHECK-NEXT: 2, 200 (96.2%)
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: SBPortAny 45 54 54
575 # CHECK: Resources:
576 # CHECK-NEXT: [0] - SBDivider
577 # CHECK-NEXT: [1] - SBFPDivider
578 # CHECK-NEXT: [2] - SBPort0
579 # CHECK-NEXT: [3] - SBPort1
580 # CHECK-NEXT: [4] - SBPort4
581 # CHECK-NEXT: [5] - SBPort5
582 # CHECK-NEXT: [6.0] - SBPort23
583 # CHECK-NEXT: [6.1] - SBPort23
585 # CHECK: Resource pressure per iteration:
586 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
587 # CHECK-NEXT: - - - - - - 2.00 2.00
589 # CHECK: Resource pressure by instruction:
590 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
591 # CHECK-NEXT: - - - - - - - 1.00 movaps (%rax), %xmm0
592 # CHECK-NEXT: - - - - - - 1.00 - movaps (%rcx), %xmm1
593 # CHECK-NEXT: - - - - - - - 1.00 movaps (%rdx), %xmm2
594 # CHECK-NEXT: - - - - - - 1.00 - movaps (%rbx), %xmm3
596 # CHECK: Timeline view:
597 # CHECK-NEXT: Index 0123456789
599 # CHECK: [0,0] DeeeeeeER. movaps (%rax), %xmm0
600 # CHECK-NEXT: [0,1] DeeeeeeER. movaps (%rcx), %xmm1
601 # CHECK-NEXT: [0,2] D=eeeeeeER movaps (%rdx), %xmm2
602 # CHECK-NEXT: [0,3] D=eeeeeeER movaps (%rbx), %xmm3
604 # CHECK: Average Wait times (based on the timeline view):
605 # CHECK-NEXT: [0]: Executions
606 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
607 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
608 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
610 # CHECK: [0] [1] [2] [3]
611 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps (%rax), %xmm0
612 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
613 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
614 # CHECK-NEXT: 3. 1 2.0 2.0 0.0 movaps (%rbx), %xmm3