Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / tools / llvm-mca / X86 / Barcelona / store-throughput.s
blobd9aabb783f1e7d045ee7b3098e537b12ff4f8ed7
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 -noalias=true < %s | FileCheck %s
4 # LLVM-MCA-BEGIN
5 movb %spl, (%rax)
6 movb %bpl, (%rcx)
7 movb %sil, (%rdx)
8 movb %dil, (%rbx)
9 # LLVM-MCA-END
11 # LLVM-MCA-BEGIN
12 movw %sp, (%rax)
13 movw %bp, (%rcx)
14 movw %si, (%rdx)
15 movw %di, (%rbx)
16 # LLVM-MCA-END
18 # LLVM-MCA-BEGIN
19 movl %esp, (%rax)
20 movl %ebp, (%rcx)
21 movl %esi, (%rdx)
22 movl %edi, (%rbx)
23 # LLVM-MCA-END
25 # LLVM-MCA-BEGIN
26 movq %rsp, (%rax)
27 movq %rbp, (%rcx)
28 movq %rsi, (%rdx)
29 movq %rdi, (%rbx)
30 # LLVM-MCA-END
32 # LLVM-MCA-BEGIN
33 movd %mm0, (%rax)
34 movd %mm1, (%rcx)
35 movd %mm2, (%rdx)
36 movd %mm3, (%rbx)
37 # LLVM-MCA-END
39 # LLVM-MCA-BEGIN
40 movaps %xmm0, (%rax)
41 movaps %xmm1, (%rcx)
42 movaps %xmm2, (%rdx)
43 movaps %xmm3, (%rbx)
44 # LLVM-MCA-END
46 # CHECK: [0] Code Region
48 # CHECK: Iterations: 100
49 # CHECK-NEXT: Instructions: 400
50 # CHECK-NEXT: Total Cycles: 403
51 # CHECK-NEXT: Total uOps: 400
53 # CHECK: Dispatch Width: 4
54 # CHECK-NEXT: uOps Per Cycle: 0.99
55 # CHECK-NEXT: IPC: 0.99
56 # CHECK-NEXT: Block RThroughput: 4.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 1 1.00 * movb %bpl, (%rcx)
69 # CHECK-NEXT: 1 1 1.00 * movb %sil, (%rdx)
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: 329 (81.6%)
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, 56 (13.9%)
84 # CHECK-NEXT: 1, 329 (81.6%)
85 # CHECK-NEXT: 3, 1 (0.2%)
86 # CHECK-NEXT: 4, 17 (4.2%)
88 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
89 # CHECK-NEXT: [# issued], [# cycles]
90 # CHECK-NEXT: 0, 3 (0.7%)
91 # CHECK-NEXT: 1, 400 (99.3%)
93 # CHECK: Scheduler's queue usage:
94 # CHECK-NEXT: [1] Resource name.
95 # CHECK-NEXT: [2] Average number of used buffer entries.
96 # CHECK-NEXT: [3] Maximum number of used buffer entries.
97 # CHECK-NEXT: [4] Total number of buffer entries.
99 # CHECK: [1] [2] [3] [4]
100 # CHECK-NEXT: SBPortAny 49 54 54
102 # CHECK: Resources:
103 # CHECK-NEXT: [0] - SBDivider
104 # CHECK-NEXT: [1] - SBFPDivider
105 # CHECK-NEXT: [2] - SBPort0
106 # CHECK-NEXT: [3] - SBPort1
107 # CHECK-NEXT: [4] - SBPort4
108 # CHECK-NEXT: [5] - SBPort5
109 # CHECK-NEXT: [6.0] - SBPort23
110 # CHECK-NEXT: [6.1] - SBPort23
112 # CHECK: Resource pressure per iteration:
113 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
114 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
116 # CHECK: Resource pressure by instruction:
117 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
118 # CHECK-NEXT: - - - - 1.00 - - 1.00 movb %spl, (%rax)
119 # CHECK-NEXT: - - - - 1.00 - 1.00 - movb %bpl, (%rcx)
120 # CHECK-NEXT: - - - - 1.00 - - 1.00 movb %sil, (%rdx)
121 # CHECK-NEXT: - - - - 1.00 - 1.00 - movb %dil, (%rbx)
123 # CHECK: Timeline view:
124 # CHECK-NEXT: Index 0123456
126 # CHECK: [0,0] DeER .. movb %spl, (%rax)
127 # CHECK-NEXT: [0,1] D=eER.. movb %bpl, (%rcx)
128 # CHECK-NEXT: [0,2] D==eER. movb %sil, (%rdx)
129 # CHECK-NEXT: [0,3] D===eER movb %dil, (%rbx)
131 # CHECK: Average Wait times (based on the timeline view):
132 # CHECK-NEXT: [0]: Executions
133 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
134 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
135 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
137 # CHECK: [0] [1] [2] [3]
138 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb %spl, (%rax)
139 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movb %bpl, (%rcx)
140 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movb %sil, (%rdx)
141 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movb %dil, (%rbx)
142 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>
144 # CHECK: [1] Code Region
146 # CHECK: Iterations: 100
147 # CHECK-NEXT: Instructions: 400
148 # CHECK-NEXT: Total Cycles: 403
149 # CHECK-NEXT: Total uOps: 400
151 # CHECK: Dispatch Width: 4
152 # CHECK-NEXT: uOps Per Cycle: 0.99
153 # CHECK-NEXT: IPC: 0.99
154 # CHECK-NEXT: Block RThroughput: 4.0
156 # CHECK: Instruction Info:
157 # CHECK-NEXT: [1]: #uOps
158 # CHECK-NEXT: [2]: Latency
159 # CHECK-NEXT: [3]: RThroughput
160 # CHECK-NEXT: [4]: MayLoad
161 # CHECK-NEXT: [5]: MayStore
162 # CHECK-NEXT: [6]: HasSideEffects (U)
164 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
165 # CHECK-NEXT: 1 1 1.00 * movw %sp, (%rax)
166 # CHECK-NEXT: 1 1 1.00 * movw %bp, (%rcx)
167 # CHECK-NEXT: 1 1 1.00 * movw %si, (%rdx)
168 # CHECK-NEXT: 1 1 1.00 * movw %di, (%rbx)
170 # CHECK: Dynamic Dispatch Stall Cycles:
171 # CHECK-NEXT: RAT - Register unavailable: 0
172 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
173 # CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%)
174 # CHECK-NEXT: LQ - Load queue full: 0
175 # CHECK-NEXT: SQ - Store queue full: 0
176 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
177 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
179 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
180 # CHECK-NEXT: [# dispatched], [# cycles]
181 # CHECK-NEXT: 0, 56 (13.9%)
182 # CHECK-NEXT: 1, 329 (81.6%)
183 # CHECK-NEXT: 3, 1 (0.2%)
184 # CHECK-NEXT: 4, 17 (4.2%)
186 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
187 # CHECK-NEXT: [# issued], [# cycles]
188 # CHECK-NEXT: 0, 3 (0.7%)
189 # CHECK-NEXT: 1, 400 (99.3%)
191 # CHECK: Scheduler's queue usage:
192 # CHECK-NEXT: [1] Resource name.
193 # CHECK-NEXT: [2] Average number of used buffer entries.
194 # CHECK-NEXT: [3] Maximum number of used buffer entries.
195 # CHECK-NEXT: [4] Total number of buffer entries.
197 # CHECK: [1] [2] [3] [4]
198 # CHECK-NEXT: SBPortAny 49 54 54
200 # CHECK: Resources:
201 # CHECK-NEXT: [0] - SBDivider
202 # CHECK-NEXT: [1] - SBFPDivider
203 # CHECK-NEXT: [2] - SBPort0
204 # CHECK-NEXT: [3] - SBPort1
205 # CHECK-NEXT: [4] - SBPort4
206 # CHECK-NEXT: [5] - SBPort5
207 # CHECK-NEXT: [6.0] - SBPort23
208 # CHECK-NEXT: [6.1] - SBPort23
210 # CHECK: Resource pressure per iteration:
211 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
212 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
214 # CHECK: Resource pressure by instruction:
215 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
216 # CHECK-NEXT: - - - - 1.00 - - 1.00 movw %sp, (%rax)
217 # CHECK-NEXT: - - - - 1.00 - 1.00 - movw %bp, (%rcx)
218 # CHECK-NEXT: - - - - 1.00 - - 1.00 movw %si, (%rdx)
219 # CHECK-NEXT: - - - - 1.00 - 1.00 - movw %di, (%rbx)
221 # CHECK: Timeline view:
222 # CHECK-NEXT: Index 0123456
224 # CHECK: [0,0] DeER .. movw %sp, (%rax)
225 # CHECK-NEXT: [0,1] D=eER.. movw %bp, (%rcx)
226 # CHECK-NEXT: [0,2] D==eER. movw %si, (%rdx)
227 # CHECK-NEXT: [0,3] D===eER movw %di, (%rbx)
229 # CHECK: Average Wait times (based on the timeline view):
230 # CHECK-NEXT: [0]: Executions
231 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
232 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
233 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
235 # CHECK: [0] [1] [2] [3]
236 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw %sp, (%rax)
237 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movw %bp, (%rcx)
238 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movw %si, (%rdx)
239 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movw %di, (%rbx)
240 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>
242 # CHECK: [2] Code Region
244 # CHECK: Iterations: 100
245 # CHECK-NEXT: Instructions: 400
246 # CHECK-NEXT: Total Cycles: 403
247 # CHECK-NEXT: Total uOps: 400
249 # CHECK: Dispatch Width: 4
250 # CHECK-NEXT: uOps Per Cycle: 0.99
251 # CHECK-NEXT: IPC: 0.99
252 # CHECK-NEXT: Block RThroughput: 4.0
254 # CHECK: Instruction Info:
255 # CHECK-NEXT: [1]: #uOps
256 # CHECK-NEXT: [2]: Latency
257 # CHECK-NEXT: [3]: RThroughput
258 # CHECK-NEXT: [4]: MayLoad
259 # CHECK-NEXT: [5]: MayStore
260 # CHECK-NEXT: [6]: HasSideEffects (U)
262 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
263 # CHECK-NEXT: 1 1 1.00 * movl %esp, (%rax)
264 # CHECK-NEXT: 1 1 1.00 * movl %ebp, (%rcx)
265 # CHECK-NEXT: 1 1 1.00 * movl %esi, (%rdx)
266 # CHECK-NEXT: 1 1 1.00 * movl %edi, (%rbx)
268 # CHECK: Dynamic Dispatch Stall Cycles:
269 # CHECK-NEXT: RAT - Register unavailable: 0
270 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
271 # CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%)
272 # CHECK-NEXT: LQ - Load queue full: 0
273 # CHECK-NEXT: SQ - Store queue full: 0
274 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
275 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
277 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
278 # CHECK-NEXT: [# dispatched], [# cycles]
279 # CHECK-NEXT: 0, 56 (13.9%)
280 # CHECK-NEXT: 1, 329 (81.6%)
281 # CHECK-NEXT: 3, 1 (0.2%)
282 # CHECK-NEXT: 4, 17 (4.2%)
284 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
285 # CHECK-NEXT: [# issued], [# cycles]
286 # CHECK-NEXT: 0, 3 (0.7%)
287 # CHECK-NEXT: 1, 400 (99.3%)
289 # CHECK: Scheduler's queue usage:
290 # CHECK-NEXT: [1] Resource name.
291 # CHECK-NEXT: [2] Average number of used buffer entries.
292 # CHECK-NEXT: [3] Maximum number of used buffer entries.
293 # CHECK-NEXT: [4] Total number of buffer entries.
295 # CHECK: [1] [2] [3] [4]
296 # CHECK-NEXT: SBPortAny 49 54 54
298 # CHECK: Resources:
299 # CHECK-NEXT: [0] - SBDivider
300 # CHECK-NEXT: [1] - SBFPDivider
301 # CHECK-NEXT: [2] - SBPort0
302 # CHECK-NEXT: [3] - SBPort1
303 # CHECK-NEXT: [4] - SBPort4
304 # CHECK-NEXT: [5] - SBPort5
305 # CHECK-NEXT: [6.0] - SBPort23
306 # CHECK-NEXT: [6.1] - SBPort23
308 # CHECK: Resource pressure per iteration:
309 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
310 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
312 # CHECK: Resource pressure by instruction:
313 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
314 # CHECK-NEXT: - - - - 1.00 - - 1.00 movl %esp, (%rax)
315 # CHECK-NEXT: - - - - 1.00 - 1.00 - movl %ebp, (%rcx)
316 # CHECK-NEXT: - - - - 1.00 - - 1.00 movl %esi, (%rdx)
317 # CHECK-NEXT: - - - - 1.00 - 1.00 - movl %edi, (%rbx)
319 # CHECK: Timeline view:
320 # CHECK-NEXT: Index 0123456
322 # CHECK: [0,0] DeER .. movl %esp, (%rax)
323 # CHECK-NEXT: [0,1] D=eER.. movl %ebp, (%rcx)
324 # CHECK-NEXT: [0,2] D==eER. movl %esi, (%rdx)
325 # CHECK-NEXT: [0,3] D===eER movl %edi, (%rbx)
327 # CHECK: Average Wait times (based on the timeline view):
328 # CHECK-NEXT: [0]: Executions
329 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
330 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
331 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
333 # CHECK: [0] [1] [2] [3]
334 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl %esp, (%rax)
335 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movl %ebp, (%rcx)
336 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movl %esi, (%rdx)
337 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movl %edi, (%rbx)
338 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>
340 # CHECK: [3] Code Region
342 # CHECK: Iterations: 100
343 # CHECK-NEXT: Instructions: 400
344 # CHECK-NEXT: Total Cycles: 403
345 # CHECK-NEXT: Total uOps: 400
347 # CHECK: Dispatch Width: 4
348 # CHECK-NEXT: uOps Per Cycle: 0.99
349 # CHECK-NEXT: IPC: 0.99
350 # CHECK-NEXT: Block RThroughput: 4.0
352 # CHECK: Instruction Info:
353 # CHECK-NEXT: [1]: #uOps
354 # CHECK-NEXT: [2]: Latency
355 # CHECK-NEXT: [3]: RThroughput
356 # CHECK-NEXT: [4]: MayLoad
357 # CHECK-NEXT: [5]: MayStore
358 # CHECK-NEXT: [6]: HasSideEffects (U)
360 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
361 # CHECK-NEXT: 1 1 1.00 * movq %rsp, (%rax)
362 # CHECK-NEXT: 1 1 1.00 * movq %rbp, (%rcx)
363 # CHECK-NEXT: 1 1 1.00 * movq %rsi, (%rdx)
364 # CHECK-NEXT: 1 1 1.00 * movq %rdi, (%rbx)
366 # CHECK: Dynamic Dispatch Stall Cycles:
367 # CHECK-NEXT: RAT - Register unavailable: 0
368 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
369 # CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%)
370 # CHECK-NEXT: LQ - Load queue full: 0
371 # CHECK-NEXT: SQ - Store queue full: 0
372 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
373 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
375 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
376 # CHECK-NEXT: [# dispatched], [# cycles]
377 # CHECK-NEXT: 0, 56 (13.9%)
378 # CHECK-NEXT: 1, 329 (81.6%)
379 # CHECK-NEXT: 3, 1 (0.2%)
380 # CHECK-NEXT: 4, 17 (4.2%)
382 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
383 # CHECK-NEXT: [# issued], [# cycles]
384 # CHECK-NEXT: 0, 3 (0.7%)
385 # CHECK-NEXT: 1, 400 (99.3%)
387 # CHECK: Scheduler's queue usage:
388 # CHECK-NEXT: [1] Resource name.
389 # CHECK-NEXT: [2] Average number of used buffer entries.
390 # CHECK-NEXT: [3] Maximum number of used buffer entries.
391 # CHECK-NEXT: [4] Total number of buffer entries.
393 # CHECK: [1] [2] [3] [4]
394 # CHECK-NEXT: SBPortAny 49 54 54
396 # CHECK: Resources:
397 # CHECK-NEXT: [0] - SBDivider
398 # CHECK-NEXT: [1] - SBFPDivider
399 # CHECK-NEXT: [2] - SBPort0
400 # CHECK-NEXT: [3] - SBPort1
401 # CHECK-NEXT: [4] - SBPort4
402 # CHECK-NEXT: [5] - SBPort5
403 # CHECK-NEXT: [6.0] - SBPort23
404 # CHECK-NEXT: [6.1] - SBPort23
406 # CHECK: Resource pressure per iteration:
407 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
408 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
410 # CHECK: Resource pressure by instruction:
411 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
412 # CHECK-NEXT: - - - - 1.00 - - 1.00 movq %rsp, (%rax)
413 # CHECK-NEXT: - - - - 1.00 - 1.00 - movq %rbp, (%rcx)
414 # CHECK-NEXT: - - - - 1.00 - - 1.00 movq %rsi, (%rdx)
415 # CHECK-NEXT: - - - - 1.00 - 1.00 - movq %rdi, (%rbx)
417 # CHECK: Timeline view:
418 # CHECK-NEXT: Index 0123456
420 # CHECK: [0,0] DeER .. movq %rsp, (%rax)
421 # CHECK-NEXT: [0,1] D=eER.. movq %rbp, (%rcx)
422 # CHECK-NEXT: [0,2] D==eER. movq %rsi, (%rdx)
423 # CHECK-NEXT: [0,3] D===eER movq %rdi, (%rbx)
425 # CHECK: Average Wait times (based on the timeline view):
426 # CHECK-NEXT: [0]: Executions
427 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
428 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
429 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
431 # CHECK: [0] [1] [2] [3]
432 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq %rsp, (%rax)
433 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movq %rbp, (%rcx)
434 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movq %rsi, (%rdx)
435 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movq %rdi, (%rbx)
436 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>
438 # CHECK: [4] Code Region
440 # CHECK: Iterations: 100
441 # CHECK-NEXT: Instructions: 400
442 # CHECK-NEXT: Total Cycles: 403
443 # CHECK-NEXT: Total uOps: 400
445 # CHECK: Dispatch Width: 4
446 # CHECK-NEXT: uOps Per Cycle: 0.99
447 # CHECK-NEXT: IPC: 0.99
448 # CHECK-NEXT: Block RThroughput: 4.0
450 # CHECK: Instruction Info:
451 # CHECK-NEXT: [1]: #uOps
452 # CHECK-NEXT: [2]: Latency
453 # CHECK-NEXT: [3]: RThroughput
454 # CHECK-NEXT: [4]: MayLoad
455 # CHECK-NEXT: [5]: MayStore
456 # CHECK-NEXT: [6]: HasSideEffects (U)
458 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
459 # CHECK-NEXT: 1 1 1.00 * U movd %mm0, (%rax)
460 # CHECK-NEXT: 1 1 1.00 * U movd %mm1, (%rcx)
461 # CHECK-NEXT: 1 1 1.00 * U movd %mm2, (%rdx)
462 # CHECK-NEXT: 1 1 1.00 * U movd %mm3, (%rbx)
464 # CHECK: Dynamic Dispatch Stall Cycles:
465 # CHECK-NEXT: RAT - Register unavailable: 0
466 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
467 # CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%)
468 # CHECK-NEXT: LQ - Load queue full: 0
469 # CHECK-NEXT: SQ - Store queue full: 0
470 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
471 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
473 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
474 # CHECK-NEXT: [# dispatched], [# cycles]
475 # CHECK-NEXT: 0, 56 (13.9%)
476 # CHECK-NEXT: 1, 329 (81.6%)
477 # CHECK-NEXT: 3, 1 (0.2%)
478 # CHECK-NEXT: 4, 17 (4.2%)
480 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
481 # CHECK-NEXT: [# issued], [# cycles]
482 # CHECK-NEXT: 0, 3 (0.7%)
483 # CHECK-NEXT: 1, 400 (99.3%)
485 # CHECK: Scheduler's queue usage:
486 # CHECK-NEXT: [1] Resource name.
487 # CHECK-NEXT: [2] Average number of used buffer entries.
488 # CHECK-NEXT: [3] Maximum number of used buffer entries.
489 # CHECK-NEXT: [4] Total number of buffer entries.
491 # CHECK: [1] [2] [3] [4]
492 # CHECK-NEXT: SBPortAny 49 54 54
494 # CHECK: Resources:
495 # CHECK-NEXT: [0] - SBDivider
496 # CHECK-NEXT: [1] - SBFPDivider
497 # CHECK-NEXT: [2] - SBPort0
498 # CHECK-NEXT: [3] - SBPort1
499 # CHECK-NEXT: [4] - SBPort4
500 # CHECK-NEXT: [5] - SBPort5
501 # CHECK-NEXT: [6.0] - SBPort23
502 # CHECK-NEXT: [6.1] - SBPort23
504 # CHECK: Resource pressure per iteration:
505 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
506 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
508 # CHECK: Resource pressure by instruction:
509 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
510 # CHECK-NEXT: - - - - 1.00 - - 1.00 movd %mm0, (%rax)
511 # CHECK-NEXT: - - - - 1.00 - 1.00 - movd %mm1, (%rcx)
512 # CHECK-NEXT: - - - - 1.00 - - 1.00 movd %mm2, (%rdx)
513 # CHECK-NEXT: - - - - 1.00 - 1.00 - movd %mm3, (%rbx)
515 # CHECK: Timeline view:
516 # CHECK-NEXT: Index 0123456
518 # CHECK: [0,0] DeER .. movd %mm0, (%rax)
519 # CHECK-NEXT: [0,1] D=eER.. movd %mm1, (%rcx)
520 # CHECK-NEXT: [0,2] D==eER. movd %mm2, (%rdx)
521 # CHECK-NEXT: [0,3] D===eER movd %mm3, (%rbx)
523 # CHECK: Average Wait times (based on the timeline view):
524 # CHECK-NEXT: [0]: Executions
525 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
526 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
527 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
529 # CHECK: [0] [1] [2] [3]
530 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd %mm0, (%rax)
531 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movd %mm1, (%rcx)
532 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movd %mm2, (%rdx)
533 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movd %mm3, (%rbx)
534 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>
536 # CHECK: [5] Code Region
538 # CHECK: Iterations: 100
539 # CHECK-NEXT: Instructions: 400
540 # CHECK-NEXT: Total Cycles: 403
541 # CHECK-NEXT: Total uOps: 400
543 # CHECK: Dispatch Width: 4
544 # CHECK-NEXT: uOps Per Cycle: 0.99
545 # CHECK-NEXT: IPC: 0.99
546 # CHECK-NEXT: Block RThroughput: 4.0
548 # CHECK: Instruction Info:
549 # CHECK-NEXT: [1]: #uOps
550 # CHECK-NEXT: [2]: Latency
551 # CHECK-NEXT: [3]: RThroughput
552 # CHECK-NEXT: [4]: MayLoad
553 # CHECK-NEXT: [5]: MayStore
554 # CHECK-NEXT: [6]: HasSideEffects (U)
556 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
557 # CHECK-NEXT: 1 1 1.00 * movaps %xmm0, (%rax)
558 # CHECK-NEXT: 1 1 1.00 * movaps %xmm1, (%rcx)
559 # CHECK-NEXT: 1 1 1.00 * movaps %xmm2, (%rdx)
560 # CHECK-NEXT: 1 1 1.00 * movaps %xmm3, (%rbx)
562 # CHECK: Dynamic Dispatch Stall Cycles:
563 # CHECK-NEXT: RAT - Register unavailable: 0
564 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
565 # CHECK-NEXT: SCHEDQ - Scheduler full: 329 (81.6%)
566 # CHECK-NEXT: LQ - Load queue full: 0
567 # CHECK-NEXT: SQ - Store queue full: 0
568 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
569 # CHECK-NEXT: USH - Uncategorised Structural Hazard: 0
571 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
572 # CHECK-NEXT: [# dispatched], [# cycles]
573 # CHECK-NEXT: 0, 56 (13.9%)
574 # CHECK-NEXT: 1, 329 (81.6%)
575 # CHECK-NEXT: 3, 1 (0.2%)
576 # CHECK-NEXT: 4, 17 (4.2%)
578 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
579 # CHECK-NEXT: [# issued], [# cycles]
580 # CHECK-NEXT: 0, 3 (0.7%)
581 # CHECK-NEXT: 1, 400 (99.3%)
583 # CHECK: Scheduler's queue usage:
584 # CHECK-NEXT: [1] Resource name.
585 # CHECK-NEXT: [2] Average number of used buffer entries.
586 # CHECK-NEXT: [3] Maximum number of used buffer entries.
587 # CHECK-NEXT: [4] Total number of buffer entries.
589 # CHECK: [1] [2] [3] [4]
590 # CHECK-NEXT: SBPortAny 49 54 54
592 # CHECK: Resources:
593 # CHECK-NEXT: [0] - SBDivider
594 # CHECK-NEXT: [1] - SBFPDivider
595 # CHECK-NEXT: [2] - SBPort0
596 # CHECK-NEXT: [3] - SBPort1
597 # CHECK-NEXT: [4] - SBPort4
598 # CHECK-NEXT: [5] - SBPort5
599 # CHECK-NEXT: [6.0] - SBPort23
600 # CHECK-NEXT: [6.1] - SBPort23
602 # CHECK: Resource pressure per iteration:
603 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
604 # CHECK-NEXT: - - - - 4.00 - 2.00 2.00
606 # CHECK: Resource pressure by instruction:
607 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
608 # CHECK-NEXT: - - - - 1.00 - - 1.00 movaps %xmm0, (%rax)
609 # CHECK-NEXT: - - - - 1.00 - 1.00 - movaps %xmm1, (%rcx)
610 # CHECK-NEXT: - - - - 1.00 - - 1.00 movaps %xmm2, (%rdx)
611 # CHECK-NEXT: - - - - 1.00 - 1.00 - movaps %xmm3, (%rbx)
613 # CHECK: Timeline view:
614 # CHECK-NEXT: Index 0123456
616 # CHECK: [0,0] DeER .. movaps %xmm0, (%rax)
617 # CHECK-NEXT: [0,1] D=eER.. movaps %xmm1, (%rcx)
618 # CHECK-NEXT: [0,2] D==eER. movaps %xmm2, (%rdx)
619 # CHECK-NEXT: [0,3] D===eER movaps %xmm3, (%rbx)
621 # CHECK: Average Wait times (based on the timeline view):
622 # CHECK-NEXT: [0]: Executions
623 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
624 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
625 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
627 # CHECK: [0] [1] [2] [3]
628 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps %xmm0, (%rax)
629 # CHECK-NEXT: 1. 1 2.0 1.0 0.0 movaps %xmm1, (%rcx)
630 # CHECK-NEXT: 2. 1 3.0 1.0 0.0 movaps %xmm2, (%rdx)
631 # CHECK-NEXT: 3. 1 4.0 1.0 0.0 movaps %xmm3, (%rbx)
632 # CHECK-NEXT: 1 2.5 1.0 0.0 <total>