• 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=btver2 -iterations=1 -resource-pressure=false -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
3
4  vdivps %ymm0, %ymm0, %ymm1
5  vaddps %ymm0, %ymm0, %ymm2
6  vaddps %ymm0, %ymm0, %ymm3
7  vaddps %ymm0, %ymm0, %ymm4
8  vaddps %ymm0, %ymm0, %ymm5
9  vaddps %ymm0, %ymm0, %ymm6
10  vaddps %ymm0, %ymm0, %ymm7
11  vaddps %ymm0, %ymm0, %ymm8
12  vaddps %ymm0, %ymm0, %ymm9
13  vaddps %ymm0, %ymm0, %ymm10
14  vaddps %ymm0, %ymm0, %ymm11
15  vaddps %ymm0, %ymm0, %ymm12
16  vaddps %ymm0, %ymm0, %ymm13
17  vaddps %ymm0, %ymm0, %ymm14
18  vaddps %ymm0, %ymm0, %ymm15
19  vaddps %ymm2, %ymm0, %ymm0
20  vaddps %ymm2, %ymm0, %ymm3
21  vaddps %ymm2, %ymm0, %ymm4
22  vaddps %ymm2, %ymm0, %ymm5
23  vaddps %ymm2, %ymm0, %ymm6
24  vaddps %ymm2, %ymm0, %ymm7
25  vaddps %ymm2, %ymm0, %ymm8
26  vaddps %ymm2, %ymm0, %ymm9
27  vaddps %ymm2, %ymm0, %ymm10
28  vaddps %ymm2, %ymm0, %ymm11
29  vaddps %ymm2, %ymm0, %ymm12
30  vaddps %ymm2, %ymm0, %ymm13
31  vaddps %ymm2, %ymm0, %ymm14
32  vaddps %ymm2, %ymm0, %ymm15
33  vaddps %ymm3, %ymm0, %ymm2
34  vaddps %ymm3, %ymm0, %ymm4
35  vaddps %ymm3, %ymm0, %ymm5
36  vaddps %ymm3, %ymm0, %ymm6
37
38# CHECK:      Iterations:        1
39# CHECK-NEXT: Instructions:      33
40# CHECK-NEXT: Total Cycles:      69
41# CHECK-NEXT: Total uOps:        66
42
43# CHECK:      Dispatch Width:    2
44# CHECK-NEXT: uOps Per Cycle:    0.96
45# CHECK-NEXT: IPC:               0.48
46# CHECK-NEXT: Block RThroughput: 64.0
47
48# CHECK:      Dynamic Dispatch Stall Cycles:
49# CHECK-NEXT: RAT     - Register unavailable:                      0
50# CHECK-NEXT: RCU     - Retire tokens unavailable:                 8  (11.6%)
51# CHECK-NEXT: SCHEDQ  - Scheduler full:                            0
52# CHECK-NEXT: LQ      - Load queue full:                           0
53# CHECK-NEXT: SQ      - Store queue full:                          0
54# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
55
56# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
57# CHECK-NEXT: [# dispatched], [# cycles]
58# CHECK-NEXT:  0,              36  (52.2%)
59# CHECK-NEXT:  2,              33  (47.8%)
60
61# CHECK:      Register File statistics:
62# CHECK-NEXT: Total number of mappings created:    66
63# CHECK-NEXT: Max number of mappings used:         64
64
65# CHECK:      *  Register File #1 -- JFpuPRF:
66# CHECK-NEXT:    Number of physical registers:     72
67# CHECK-NEXT:    Total number of mappings created: 66
68# CHECK-NEXT:    Max number of mappings used:      64
69
70# CHECK:      *  Register File #2 -- JIntegerPRF:
71# CHECK-NEXT:    Number of physical registers:     64
72# CHECK-NEXT:    Total number of mappings created: 0
73# CHECK-NEXT:    Max number of mappings used:      0
74
75# CHECK:      Timeline view:
76# CHECK-NEXT:                     0123456789          0123456789          0123456789
77# CHECK-NEXT: Index     0123456789          0123456789          0123456789          012345678
78
79# CHECK:      [0,0]     DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER    .    .    .    .    .  .   vdivps	%ymm0, %ymm0, %ymm1
80# CHECK-NEXT: [0,1]     .DeeeE----------------------------------R    .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm2
81# CHECK-NEXT: [0,2]     . D=eeeE---------------------------------R   .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm3
82# CHECK-NEXT: [0,3]     .  D==eeeE-------------------------------R   .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm4
83# CHECK-NEXT: [0,4]     .   D===eeeE------------------------------R  .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm5
84# CHECK-NEXT: [0,5]     .    D====eeeE----------------------------R  .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm6
85# CHECK-NEXT: [0,6]     .    .D=====eeeE---------------------------R .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm7
86# CHECK-NEXT: [0,7]     .    . D======eeeE-------------------------R .    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm8
87# CHECK-NEXT: [0,8]     .    .  D=======eeeE------------------------R.    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm9
88# CHECK-NEXT: [0,9]     .    .   D========eeeE----------------------R.    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm10
89# CHECK-NEXT: [0,10]    .    .    D=========eeeE---------------------R    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm11
90# CHECK-NEXT: [0,11]    .    .    .D============eeeE-----------------R    .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm12
91# CHECK-NEXT: [0,12]    .    .    . D=============eeeE----------------R   .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm13
92# CHECK-NEXT: [0,13]    .    .    .  D==============eeeE--------------R   .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm14
93# CHECK-NEXT: [0,14]    .    .    .   D===============eeeE-------------R  .    .    .    .  .   vaddps	%ymm0, %ymm0, %ymm15
94# CHECK-NEXT: [0,15]    .    .    .    D======eeeE---------------------R  .    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm0
95# CHECK-NEXT: [0,16]    .    .    .    .D===============eeeE------------R .    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm3
96# CHECK-NEXT: [0,17]    .    .    .    . D================eeeE----------R .    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm4
97# CHECK-NEXT: [0,18]    .    .    .    .  D=================eeeE---------R.    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm5
98# CHECK-NEXT: [0,19]    .    .    .    .   D==================eeeE-------R.    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm6
99# CHECK-NEXT: [0,20]    .    .    .    .    D===================eeeE------R    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm7
100# CHECK-NEXT: [0,21]    .    .    .    .    .D====================eeeE----R    .    .    .  .   vaddps	%ymm2, %ymm0, %ymm8
101# CHECK-NEXT: [0,22]    .    .    .    .    . D=====================eeeE---R   .    .    .  .   vaddps	%ymm2, %ymm0, %ymm9
102# CHECK-NEXT: [0,23]    .    .    .    .    .  D======================eeeE-R   .    .    .  .   vaddps	%ymm2, %ymm0, %ymm10
103# CHECK-NEXT: [0,24]    .    .    .    .    .   D=======================eeeER  .    .    .  .   vaddps	%ymm2, %ymm0, %ymm11
104# CHECK-NEXT: [0,25]    .    .    .    .    .    D========================eeeER.    .    .  .   vaddps	%ymm2, %ymm0, %ymm12
105# CHECK-NEXT: [0,26]    .    .    .    .    .    .D=========================eeeER   .    .  .   vaddps	%ymm2, %ymm0, %ymm13
106# CHECK-NEXT: [0,27]    .    .    .    .    .    . D==========================eeeER .    .  .   vaddps	%ymm2, %ymm0, %ymm14
107# CHECK-NEXT: [0,28]    .    .    .    .    .    .  D===========================eeeER    .  .   vaddps	%ymm2, %ymm0, %ymm15
108# CHECK-NEXT: [0,29]    .    .    .    .    .    .   D============================eeeER  .  .   vaddps	%ymm3, %ymm0, %ymm2
109# CHECK-NEXT: [0,30]    .    .    .    .    .    .    D=============================eeeER.  .   vaddps	%ymm3, %ymm0, %ymm4
110# CHECK-NEXT: [0,31]    .    .    .    .    .    .    .D==============================eeeER .   vaddps	%ymm3, %ymm0, %ymm5
111# CHECK-NEXT: [0,32]    .    .    .    .    .    .    .    .    D=======================eeeER   vaddps	%ymm3, %ymm0, %ymm6
112
113# CHECK:      Average Wait times (based on the timeline view):
114# CHECK-NEXT: [0]: Executions
115# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
116# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
117# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
118
119# CHECK:            [0]    [1]    [2]    [3]
120# CHECK-NEXT: 0.     1     1.0    1.0    0.0       vdivps	%ymm0, %ymm0, %ymm1
121# CHECK-NEXT: 1.     1     1.0    1.0    34.0      vaddps	%ymm0, %ymm0, %ymm2
122# CHECK-NEXT: 2.     1     2.0    2.0    33.0      vaddps	%ymm0, %ymm0, %ymm3
123# CHECK-NEXT: 3.     1     3.0    3.0    31.0      vaddps	%ymm0, %ymm0, %ymm4
124# CHECK-NEXT: 4.     1     4.0    4.0    30.0      vaddps	%ymm0, %ymm0, %ymm5
125# CHECK-NEXT: 5.     1     5.0    5.0    28.0      vaddps	%ymm0, %ymm0, %ymm6
126# CHECK-NEXT: 6.     1     6.0    6.0    27.0      vaddps	%ymm0, %ymm0, %ymm7
127# CHECK-NEXT: 7.     1     7.0    7.0    25.0      vaddps	%ymm0, %ymm0, %ymm8
128# CHECK-NEXT: 8.     1     8.0    8.0    24.0      vaddps	%ymm0, %ymm0, %ymm9
129# CHECK-NEXT: 9.     1     9.0    9.0    22.0      vaddps	%ymm0, %ymm0, %ymm10
130# CHECK-NEXT: 10.    1     10.0   10.0   21.0      vaddps	%ymm0, %ymm0, %ymm11
131# CHECK-NEXT: 11.    1     13.0   13.0   17.0      vaddps	%ymm0, %ymm0, %ymm12
132# CHECK-NEXT: 12.    1     14.0   14.0   16.0      vaddps	%ymm0, %ymm0, %ymm13
133# CHECK-NEXT: 13.    1     15.0   15.0   14.0      vaddps	%ymm0, %ymm0, %ymm14
134# CHECK-NEXT: 14.    1     16.0   16.0   13.0      vaddps	%ymm0, %ymm0, %ymm15
135# CHECK-NEXT: 15.    1     7.0    7.0    21.0      vaddps	%ymm2, %ymm0, %ymm0
136# CHECK-NEXT: 16.    1     16.0   7.0    12.0      vaddps	%ymm2, %ymm0, %ymm3
137# CHECK-NEXT: 17.    1     17.0   9.0    10.0      vaddps	%ymm2, %ymm0, %ymm4
138# CHECK-NEXT: 18.    1     18.0   11.0   9.0       vaddps	%ymm2, %ymm0, %ymm5
139# CHECK-NEXT: 19.    1     19.0   13.0   7.0       vaddps	%ymm2, %ymm0, %ymm6
140# CHECK-NEXT: 20.    1     20.0   15.0   6.0       vaddps	%ymm2, %ymm0, %ymm7
141# CHECK-NEXT: 21.    1     21.0   17.0   4.0       vaddps	%ymm2, %ymm0, %ymm8
142# CHECK-NEXT: 22.    1     22.0   19.0   3.0       vaddps	%ymm2, %ymm0, %ymm9
143# CHECK-NEXT: 23.    1     23.0   21.0   1.0       vaddps	%ymm2, %ymm0, %ymm10
144# CHECK-NEXT: 24.    1     24.0   23.0   0.0       vaddps	%ymm2, %ymm0, %ymm11
145# CHECK-NEXT: 25.    1     25.0   25.0   0.0       vaddps	%ymm2, %ymm0, %ymm12
146# CHECK-NEXT: 26.    1     26.0   26.0   0.0       vaddps	%ymm2, %ymm0, %ymm13
147# CHECK-NEXT: 27.    1     27.0   27.0   0.0       vaddps	%ymm2, %ymm0, %ymm14
148# CHECK-NEXT: 28.    1     28.0   28.0   0.0       vaddps	%ymm2, %ymm0, %ymm15
149# CHECK-NEXT: 29.    1     29.0   23.0   0.0       vaddps	%ymm3, %ymm0, %ymm2
150# CHECK-NEXT: 30.    1     30.0   25.0   0.0       vaddps	%ymm3, %ymm0, %ymm4
151# CHECK-NEXT: 31.    1     31.0   27.0   0.0       vaddps	%ymm3, %ymm0, %ymm5
152# CHECK-NEXT: 32.    1     24.0   24.0   0.0       vaddps	%ymm3, %ymm0, %ymm6
153# CHECK-NEXT:        1     15.8   14.0   12.4      <total>
154