[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / tools / llvm-mca / X86 / BdVer2 / load-store-throughput.s
blobf326028e12ab554b1b53b9a23ecb8e8475bab8d2
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
4 # LLVM-MCA-BEGIN
5 movb %spl, (%rax)
6 movb (%rcx), %bpl
7 movb (%rdx), %sil
8 movb %dil, (%rbx)
9 # LLVM-MCA-END
11 # LLVM-MCA-BEGIN
12 movw %sp, (%rax)
13 movw (%rcx), %bp
14 movw (%rdx), %si
15 movw %di, (%rbx)
16 # LLVM-MCA-END
18 # LLVM-MCA-BEGIN
19 movl %esp, (%rax)
20 movl (%rcx), %ebp
21 movl (%rdx), %esi
22 movl %edi, (%rbx)
23 # LLVM-MCA-END
25 # LLVM-MCA-BEGIN
26 movq %rsp, (%rax)
27 movq (%rcx), %rbp
28 movq (%rdx), %rsi
29 movq %rdi, (%rbx)
30 # LLVM-MCA-END
32 # LLVM-MCA-BEGIN
33 movd %mm0, (%rax)
34 movd (%rcx), %mm1
35 movd (%rdx), %mm2
36 movd %mm3, (%rbx)
37 # LLVM-MCA-END
39 # LLVM-MCA-BEGIN
40 movaps %xmm0, (%rax)
41 movaps (%rcx), %xmm1
42 movaps (%rdx), %xmm2
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: 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: 257 (84.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, 34 (11.1%)
83 # CHECK-NEXT: 1, 172 (56.2%)
84 # CHECK-NEXT: 2, 86 (28.1%)
85 # CHECK-NEXT: 4, 14 (4.6%)
87 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
88 # CHECK-NEXT: [# issued], [# cycles]
89 # CHECK-NEXT: 0, 5 (1.6%)
90 # CHECK-NEXT: 1, 202 (66.0%)
91 # CHECK-NEXT: 2, 99 (32.4%)
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: PdEX 36 40 40
101 # CHECK-NEXT: PdFPU 0 0 64
102 # CHECK-NEXT: PdLoad 19 22 40
103 # CHECK-NEXT: PdStore 20 23 24
105 # CHECK: Resources:
106 # CHECK-NEXT: [0.0] - PdAGLU01
107 # CHECK-NEXT: [0.1] - PdAGLU01
108 # CHECK-NEXT: [1] - PdBranch
109 # CHECK-NEXT: [2] - PdCount
110 # CHECK-NEXT: [3] - PdDiv
111 # CHECK-NEXT: [4] - PdEX0
112 # CHECK-NEXT: [5] - PdEX1
113 # CHECK-NEXT: [6] - PdFPCVT
114 # CHECK-NEXT: [7.0] - PdFPFMA
115 # CHECK-NEXT: [7.1] - PdFPFMA
116 # CHECK-NEXT: [8.0] - PdFPMAL
117 # CHECK-NEXT: [8.1] - PdFPMAL
118 # CHECK-NEXT: [9] - PdFPMMA
119 # CHECK-NEXT: [10] - PdFPSTO
120 # CHECK-NEXT: [11] - PdFPU0
121 # CHECK-NEXT: [12] - PdFPU1
122 # CHECK-NEXT: [13] - PdFPU2
123 # CHECK-NEXT: [14] - PdFPU3
124 # CHECK-NEXT: [15] - PdFPXBR
125 # CHECK-NEXT: [16.0] - PdLoad
126 # CHECK-NEXT: [16.1] - PdLoad
127 # CHECK-NEXT: [17] - PdMul
128 # CHECK-NEXT: [18] - PdStore
130 # CHECK: Resource pressure per iteration:
131 # 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]
132 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
134 # CHECK: Resource pressure by instruction:
135 # 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:
136 # CHECK-NEXT: 0.96 0.04 - - - - - - - - - - - - - - - - - - - - 1.00 movb %spl, (%rax)
137 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rcx), %bpl
138 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rdx), %sil
139 # CHECK-NEXT: 0.04 0.96 - - - - - - - - - - - - - - - - - - - - 1.00 movb %dil, (%rbx)
141 # CHECK: Timeline view:
142 # CHECK-NEXT: Index 0123456789
144 # CHECK: [0,0] DeER . . movb %spl, (%rax)
145 # CHECK-NEXT: [0,1] DeeeeeER . movb (%rcx), %bpl
146 # CHECK-NEXT: [0,2] D=eeeeeER. movb (%rdx), %sil
147 # CHECK-NEXT: [0,3] D======eER movb %dil, (%rbx)
149 # CHECK: Average Wait times (based on the timeline view):
150 # CHECK-NEXT: [0]: Executions
151 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
152 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
153 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
155 # CHECK: [0] [1] [2] [3]
156 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb %spl, (%rax)
157 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
158 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
159 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movb %dil, (%rbx)
160 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>
162 # CHECK: [1] Code Region
164 # CHECK: Iterations: 100
165 # CHECK-NEXT: Instructions: 400
166 # CHECK-NEXT: Total Cycles: 306
167 # CHECK-NEXT: Total uOps: 400
169 # CHECK: Dispatch Width: 4
170 # CHECK-NEXT: uOps Per Cycle: 1.31
171 # CHECK-NEXT: IPC: 1.31
172 # CHECK-NEXT: Block RThroughput: 3.0
174 # CHECK: Instruction Info:
175 # CHECK-NEXT: [1]: #uOps
176 # CHECK-NEXT: [2]: Latency
177 # CHECK-NEXT: [3]: RThroughput
178 # CHECK-NEXT: [4]: MayLoad
179 # CHECK-NEXT: [5]: MayStore
180 # CHECK-NEXT: [6]: HasSideEffects (U)
182 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
183 # CHECK-NEXT: 1 1 1.00 * movw %sp, (%rax)
184 # CHECK-NEXT: 1 5 1.00 * movw (%rcx), %bp
185 # CHECK-NEXT: 1 5 1.00 * movw (%rdx), %si
186 # CHECK-NEXT: 1 1 1.00 * movw %di, (%rbx)
188 # CHECK: Dynamic Dispatch Stall Cycles:
189 # CHECK-NEXT: RAT - Register unavailable: 0
190 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
191 # CHECK-NEXT: SCHEDQ - Scheduler full: 257 (84.0%)
192 # CHECK-NEXT: LQ - Load queue full: 0
193 # CHECK-NEXT: SQ - Store queue full: 0
194 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
196 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
197 # CHECK-NEXT: [# dispatched], [# cycles]
198 # CHECK-NEXT: 0, 34 (11.1%)
199 # CHECK-NEXT: 1, 172 (56.2%)
200 # CHECK-NEXT: 2, 86 (28.1%)
201 # CHECK-NEXT: 4, 14 (4.6%)
203 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
204 # CHECK-NEXT: [# issued], [# cycles]
205 # CHECK-NEXT: 0, 5 (1.6%)
206 # CHECK-NEXT: 1, 202 (66.0%)
207 # CHECK-NEXT: 2, 99 (32.4%)
209 # CHECK: Scheduler's queue usage:
210 # CHECK-NEXT: [1] Resource name.
211 # CHECK-NEXT: [2] Average number of used buffer entries.
212 # CHECK-NEXT: [3] Maximum number of used buffer entries.
213 # CHECK-NEXT: [4] Total number of buffer entries.
215 # CHECK: [1] [2] [3] [4]
216 # CHECK-NEXT: PdEX 36 40 40
217 # CHECK-NEXT: PdFPU 0 0 64
218 # CHECK-NEXT: PdLoad 19 22 40
219 # CHECK-NEXT: PdStore 20 23 24
221 # CHECK: Resources:
222 # CHECK-NEXT: [0.0] - PdAGLU01
223 # CHECK-NEXT: [0.1] - PdAGLU01
224 # CHECK-NEXT: [1] - PdBranch
225 # CHECK-NEXT: [2] - PdCount
226 # CHECK-NEXT: [3] - PdDiv
227 # CHECK-NEXT: [4] - PdEX0
228 # CHECK-NEXT: [5] - PdEX1
229 # CHECK-NEXT: [6] - PdFPCVT
230 # CHECK-NEXT: [7.0] - PdFPFMA
231 # CHECK-NEXT: [7.1] - PdFPFMA
232 # CHECK-NEXT: [8.0] - PdFPMAL
233 # CHECK-NEXT: [8.1] - PdFPMAL
234 # CHECK-NEXT: [9] - PdFPMMA
235 # CHECK-NEXT: [10] - PdFPSTO
236 # CHECK-NEXT: [11] - PdFPU0
237 # CHECK-NEXT: [12] - PdFPU1
238 # CHECK-NEXT: [13] - PdFPU2
239 # CHECK-NEXT: [14] - PdFPU3
240 # CHECK-NEXT: [15] - PdFPXBR
241 # CHECK-NEXT: [16.0] - PdLoad
242 # CHECK-NEXT: [16.1] - PdLoad
243 # CHECK-NEXT: [17] - PdMul
244 # CHECK-NEXT: [18] - PdStore
246 # CHECK: Resource pressure per iteration:
247 # 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]
248 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
250 # CHECK: Resource pressure by instruction:
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] Instructions:
252 # CHECK-NEXT: 0.96 0.04 - - - - - - - - - - - - - - - - - - - - 1.00 movw %sp, (%rax)
253 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rcx), %bp
254 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rdx), %si
255 # CHECK-NEXT: 0.04 0.96 - - - - - - - - - - - - - - - - - - - - 1.00 movw %di, (%rbx)
257 # CHECK: Timeline view:
258 # CHECK-NEXT: Index 0123456789
260 # CHECK: [0,0] DeER . . movw %sp, (%rax)
261 # CHECK-NEXT: [0,1] DeeeeeER . movw (%rcx), %bp
262 # CHECK-NEXT: [0,2] D=eeeeeER. movw (%rdx), %si
263 # CHECK-NEXT: [0,3] D======eER movw %di, (%rbx)
265 # CHECK: Average Wait times (based on the timeline view):
266 # CHECK-NEXT: [0]: Executions
267 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
268 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
269 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
271 # CHECK: [0] [1] [2] [3]
272 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw %sp, (%rax)
273 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
274 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
275 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movw %di, (%rbx)
276 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>
278 # CHECK: [2] Code Region
280 # CHECK: Iterations: 100
281 # CHECK-NEXT: Instructions: 400
282 # CHECK-NEXT: Total Cycles: 306
283 # CHECK-NEXT: Total uOps: 400
285 # CHECK: Dispatch Width: 4
286 # CHECK-NEXT: uOps Per Cycle: 1.31
287 # CHECK-NEXT: IPC: 1.31
288 # CHECK-NEXT: Block RThroughput: 3.0
290 # CHECK: Instruction Info:
291 # CHECK-NEXT: [1]: #uOps
292 # CHECK-NEXT: [2]: Latency
293 # CHECK-NEXT: [3]: RThroughput
294 # CHECK-NEXT: [4]: MayLoad
295 # CHECK-NEXT: [5]: MayStore
296 # CHECK-NEXT: [6]: HasSideEffects (U)
298 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
299 # CHECK-NEXT: 1 1 1.00 * movl %esp, (%rax)
300 # CHECK-NEXT: 1 5 1.00 * movl (%rcx), %ebp
301 # CHECK-NEXT: 1 5 1.00 * movl (%rdx), %esi
302 # CHECK-NEXT: 1 1 1.00 * movl %edi, (%rbx)
304 # CHECK: Dynamic Dispatch Stall Cycles:
305 # CHECK-NEXT: RAT - Register unavailable: 0
306 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
307 # CHECK-NEXT: SCHEDQ - Scheduler full: 257 (84.0%)
308 # CHECK-NEXT: LQ - Load queue full: 0
309 # CHECK-NEXT: SQ - Store queue full: 0
310 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
312 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
313 # CHECK-NEXT: [# dispatched], [# cycles]
314 # CHECK-NEXT: 0, 34 (11.1%)
315 # CHECK-NEXT: 1, 172 (56.2%)
316 # CHECK-NEXT: 2, 86 (28.1%)
317 # CHECK-NEXT: 4, 14 (4.6%)
319 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
320 # CHECK-NEXT: [# issued], [# cycles]
321 # CHECK-NEXT: 0, 5 (1.6%)
322 # CHECK-NEXT: 1, 202 (66.0%)
323 # CHECK-NEXT: 2, 99 (32.4%)
325 # CHECK: Scheduler's queue usage:
326 # CHECK-NEXT: [1] Resource name.
327 # CHECK-NEXT: [2] Average number of used buffer entries.
328 # CHECK-NEXT: [3] Maximum number of used buffer entries.
329 # CHECK-NEXT: [4] Total number of buffer entries.
331 # CHECK: [1] [2] [3] [4]
332 # CHECK-NEXT: PdEX 36 40 40
333 # CHECK-NEXT: PdFPU 0 0 64
334 # CHECK-NEXT: PdLoad 19 22 40
335 # CHECK-NEXT: PdStore 20 23 24
337 # CHECK: Resources:
338 # CHECK-NEXT: [0.0] - PdAGLU01
339 # CHECK-NEXT: [0.1] - PdAGLU01
340 # CHECK-NEXT: [1] - PdBranch
341 # CHECK-NEXT: [2] - PdCount
342 # CHECK-NEXT: [3] - PdDiv
343 # CHECK-NEXT: [4] - PdEX0
344 # CHECK-NEXT: [5] - PdEX1
345 # CHECK-NEXT: [6] - PdFPCVT
346 # CHECK-NEXT: [7.0] - PdFPFMA
347 # CHECK-NEXT: [7.1] - PdFPFMA
348 # CHECK-NEXT: [8.0] - PdFPMAL
349 # CHECK-NEXT: [8.1] - PdFPMAL
350 # CHECK-NEXT: [9] - PdFPMMA
351 # CHECK-NEXT: [10] - PdFPSTO
352 # CHECK-NEXT: [11] - PdFPU0
353 # CHECK-NEXT: [12] - PdFPU1
354 # CHECK-NEXT: [13] - PdFPU2
355 # CHECK-NEXT: [14] - PdFPU3
356 # CHECK-NEXT: [15] - PdFPXBR
357 # CHECK-NEXT: [16.0] - PdLoad
358 # CHECK-NEXT: [16.1] - PdLoad
359 # CHECK-NEXT: [17] - PdMul
360 # CHECK-NEXT: [18] - PdStore
362 # CHECK: Resource pressure per iteration:
363 # 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]
364 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
366 # CHECK: Resource pressure by instruction:
367 # 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:
368 # CHECK-NEXT: 0.96 0.04 - - - - - - - - - - - - - - - - - - - - 1.00 movl %esp, (%rax)
369 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rcx), %ebp
370 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rdx), %esi
371 # CHECK-NEXT: 0.04 0.96 - - - - - - - - - - - - - - - - - - - - 1.00 movl %edi, (%rbx)
373 # CHECK: Timeline view:
374 # CHECK-NEXT: Index 0123456789
376 # CHECK: [0,0] DeER . . movl %esp, (%rax)
377 # CHECK-NEXT: [0,1] DeeeeeER . movl (%rcx), %ebp
378 # CHECK-NEXT: [0,2] D=eeeeeER. movl (%rdx), %esi
379 # CHECK-NEXT: [0,3] D======eER movl %edi, (%rbx)
381 # CHECK: Average Wait times (based on the timeline view):
382 # CHECK-NEXT: [0]: Executions
383 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
384 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
385 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
387 # CHECK: [0] [1] [2] [3]
388 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl %esp, (%rax)
389 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
390 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
391 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movl %edi, (%rbx)
392 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>
394 # CHECK: [3] Code Region
396 # CHECK: Iterations: 100
397 # CHECK-NEXT: Instructions: 400
398 # CHECK-NEXT: Total Cycles: 306
399 # CHECK-NEXT: Total uOps: 400
401 # CHECK: Dispatch Width: 4
402 # CHECK-NEXT: uOps Per Cycle: 1.31
403 # CHECK-NEXT: IPC: 1.31
404 # CHECK-NEXT: Block RThroughput: 3.0
406 # CHECK: Instruction Info:
407 # CHECK-NEXT: [1]: #uOps
408 # CHECK-NEXT: [2]: Latency
409 # CHECK-NEXT: [3]: RThroughput
410 # CHECK-NEXT: [4]: MayLoad
411 # CHECK-NEXT: [5]: MayStore
412 # CHECK-NEXT: [6]: HasSideEffects (U)
414 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
415 # CHECK-NEXT: 1 1 1.00 * movq %rsp, (%rax)
416 # CHECK-NEXT: 1 5 1.00 * movq (%rcx), %rbp
417 # CHECK-NEXT: 1 5 1.00 * movq (%rdx), %rsi
418 # CHECK-NEXT: 1 1 1.00 * movq %rdi, (%rbx)
420 # CHECK: Dynamic Dispatch Stall Cycles:
421 # CHECK-NEXT: RAT - Register unavailable: 0
422 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
423 # CHECK-NEXT: SCHEDQ - Scheduler full: 257 (84.0%)
424 # CHECK-NEXT: LQ - Load queue full: 0
425 # CHECK-NEXT: SQ - Store queue full: 0
426 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
428 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
429 # CHECK-NEXT: [# dispatched], [# cycles]
430 # CHECK-NEXT: 0, 34 (11.1%)
431 # CHECK-NEXT: 1, 172 (56.2%)
432 # CHECK-NEXT: 2, 86 (28.1%)
433 # CHECK-NEXT: 4, 14 (4.6%)
435 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
436 # CHECK-NEXT: [# issued], [# cycles]
437 # CHECK-NEXT: 0, 5 (1.6%)
438 # CHECK-NEXT: 1, 202 (66.0%)
439 # CHECK-NEXT: 2, 99 (32.4%)
441 # CHECK: Scheduler's queue usage:
442 # CHECK-NEXT: [1] Resource name.
443 # CHECK-NEXT: [2] Average number of used buffer entries.
444 # CHECK-NEXT: [3] Maximum number of used buffer entries.
445 # CHECK-NEXT: [4] Total number of buffer entries.
447 # CHECK: [1] [2] [3] [4]
448 # CHECK-NEXT: PdEX 36 40 40
449 # CHECK-NEXT: PdFPU 0 0 64
450 # CHECK-NEXT: PdLoad 19 22 40
451 # CHECK-NEXT: PdStore 20 23 24
453 # CHECK: Resources:
454 # CHECK-NEXT: [0.0] - PdAGLU01
455 # CHECK-NEXT: [0.1] - PdAGLU01
456 # CHECK-NEXT: [1] - PdBranch
457 # CHECK-NEXT: [2] - PdCount
458 # CHECK-NEXT: [3] - PdDiv
459 # CHECK-NEXT: [4] - PdEX0
460 # CHECK-NEXT: [5] - PdEX1
461 # CHECK-NEXT: [6] - PdFPCVT
462 # CHECK-NEXT: [7.0] - PdFPFMA
463 # CHECK-NEXT: [7.1] - PdFPFMA
464 # CHECK-NEXT: [8.0] - PdFPMAL
465 # CHECK-NEXT: [8.1] - PdFPMAL
466 # CHECK-NEXT: [9] - PdFPMMA
467 # CHECK-NEXT: [10] - PdFPSTO
468 # CHECK-NEXT: [11] - PdFPU0
469 # CHECK-NEXT: [12] - PdFPU1
470 # CHECK-NEXT: [13] - PdFPU2
471 # CHECK-NEXT: [14] - PdFPU3
472 # CHECK-NEXT: [15] - PdFPXBR
473 # CHECK-NEXT: [16.0] - PdLoad
474 # CHECK-NEXT: [16.1] - PdLoad
475 # CHECK-NEXT: [17] - PdMul
476 # CHECK-NEXT: [18] - PdStore
478 # CHECK: Resource pressure per iteration:
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]
480 # CHECK-NEXT: 3.00 3.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - 2.00
482 # CHECK: Resource pressure by instruction:
483 # 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:
484 # CHECK-NEXT: 0.96 0.04 - - - - - - - - - - - - - - - - - - - - 1.00 movq %rsp, (%rax)
485 # CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rcx), %rbp
486 # CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rdx), %rsi
487 # CHECK-NEXT: 0.04 0.96 - - - - - - - - - - - - - - - - - - - - 1.00 movq %rdi, (%rbx)
489 # CHECK: Timeline view:
490 # CHECK-NEXT: Index 0123456789
492 # CHECK: [0,0] DeER . . movq %rsp, (%rax)
493 # CHECK-NEXT: [0,1] DeeeeeER . movq (%rcx), %rbp
494 # CHECK-NEXT: [0,2] D=eeeeeER. movq (%rdx), %rsi
495 # CHECK-NEXT: [0,3] D======eER movq %rdi, (%rbx)
497 # CHECK: Average Wait times (based on the timeline view):
498 # CHECK-NEXT: [0]: Executions
499 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
500 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
501 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
503 # CHECK: [0] [1] [2] [3]
504 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq %rsp, (%rax)
505 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
506 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
507 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movq %rdi, (%rbx)
508 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>
510 # CHECK: [4] Code Region
512 # CHECK: Iterations: 100
513 # CHECK-NEXT: Instructions: 400
514 # CHECK-NEXT: Total Cycles: 554
515 # CHECK-NEXT: Total uOps: 400
517 # CHECK: Dispatch Width: 4
518 # CHECK-NEXT: uOps Per Cycle: 0.72
519 # CHECK-NEXT: IPC: 0.72
520 # CHECK-NEXT: Block RThroughput: 4.0
522 # CHECK: Instruction Info:
523 # CHECK-NEXT: [1]: #uOps
524 # CHECK-NEXT: [2]: Latency
525 # CHECK-NEXT: [3]: RThroughput
526 # CHECK-NEXT: [4]: MayLoad
527 # CHECK-NEXT: [5]: MayStore
528 # CHECK-NEXT: [6]: HasSideEffects (U)
530 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
531 # CHECK-NEXT: 1 2 1.50 * U movd %mm0, (%rax)
532 # CHECK-NEXT: 1 5 1.50 * movd (%rcx), %mm1
533 # CHECK-NEXT: 1 5 1.50 * movd (%rdx), %mm2
534 # CHECK-NEXT: 1 2 1.50 * U movd %mm3, (%rbx)
536 # CHECK: Dynamic Dispatch Stall Cycles:
537 # CHECK-NEXT: RAT - Register unavailable: 0
538 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
539 # CHECK-NEXT: SCHEDQ - Scheduler full: 55 (9.9%)
540 # CHECK-NEXT: LQ - Load queue full: 0
541 # CHECK-NEXT: SQ - Store queue full: 437 (78.9%)
542 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
544 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
545 # CHECK-NEXT: [# dispatched], [# cycles]
546 # CHECK-NEXT: 0, 365 (65.9%)
547 # CHECK-NEXT: 1, 88 (15.9%)
548 # CHECK-NEXT: 2, 3 (0.5%)
549 # CHECK-NEXT: 3, 86 (15.5%)
550 # CHECK-NEXT: 4, 12 (2.2%)
552 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
553 # CHECK-NEXT: [# issued], [# cycles]
554 # CHECK-NEXT: 0, 253 (45.7%)
555 # CHECK-NEXT: 1, 202 (36.5%)
556 # CHECK-NEXT: 2, 99 (17.9%)
558 # CHECK: Scheduler's queue usage:
559 # CHECK-NEXT: [1] Resource name.
560 # CHECK-NEXT: [2] Average number of used buffer entries.
561 # CHECK-NEXT: [3] Maximum number of used buffer entries.
562 # CHECK-NEXT: [4] Total number of buffer entries.
564 # CHECK: [1] [2] [3] [4]
565 # CHECK-NEXT: PdEX 23 40 40
566 # CHECK-NEXT: PdFPU 23 40 64
567 # CHECK-NEXT: PdLoad 3 22 40
568 # CHECK-NEXT: PdStore 22 24 24
570 # CHECK: Resources:
571 # CHECK-NEXT: [0.0] - PdAGLU01
572 # CHECK-NEXT: [0.1] - PdAGLU01
573 # CHECK-NEXT: [1] - PdBranch
574 # CHECK-NEXT: [2] - PdCount
575 # CHECK-NEXT: [3] - PdDiv
576 # CHECK-NEXT: [4] - PdEX0
577 # CHECK-NEXT: [5] - PdEX1
578 # CHECK-NEXT: [6] - PdFPCVT
579 # CHECK-NEXT: [7.0] - PdFPFMA
580 # CHECK-NEXT: [7.1] - PdFPFMA
581 # CHECK-NEXT: [8.0] - PdFPMAL
582 # CHECK-NEXT: [8.1] - PdFPMAL
583 # CHECK-NEXT: [9] - PdFPMMA
584 # CHECK-NEXT: [10] - PdFPSTO
585 # CHECK-NEXT: [11] - PdFPU0
586 # CHECK-NEXT: [12] - PdFPU1
587 # CHECK-NEXT: [13] - PdFPU2
588 # CHECK-NEXT: [14] - PdFPU3
589 # CHECK-NEXT: [15] - PdFPXBR
590 # CHECK-NEXT: [16.0] - PdLoad
591 # CHECK-NEXT: [16.1] - PdLoad
592 # CHECK-NEXT: [17] - PdMul
593 # CHECK-NEXT: [18] - PdStore
595 # CHECK: Resource pressure per iteration:
596 # 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]
597 # 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
599 # CHECK: Resource pressure by instruction:
600 # 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:
601 # CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movd %mm0, (%rax)
602 # CHECK-NEXT: 1.53 1.47 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rcx), %mm1
603 # CHECK-NEXT: 1.47 1.53 - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rdx), %mm2
604 # CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movd %mm3, (%rbx)
606 # CHECK: Timeline view:
607 # CHECK-NEXT: 0
608 # CHECK-NEXT: Index 0123456789
610 # CHECK: [0,0] DeeER. . movd %mm0, (%rax)
611 # CHECK-NEXT: [0,1] DeeeeeER . movd (%rcx), %mm1
612 # CHECK-NEXT: [0,2] D=eeeeeER . movd (%rdx), %mm2
613 # CHECK-NEXT: [0,3] D======eeER movd %mm3, (%rbx)
615 # CHECK: Average Wait times (based on the timeline view):
616 # CHECK-NEXT: [0]: Executions
617 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
618 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
619 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
621 # CHECK: [0] [1] [2] [3]
622 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd %mm0, (%rax)
623 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
624 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
625 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movd %mm3, (%rbx)
626 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>
628 # CHECK: [5] Code Region
630 # CHECK: Iterations: 100
631 # CHECK-NEXT: Instructions: 400
632 # CHECK-NEXT: Total Cycles: 405
633 # CHECK-NEXT: Total uOps: 400
635 # CHECK: Dispatch Width: 4
636 # CHECK-NEXT: uOps Per Cycle: 0.99
637 # CHECK-NEXT: IPC: 0.99
638 # CHECK-NEXT: Block RThroughput: 4.0
640 # CHECK: Instruction Info:
641 # CHECK-NEXT: [1]: #uOps
642 # CHECK-NEXT: [2]: Latency
643 # CHECK-NEXT: [3]: RThroughput
644 # CHECK-NEXT: [4]: MayLoad
645 # CHECK-NEXT: [5]: MayStore
646 # CHECK-NEXT: [6]: HasSideEffects (U)
648 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
649 # CHECK-NEXT: 1 1 1.50 * movaps %xmm0, (%rax)
650 # CHECK-NEXT: 1 5 1.50 * movaps (%rcx), %xmm1
651 # CHECK-NEXT: 1 5 1.50 * movaps (%rdx), %xmm2
652 # CHECK-NEXT: 1 1 1.50 * movaps %xmm3, (%rbx)
654 # CHECK: Dynamic Dispatch Stall Cycles:
655 # CHECK-NEXT: RAT - Register unavailable: 0
656 # CHECK-NEXT: RCU - Retire tokens unavailable: 0
657 # CHECK-NEXT: SCHEDQ - Scheduler full: 347 (85.7%)
658 # CHECK-NEXT: LQ - Load queue full: 0
659 # CHECK-NEXT: SQ - Store queue full: 0
660 # CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
662 # CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
663 # CHECK-NEXT: [# dispatched], [# cycles]
664 # CHECK-NEXT: 0, 131 (32.3%)
665 # CHECK-NEXT: 1, 174 (43.0%)
666 # CHECK-NEXT: 2, 87 (21.5%)
667 # CHECK-NEXT: 4, 13 (3.2%)
669 # CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
670 # CHECK-NEXT: [# issued], [# cycles]
671 # CHECK-NEXT: 0, 104 (25.7%)
672 # CHECK-NEXT: 1, 202 (49.9%)
673 # CHECK-NEXT: 2, 99 (24.4%)
675 # CHECK: Scheduler's queue usage:
676 # CHECK-NEXT: [1] Resource name.
677 # CHECK-NEXT: [2] Average number of used buffer entries.
678 # CHECK-NEXT: [3] Maximum number of used buffer entries.
679 # CHECK-NEXT: [4] Total number of buffer entries.
681 # CHECK: [1] [2] [3] [4]
682 # CHECK-NEXT: PdEX 37 40 40
683 # CHECK-NEXT: PdFPU 37 40 64
684 # CHECK-NEXT: PdLoad 19 22 40
685 # CHECK-NEXT: PdStore 20 22 24
687 # CHECK: Resources:
688 # CHECK-NEXT: [0.0] - PdAGLU01
689 # CHECK-NEXT: [0.1] - PdAGLU01
690 # CHECK-NEXT: [1] - PdBranch
691 # CHECK-NEXT: [2] - PdCount
692 # CHECK-NEXT: [3] - PdDiv
693 # CHECK-NEXT: [4] - PdEX0
694 # CHECK-NEXT: [5] - PdEX1
695 # CHECK-NEXT: [6] - PdFPCVT
696 # CHECK-NEXT: [7.0] - PdFPFMA
697 # CHECK-NEXT: [7.1] - PdFPFMA
698 # CHECK-NEXT: [8.0] - PdFPMAL
699 # CHECK-NEXT: [8.1] - PdFPMAL
700 # CHECK-NEXT: [9] - PdFPMMA
701 # CHECK-NEXT: [10] - PdFPSTO
702 # CHECK-NEXT: [11] - PdFPU0
703 # CHECK-NEXT: [12] - PdFPU1
704 # CHECK-NEXT: [13] - PdFPU2
705 # CHECK-NEXT: [14] - PdFPU3
706 # CHECK-NEXT: [15] - PdFPXBR
707 # CHECK-NEXT: [16.0] - PdLoad
708 # CHECK-NEXT: [16.1] - PdLoad
709 # CHECK-NEXT: [17] - PdMul
710 # CHECK-NEXT: [18] - PdStore
712 # CHECK: Resource pressure per iteration:
713 # 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]
714 # 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
716 # CHECK: Resource pressure by instruction:
717 # 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:
718 # CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 movaps %xmm0, (%rax)
719 # CHECK-NEXT: 3.00 - - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rcx), %xmm1
720 # CHECK-NEXT: - 3.00 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rdx), %xmm2
721 # CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 movaps %xmm3, (%rbx)
723 # CHECK: Timeline view:
724 # CHECK-NEXT: Index 0123456789
726 # CHECK: [0,0] DeER . . movaps %xmm0, (%rax)
727 # CHECK-NEXT: [0,1] DeeeeeER . movaps (%rcx), %xmm1
728 # CHECK-NEXT: [0,2] D=eeeeeER. movaps (%rdx), %xmm2
729 # CHECK-NEXT: [0,3] D======eER movaps %xmm3, (%rbx)
731 # CHECK: Average Wait times (based on the timeline view):
732 # CHECK-NEXT: [0]: Executions
733 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
734 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
735 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
737 # CHECK: [0] [1] [2] [3]
738 # CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps %xmm0, (%rax)
739 # CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
740 # CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
741 # CHECK-NEXT: 3. 1 7.0 0.0 0.0 movaps %xmm3, (%rbx)
742 # CHECK-NEXT: 1 2.8 1.0 0.0 <total>