• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3
4# LLVM-MCA-BEGIN
5movb (%rax), %spl
6movb (%rcx), %bpl
7movb (%rdx), %sil
8movb (%rbx), %dil
9# LLVM-MCA-END
10
11# LLVM-MCA-BEGIN
12movw (%rax), %sp
13movw (%rcx), %bp
14movw (%rdx), %si
15movw (%rbx), %di
16# LLVM-MCA-END
17
18# LLVM-MCA-BEGIN
19movl (%rax), %esp
20movl (%rcx), %ebp
21movl (%rdx), %esi
22movl (%rbx), %edi
23# LLVM-MCA-END
24
25# LLVM-MCA-BEGIN
26movq (%rax), %rsp
27movq (%rcx), %rbp
28movq (%rdx), %rsi
29movq (%rbx), %rdi
30# LLVM-MCA-END
31
32# LLVM-MCA-BEGIN
33movd (%rax), %mm0
34movd (%rcx), %mm1
35movd (%rdx), %mm2
36movd (%rbx), %mm3
37# LLVM-MCA-END
38
39# LLVM-MCA-BEGIN
40movaps (%rax), %xmm0
41movaps (%rcx), %xmm1
42movaps (%rdx), %xmm2
43movaps (%rbx), %xmm3
44# LLVM-MCA-END
45
46# CHECK:      [0] Code Region
47
48# CHECK:      Iterations:        100
49# CHECK-NEXT: Instructions:      400
50# CHECK-NEXT: Total Cycles:      207
51# CHECK-NEXT: Total uOps:        400
52
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
57
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)
65
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
71
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
79
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%)
85
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%)
90
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.
96
97# CHECK:       [1]            [2]        [3]        [4]
98# CHECK-NEXT: SBPortAny        45         54         54
99
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
109
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
113
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
120
121# CHECK:      Timeline view:
122# CHECK-NEXT: Index     012345678
123
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
128
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
134
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
140# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
141
142# CHECK:      [1] Code Region
143
144# CHECK:      Iterations:        100
145# CHECK-NEXT: Instructions:      400
146# CHECK-NEXT: Total Cycles:      207
147# CHECK-NEXT: Total uOps:        400
148
149# CHECK:      Dispatch Width:    4
150# CHECK-NEXT: uOps Per Cycle:    1.93
151# CHECK-NEXT: IPC:               1.93
152# CHECK-NEXT: Block RThroughput: 2.0
153
154# CHECK:      Instruction Info:
155# CHECK-NEXT: [1]: #uOps
156# CHECK-NEXT: [2]: Latency
157# CHECK-NEXT: [3]: RThroughput
158# CHECK-NEXT: [4]: MayLoad
159# CHECK-NEXT: [5]: MayStore
160# CHECK-NEXT: [6]: HasSideEffects (U)
161
162# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
163# CHECK-NEXT:  1      5     0.50    *                   movw	(%rax), %sp
164# CHECK-NEXT:  1      5     0.50    *                   movw	(%rcx), %bp
165# CHECK-NEXT:  1      5     0.50    *                   movw	(%rdx), %si
166# CHECK-NEXT:  1      5     0.50    *                   movw	(%rbx), %di
167
168# CHECK:      Dynamic Dispatch Stall Cycles:
169# CHECK-NEXT: RAT     - Register unavailable:                      0
170# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
171# CHECK-NEXT: SCHEDQ  - Scheduler full:                            147  (71.0%)
172# CHECK-NEXT: LQ      - Load queue full:                           0
173# CHECK-NEXT: SQ      - Store queue full:                          0
174# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
175
176# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
177# CHECK-NEXT: [# dispatched], [# cycles]
178# CHECK-NEXT:  0,              33  (15.9%)
179# CHECK-NEXT:  2,              148  (71.5%)
180# CHECK-NEXT:  4,              26  (12.6%)
181
182# CHECK:      Schedulers - number of cycles where we saw N micro opcodes issued:
183# CHECK-NEXT: [# issued], [# cycles]
184# CHECK-NEXT:  0,          7  (3.4%)
185# CHECK-NEXT:  2,          200  (96.6%)
186
187# CHECK:      Scheduler's queue usage:
188# CHECK-NEXT: [1] Resource name.
189# CHECK-NEXT: [2] Average number of used buffer entries.
190# CHECK-NEXT: [3] Maximum number of used buffer entries.
191# CHECK-NEXT: [4] Total number of buffer entries.
192
193# CHECK:       [1]            [2]        [3]        [4]
194# CHECK-NEXT: SBPortAny        45         54         54
195
196# CHECK:      Resources:
197# CHECK-NEXT: [0]   - SBDivider
198# CHECK-NEXT: [1]   - SBFPDivider
199# CHECK-NEXT: [2]   - SBPort0
200# CHECK-NEXT: [3]   - SBPort1
201# CHECK-NEXT: [4]   - SBPort4
202# CHECK-NEXT: [5]   - SBPort5
203# CHECK-NEXT: [6.0] - SBPort23
204# CHECK-NEXT: [6.1] - SBPort23
205
206# CHECK:      Resource pressure per iteration:
207# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
208# CHECK-NEXT:  -      -      -      -      -      -     2.00   2.00
209
210# CHECK:      Resource pressure by instruction:
211# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
212# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movw	(%rax), %sp
213# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movw	(%rcx), %bp
214# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movw	(%rdx), %si
215# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movw	(%rbx), %di
216
217# CHECK:      Timeline view:
218# CHECK-NEXT: Index     012345678
219
220# CHECK:      [0,0]     DeeeeeER.   movw	(%rax), %sp
221# CHECK-NEXT: [0,1]     DeeeeeER.   movw	(%rcx), %bp
222# CHECK-NEXT: [0,2]     D=eeeeeER   movw	(%rdx), %si
223# CHECK-NEXT: [0,3]     D=eeeeeER   movw	(%rbx), %di
224
225# CHECK:      Average Wait times (based on the timeline view):
226# CHECK-NEXT: [0]: Executions
227# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
228# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
229# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
230
231# CHECK:            [0]    [1]    [2]    [3]
232# CHECK-NEXT: 0.     1     1.0    1.0    0.0       movw	(%rax), %sp
233# CHECK-NEXT: 1.     1     1.0    1.0    0.0       movw	(%rcx), %bp
234# CHECK-NEXT: 2.     1     2.0    2.0    0.0       movw	(%rdx), %si
235# CHECK-NEXT: 3.     1     2.0    2.0    0.0       movw	(%rbx), %di
236# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
237
238# CHECK:      [2] Code Region
239
240# CHECK:      Iterations:        100
241# CHECK-NEXT: Instructions:      400
242# CHECK-NEXT: Total Cycles:      207
243# CHECK-NEXT: Total uOps:        400
244
245# CHECK:      Dispatch Width:    4
246# CHECK-NEXT: uOps Per Cycle:    1.93
247# CHECK-NEXT: IPC:               1.93
248# CHECK-NEXT: Block RThroughput: 2.0
249
250# CHECK:      Instruction Info:
251# CHECK-NEXT: [1]: #uOps
252# CHECK-NEXT: [2]: Latency
253# CHECK-NEXT: [3]: RThroughput
254# CHECK-NEXT: [4]: MayLoad
255# CHECK-NEXT: [5]: MayStore
256# CHECK-NEXT: [6]: HasSideEffects (U)
257
258# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
259# CHECK-NEXT:  1      5     0.50    *                   movl	(%rax), %esp
260# CHECK-NEXT:  1      5     0.50    *                   movl	(%rcx), %ebp
261# CHECK-NEXT:  1      5     0.50    *                   movl	(%rdx), %esi
262# CHECK-NEXT:  1      5     0.50    *                   movl	(%rbx), %edi
263
264# CHECK:      Dynamic Dispatch Stall Cycles:
265# CHECK-NEXT: RAT     - Register unavailable:                      0
266# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
267# CHECK-NEXT: SCHEDQ  - Scheduler full:                            147  (71.0%)
268# CHECK-NEXT: LQ      - Load queue full:                           0
269# CHECK-NEXT: SQ      - Store queue full:                          0
270# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
271
272# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
273# CHECK-NEXT: [# dispatched], [# cycles]
274# CHECK-NEXT:  0,              33  (15.9%)
275# CHECK-NEXT:  2,              148  (71.5%)
276# CHECK-NEXT:  4,              26  (12.6%)
277
278# CHECK:      Schedulers - number of cycles where we saw N micro opcodes issued:
279# CHECK-NEXT: [# issued], [# cycles]
280# CHECK-NEXT:  0,          7  (3.4%)
281# CHECK-NEXT:  2,          200  (96.6%)
282
283# CHECK:      Scheduler's queue usage:
284# CHECK-NEXT: [1] Resource name.
285# CHECK-NEXT: [2] Average number of used buffer entries.
286# CHECK-NEXT: [3] Maximum number of used buffer entries.
287# CHECK-NEXT: [4] Total number of buffer entries.
288
289# CHECK:       [1]            [2]        [3]        [4]
290# CHECK-NEXT: SBPortAny        45         54         54
291
292# CHECK:      Resources:
293# CHECK-NEXT: [0]   - SBDivider
294# CHECK-NEXT: [1]   - SBFPDivider
295# CHECK-NEXT: [2]   - SBPort0
296# CHECK-NEXT: [3]   - SBPort1
297# CHECK-NEXT: [4]   - SBPort4
298# CHECK-NEXT: [5]   - SBPort5
299# CHECK-NEXT: [6.0] - SBPort23
300# CHECK-NEXT: [6.1] - SBPort23
301
302# CHECK:      Resource pressure per iteration:
303# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
304# CHECK-NEXT:  -      -      -      -      -      -     2.00   2.00
305
306# CHECK:      Resource pressure by instruction:
307# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
308# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movl	(%rax), %esp
309# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movl	(%rcx), %ebp
310# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movl	(%rdx), %esi
311# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movl	(%rbx), %edi
312
313# CHECK:      Timeline view:
314# CHECK-NEXT: Index     012345678
315
316# CHECK:      [0,0]     DeeeeeER.   movl	(%rax), %esp
317# CHECK-NEXT: [0,1]     DeeeeeER.   movl	(%rcx), %ebp
318# CHECK-NEXT: [0,2]     D=eeeeeER   movl	(%rdx), %esi
319# CHECK-NEXT: [0,3]     D=eeeeeER   movl	(%rbx), %edi
320
321# CHECK:      Average Wait times (based on the timeline view):
322# CHECK-NEXT: [0]: Executions
323# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
324# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
325# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
326
327# CHECK:            [0]    [1]    [2]    [3]
328# CHECK-NEXT: 0.     1     1.0    1.0    0.0       movl	(%rax), %esp
329# CHECK-NEXT: 1.     1     1.0    1.0    0.0       movl	(%rcx), %ebp
330# CHECK-NEXT: 2.     1     2.0    2.0    0.0       movl	(%rdx), %esi
331# CHECK-NEXT: 3.     1     2.0    2.0    0.0       movl	(%rbx), %edi
332# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
333
334# CHECK:      [3] Code Region
335
336# CHECK:      Iterations:        100
337# CHECK-NEXT: Instructions:      400
338# CHECK-NEXT: Total Cycles:      207
339# CHECK-NEXT: Total uOps:        400
340
341# CHECK:      Dispatch Width:    4
342# CHECK-NEXT: uOps Per Cycle:    1.93
343# CHECK-NEXT: IPC:               1.93
344# CHECK-NEXT: Block RThroughput: 2.0
345
346# CHECK:      Instruction Info:
347# CHECK-NEXT: [1]: #uOps
348# CHECK-NEXT: [2]: Latency
349# CHECK-NEXT: [3]: RThroughput
350# CHECK-NEXT: [4]: MayLoad
351# CHECK-NEXT: [5]: MayStore
352# CHECK-NEXT: [6]: HasSideEffects (U)
353
354# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
355# CHECK-NEXT:  1      5     0.50    *                   movq	(%rax), %rsp
356# CHECK-NEXT:  1      5     0.50    *                   movq	(%rcx), %rbp
357# CHECK-NEXT:  1      5     0.50    *                   movq	(%rdx), %rsi
358# CHECK-NEXT:  1      5     0.50    *                   movq	(%rbx), %rdi
359
360# CHECK:      Dynamic Dispatch Stall Cycles:
361# CHECK-NEXT: RAT     - Register unavailable:                      0
362# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
363# CHECK-NEXT: SCHEDQ  - Scheduler full:                            147  (71.0%)
364# CHECK-NEXT: LQ      - Load queue full:                           0
365# CHECK-NEXT: SQ      - Store queue full:                          0
366# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
367
368# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
369# CHECK-NEXT: [# dispatched], [# cycles]
370# CHECK-NEXT:  0,              33  (15.9%)
371# CHECK-NEXT:  2,              148  (71.5%)
372# CHECK-NEXT:  4,              26  (12.6%)
373
374# CHECK:      Schedulers - number of cycles where we saw N micro opcodes issued:
375# CHECK-NEXT: [# issued], [# cycles]
376# CHECK-NEXT:  0,          7  (3.4%)
377# CHECK-NEXT:  2,          200  (96.6%)
378
379# CHECK:      Scheduler's queue usage:
380# CHECK-NEXT: [1] Resource name.
381# CHECK-NEXT: [2] Average number of used buffer entries.
382# CHECK-NEXT: [3] Maximum number of used buffer entries.
383# CHECK-NEXT: [4] Total number of buffer entries.
384
385# CHECK:       [1]            [2]        [3]        [4]
386# CHECK-NEXT: SBPortAny        45         54         54
387
388# CHECK:      Resources:
389# CHECK-NEXT: [0]   - SBDivider
390# CHECK-NEXT: [1]   - SBFPDivider
391# CHECK-NEXT: [2]   - SBPort0
392# CHECK-NEXT: [3]   - SBPort1
393# CHECK-NEXT: [4]   - SBPort4
394# CHECK-NEXT: [5]   - SBPort5
395# CHECK-NEXT: [6.0] - SBPort23
396# CHECK-NEXT: [6.1] - SBPort23
397
398# CHECK:      Resource pressure per iteration:
399# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
400# CHECK-NEXT:  -      -      -      -      -      -     2.00   2.00
401
402# CHECK:      Resource pressure by instruction:
403# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
404# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movq	(%rax), %rsp
405# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movq	(%rcx), %rbp
406# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movq	(%rdx), %rsi
407# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movq	(%rbx), %rdi
408
409# CHECK:      Timeline view:
410# CHECK-NEXT: Index     012345678
411
412# CHECK:      [0,0]     DeeeeeER.   movq	(%rax), %rsp
413# CHECK-NEXT: [0,1]     DeeeeeER.   movq	(%rcx), %rbp
414# CHECK-NEXT: [0,2]     D=eeeeeER   movq	(%rdx), %rsi
415# CHECK-NEXT: [0,3]     D=eeeeeER   movq	(%rbx), %rdi
416
417# CHECK:      Average Wait times (based on the timeline view):
418# CHECK-NEXT: [0]: Executions
419# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
420# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
421# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
422
423# CHECK:            [0]    [1]    [2]    [3]
424# CHECK-NEXT: 0.     1     1.0    1.0    0.0       movq	(%rax), %rsp
425# CHECK-NEXT: 1.     1     1.0    1.0    0.0       movq	(%rcx), %rbp
426# CHECK-NEXT: 2.     1     2.0    2.0    0.0       movq	(%rdx), %rsi
427# CHECK-NEXT: 3.     1     2.0    2.0    0.0       movq	(%rbx), %rdi
428# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
429
430# CHECK:      [4] Code Region
431
432# CHECK:      Iterations:        100
433# CHECK-NEXT: Instructions:      400
434# CHECK-NEXT: Total Cycles:      207
435# CHECK-NEXT: Total uOps:        400
436
437# CHECK:      Dispatch Width:    4
438# CHECK-NEXT: uOps Per Cycle:    1.93
439# CHECK-NEXT: IPC:               1.93
440# CHECK-NEXT: Block RThroughput: 2.0
441
442# CHECK:      Instruction Info:
443# CHECK-NEXT: [1]: #uOps
444# CHECK-NEXT: [2]: Latency
445# CHECK-NEXT: [3]: RThroughput
446# CHECK-NEXT: [4]: MayLoad
447# CHECK-NEXT: [5]: MayStore
448# CHECK-NEXT: [6]: HasSideEffects (U)
449
450# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
451# CHECK-NEXT:  1      5     0.50    *                   movd	(%rax), %mm0
452# CHECK-NEXT:  1      5     0.50    *                   movd	(%rcx), %mm1
453# CHECK-NEXT:  1      5     0.50    *                   movd	(%rdx), %mm2
454# CHECK-NEXT:  1      5     0.50    *                   movd	(%rbx), %mm3
455
456# CHECK:      Dynamic Dispatch Stall Cycles:
457# CHECK-NEXT: RAT     - Register unavailable:                      0
458# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
459# CHECK-NEXT: SCHEDQ  - Scheduler full:                            147  (71.0%)
460# CHECK-NEXT: LQ      - Load queue full:                           0
461# CHECK-NEXT: SQ      - Store queue full:                          0
462# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
463
464# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
465# CHECK-NEXT: [# dispatched], [# cycles]
466# CHECK-NEXT:  0,              33  (15.9%)
467# CHECK-NEXT:  2,              148  (71.5%)
468# CHECK-NEXT:  4,              26  (12.6%)
469
470# CHECK:      Schedulers - number of cycles where we saw N micro opcodes issued:
471# CHECK-NEXT: [# issued], [# cycles]
472# CHECK-NEXT:  0,          7  (3.4%)
473# CHECK-NEXT:  2,          200  (96.6%)
474
475# CHECK:      Scheduler's queue usage:
476# CHECK-NEXT: [1] Resource name.
477# CHECK-NEXT: [2] Average number of used buffer entries.
478# CHECK-NEXT: [3] Maximum number of used buffer entries.
479# CHECK-NEXT: [4] Total number of buffer entries.
480
481# CHECK:       [1]            [2]        [3]        [4]
482# CHECK-NEXT: SBPortAny        45         54         54
483
484# CHECK:      Resources:
485# CHECK-NEXT: [0]   - SBDivider
486# CHECK-NEXT: [1]   - SBFPDivider
487# CHECK-NEXT: [2]   - SBPort0
488# CHECK-NEXT: [3]   - SBPort1
489# CHECK-NEXT: [4]   - SBPort4
490# CHECK-NEXT: [5]   - SBPort5
491# CHECK-NEXT: [6.0] - SBPort23
492# CHECK-NEXT: [6.1] - SBPort23
493
494# CHECK:      Resource pressure per iteration:
495# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
496# CHECK-NEXT:  -      -      -      -      -      -     2.00   2.00
497
498# CHECK:      Resource pressure by instruction:
499# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
500# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movd	(%rax), %mm0
501# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movd	(%rcx), %mm1
502# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movd	(%rdx), %mm2
503# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movd	(%rbx), %mm3
504
505# CHECK:      Timeline view:
506# CHECK-NEXT: Index     012345678
507
508# CHECK:      [0,0]     DeeeeeER.   movd	(%rax), %mm0
509# CHECK-NEXT: [0,1]     DeeeeeER.   movd	(%rcx), %mm1
510# CHECK-NEXT: [0,2]     D=eeeeeER   movd	(%rdx), %mm2
511# CHECK-NEXT: [0,3]     D=eeeeeER   movd	(%rbx), %mm3
512
513# CHECK:      Average Wait times (based on the timeline view):
514# CHECK-NEXT: [0]: Executions
515# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
516# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
517# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
518
519# CHECK:            [0]    [1]    [2]    [3]
520# CHECK-NEXT: 0.     1     1.0    1.0    0.0       movd	(%rax), %mm0
521# CHECK-NEXT: 1.     1     1.0    1.0    0.0       movd	(%rcx), %mm1
522# CHECK-NEXT: 2.     1     2.0    2.0    0.0       movd	(%rdx), %mm2
523# CHECK-NEXT: 3.     1     2.0    2.0    0.0       movd	(%rbx), %mm3
524# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
525
526# CHECK:      [5] Code Region
527
528# CHECK:      Iterations:        100
529# CHECK-NEXT: Instructions:      400
530# CHECK-NEXT: Total Cycles:      208
531# CHECK-NEXT: Total uOps:        400
532
533# CHECK:      Dispatch Width:    4
534# CHECK-NEXT: uOps Per Cycle:    1.92
535# CHECK-NEXT: IPC:               1.92
536# CHECK-NEXT: Block RThroughput: 2.0
537
538# CHECK:      Instruction Info:
539# CHECK-NEXT: [1]: #uOps
540# CHECK-NEXT: [2]: Latency
541# CHECK-NEXT: [3]: RThroughput
542# CHECK-NEXT: [4]: MayLoad
543# CHECK-NEXT: [5]: MayStore
544# CHECK-NEXT: [6]: HasSideEffects (U)
545
546# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
547# CHECK-NEXT:  1      6     0.50    *                   movaps	(%rax), %xmm0
548# CHECK-NEXT:  1      6     0.50    *                   movaps	(%rcx), %xmm1
549# CHECK-NEXT:  1      6     0.50    *                   movaps	(%rdx), %xmm2
550# CHECK-NEXT:  1      6     0.50    *                   movaps	(%rbx), %xmm3
551
552# CHECK:      Dynamic Dispatch Stall Cycles:
553# CHECK-NEXT: RAT     - Register unavailable:                      0
554# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
555# CHECK-NEXT: SCHEDQ  - Scheduler full:                            147  (70.7%)
556# CHECK-NEXT: LQ      - Load queue full:                           0
557# CHECK-NEXT: SQ      - Store queue full:                          0
558# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
559
560# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
561# CHECK-NEXT: [# dispatched], [# cycles]
562# CHECK-NEXT:  0,              34  (16.3%)
563# CHECK-NEXT:  2,              148  (71.2%)
564# CHECK-NEXT:  4,              26  (12.5%)
565
566# CHECK:      Schedulers - number of cycles where we saw N micro opcodes issued:
567# CHECK-NEXT: [# issued], [# cycles]
568# CHECK-NEXT:  0,          8  (3.8%)
569# CHECK-NEXT:  2,          200  (96.2%)
570
571# CHECK:      Scheduler's queue usage:
572# CHECK-NEXT: [1] Resource name.
573# CHECK-NEXT: [2] Average number of used buffer entries.
574# CHECK-NEXT: [3] Maximum number of used buffer entries.
575# CHECK-NEXT: [4] Total number of buffer entries.
576
577# CHECK:       [1]            [2]        [3]        [4]
578# CHECK-NEXT: SBPortAny        45         54         54
579
580# CHECK:      Resources:
581# CHECK-NEXT: [0]   - SBDivider
582# CHECK-NEXT: [1]   - SBFPDivider
583# CHECK-NEXT: [2]   - SBPort0
584# CHECK-NEXT: [3]   - SBPort1
585# CHECK-NEXT: [4]   - SBPort4
586# CHECK-NEXT: [5]   - SBPort5
587# CHECK-NEXT: [6.0] - SBPort23
588# CHECK-NEXT: [6.1] - SBPort23
589
590# CHECK:      Resource pressure per iteration:
591# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
592# CHECK-NEXT:  -      -      -      -      -      -     2.00   2.00
593
594# CHECK:      Resource pressure by instruction:
595# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
596# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movaps	(%rax), %xmm0
597# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movaps	(%rcx), %xmm1
598# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   movaps	(%rdx), %xmm2
599# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     movaps	(%rbx), %xmm3
600
601# CHECK:      Timeline view:
602# CHECK-NEXT: Index     0123456789
603
604# CHECK:      [0,0]     DeeeeeeER.   movaps	(%rax), %xmm0
605# CHECK-NEXT: [0,1]     DeeeeeeER.   movaps	(%rcx), %xmm1
606# CHECK-NEXT: [0,2]     D=eeeeeeER   movaps	(%rdx), %xmm2
607# CHECK-NEXT: [0,3]     D=eeeeeeER   movaps	(%rbx), %xmm3
608
609# CHECK:      Average Wait times (based on the timeline view):
610# CHECK-NEXT: [0]: Executions
611# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
612# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
613# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
614
615# CHECK:            [0]    [1]    [2]    [3]
616# CHECK-NEXT: 0.     1     1.0    1.0    0.0       movaps	(%rax), %xmm0
617# CHECK-NEXT: 1.     1     1.0    1.0    0.0       movaps	(%rcx), %xmm1
618# CHECK-NEXT: 2.     1     2.0    2.0    0.0       movaps	(%rdx), %xmm2
619# CHECK-NEXT: 3.     1     2.0    2.0    0.0       movaps	(%rbx), %xmm3
620# CHECK-NEXT:        1     1.5    1.5    0.0       <total>
621