xref: /llvm-project/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s (revision f0658c7a429b9e356da1670b280ab943ad0b0b94)
1a5192187SRoman Lebedev# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2a5baf867SRoman Lebedev# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=false -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
3a5192187SRoman Lebedev
4a5192187SRoman Lebedev  vdivps %ymm0, %ymm0, %ymm1
5a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm2
6a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm3
7a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm4
8a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm5
9a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm6
10a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm7
11a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm8
12a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm9
13a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm10
14a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm11
15a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm12
16a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm13
17a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm14
18a5192187SRoman Lebedev  vaddps %ymm0, %ymm0, %ymm15
19a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm0
20a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm3
21a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm4
22a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm5
23a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm6
24a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm7
25a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm8
26a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm9
27a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm10
28a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm11
29a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm12
30a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm13
31a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm14
32a5192187SRoman Lebedev  vaddps %ymm2, %ymm0, %ymm15
33a5192187SRoman Lebedev  vaddps %ymm3, %ymm0, %ymm2
34a5192187SRoman Lebedev  vaddps %ymm3, %ymm0, %ymm4
35a5192187SRoman Lebedev  vaddps %ymm3, %ymm0, %ymm5
36a5192187SRoman Lebedev  vaddps %ymm3, %ymm0, %ymm6
37a5192187SRoman Lebedev
38a5192187SRoman Lebedev# CHECK:      Iterations:        1
39a5192187SRoman Lebedev# CHECK-NEXT: Instructions:      33
409db0e725SRoman Lebedev# CHECK-NEXT: Total Cycles:      48
41a5baf867SRoman Lebedev# CHECK-NEXT: Total uOps:        66
42a5192187SRoman Lebedev
43a5192187SRoman Lebedev# CHECK:      Dispatch Width:    4
449db0e725SRoman Lebedev# CHECK-NEXT: uOps Per Cycle:    1.38
459db0e725SRoman Lebedev# CHECK-NEXT: IPC:               0.69
469db0e725SRoman Lebedev# CHECK-NEXT: Block RThroughput: 41.0
47a5192187SRoman Lebedev
48a5192187SRoman Lebedev# CHECK:      Dynamic Dispatch Stall Cycles:
49a5192187SRoman Lebedev# CHECK-NEXT: RAT     - Register unavailable:                      0
50a5192187SRoman Lebedev# CHECK-NEXT: RCU     - Retire tokens unavailable:                 0
51a5192187SRoman Lebedev# CHECK-NEXT: SCHEDQ  - Scheduler full:                            0
52a5192187SRoman Lebedev# CHECK-NEXT: LQ      - Load queue full:                           0
53a5192187SRoman Lebedev# CHECK-NEXT: SQ      - Store queue full:                          0
54a5192187SRoman Lebedev# CHECK-NEXT: GROUP   - Static restrictions on the dispatch group: 0
55*f0658c7aSAndrea Di Biagio# CHECK-NEXT: USH     - Uncategorised Structural Hazard:           0
56a5192187SRoman Lebedev
57a5192187SRoman Lebedev# CHECK:      Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
58a5192187SRoman Lebedev# CHECK-NEXT: [# dispatched], [# cycles]
599db0e725SRoman Lebedev# CHECK-NEXT:  0,              31  (64.6%)
609db0e725SRoman Lebedev# CHECK-NEXT:  2,              1  (2.1%)
619db0e725SRoman Lebedev# CHECK-NEXT:  4,              16  (33.3%)
62a5192187SRoman Lebedev
63a5192187SRoman Lebedev# CHECK:      Register File statistics:
64a5baf867SRoman Lebedev# CHECK-NEXT: Total number of mappings created:    66
65a5baf867SRoman Lebedev# CHECK-NEXT: Max number of mappings used:         54
66a5baf867SRoman Lebedev
67a5baf867SRoman Lebedev# CHECK:      *  Register File #1 -- PdFpuPRF:
68a5baf867SRoman Lebedev# CHECK-NEXT:    Number of physical registers:     160
69a5baf867SRoman Lebedev# CHECK-NEXT:    Total number of mappings created: 66
70a5baf867SRoman Lebedev# CHECK-NEXT:    Max number of mappings used:      54
71a5baf867SRoman Lebedev
72a5baf867SRoman Lebedev# CHECK:      *  Register File #2 -- PdIntegerPRF:
73a5baf867SRoman Lebedev# CHECK-NEXT:    Number of physical registers:     96
74a5baf867SRoman Lebedev# CHECK-NEXT:    Total number of mappings created: 0
75a5baf867SRoman Lebedev# CHECK-NEXT:    Max number of mappings used:      0
76a5192187SRoman Lebedev
77a5192187SRoman Lebedev# CHECK:      Timeline view:
789db0e725SRoman Lebedev# CHECK-NEXT:                     0123456789          0123456789
799db0e725SRoman Lebedev# CHECK-NEXT: Index     0123456789          0123456789          01234567
80a5192187SRoman Lebedev
819db0e725SRoman Lebedev# CHECK:      [0,0]     DeeeeeeeeeER   .    .    .    .    .    .    . .   vdivps	%ymm0, %ymm0, %ymm1
829db0e725SRoman Lebedev# CHECK-NEXT: [0,1]     DeeeeeE----R   .    .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm2
839db0e725SRoman Lebedev# CHECK-NEXT: [0,2]     .D=eeeeeE--R   .    .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm3
849db0e725SRoman Lebedev# CHECK-NEXT: [0,3]     .D===eeeeeER   .    .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm4
859db0e725SRoman Lebedev# CHECK-NEXT: [0,4]     . D====eeeeeER .    .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm5
869db0e725SRoman Lebedev# CHECK-NEXT: [0,5]     . D======eeeeeER    .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm6
879db0e725SRoman Lebedev# CHECK-NEXT: [0,6]     .  D=======eeeeeER  .    .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm7
889db0e725SRoman Lebedev# CHECK-NEXT: [0,7]     .  D===========eeeeeER   .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm8
899db0e725SRoman Lebedev# CHECK-NEXT: [0,8]     .   D============eeeeeER .    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm9
909db0e725SRoman Lebedev# CHECK-NEXT: [0,9]     .   D==============eeeeeER    .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm10
919db0e725SRoman Lebedev# CHECK-NEXT: [0,10]    .    D==============eeeeeER   .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm11
929db0e725SRoman Lebedev# CHECK-NEXT: [0,11]    .    D===============eeeeeER  .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm12
939db0e725SRoman Lebedev# CHECK-NEXT: [0,12]    .    .D===============eeeeeER .    .    .    . .   vaddps	%ymm0, %ymm0, %ymm13
949db0e725SRoman Lebedev# CHECK-NEXT: [0,13]    .    .D=================eeeeeER    .    .    . .   vaddps	%ymm0, %ymm0, %ymm14
959db0e725SRoman Lebedev# CHECK-NEXT: [0,14]    .    . D=================eeeeeER   .    .    . .   vaddps	%ymm0, %ymm0, %ymm15
969db0e725SRoman Lebedev# CHECK-NEXT: [0,15]    .    . D=====eeeeeE------------R   .    .    . .   vaddps	%ymm2, %ymm0, %ymm0
979db0e725SRoman Lebedev# CHECK-NEXT: [0,16]    .    .  D==============eeeeeE--R   .    .    . .   vaddps	%ymm2, %ymm0, %ymm3
989db0e725SRoman Lebedev# CHECK-NEXT: [0,17]    .    .  D=================eeeeeER  .    .    . .   vaddps	%ymm2, %ymm0, %ymm4
999db0e725SRoman Lebedev# CHECK-NEXT: [0,18]    .    .   D=================eeeeeER .    .    . .   vaddps	%ymm2, %ymm0, %ymm5
1009db0e725SRoman Lebedev# CHECK-NEXT: [0,19]    .    .   D==================eeeeeER.    .    . .   vaddps	%ymm2, %ymm0, %ymm6
1019db0e725SRoman Lebedev# CHECK-NEXT: [0,20]    .    .    D==================eeeeeER    .    . .   vaddps	%ymm2, %ymm0, %ymm7
1029db0e725SRoman Lebedev# CHECK-NEXT: [0,21]    .    .    D===================eeeeeER   .    . .   vaddps	%ymm2, %ymm0, %ymm8
1039db0e725SRoman Lebedev# CHECK-NEXT: [0,22]    .    .    .D===================eeeeeER  .    . .   vaddps	%ymm2, %ymm0, %ymm9
1049db0e725SRoman Lebedev# CHECK-NEXT: [0,23]    .    .    .D====================eeeeeER .    . .   vaddps	%ymm2, %ymm0, %ymm10
1059db0e725SRoman Lebedev# CHECK-NEXT: [0,24]    .    .    . D====================eeeeeER.    . .   vaddps	%ymm2, %ymm0, %ymm11
1069db0e725SRoman Lebedev# CHECK-NEXT: [0,25]    .    .    . D=====================eeeeeER    . .   vaddps	%ymm2, %ymm0, %ymm12
1079db0e725SRoman Lebedev# CHECK-NEXT: [0,26]    .    .    .  D=====================eeeeeER   . .   vaddps	%ymm2, %ymm0, %ymm13
1089db0e725SRoman Lebedev# CHECK-NEXT: [0,27]    .    .    .  D======================eeeeeER  . .   vaddps	%ymm2, %ymm0, %ymm14
1099db0e725SRoman Lebedev# CHECK-NEXT: [0,28]    .    .    .   D======================eeeeeER . .   vaddps	%ymm2, %ymm0, %ymm15
1109db0e725SRoman Lebedev# CHECK-NEXT: [0,29]    .    .    .   D=======================eeeeeER. .   vaddps	%ymm3, %ymm0, %ymm2
1119db0e725SRoman Lebedev# CHECK-NEXT: [0,30]    .    .    .    D=======================eeeeeER .   vaddps	%ymm3, %ymm0, %ymm4
1129db0e725SRoman Lebedev# CHECK-NEXT: [0,31]    .    .    .    D========================eeeeeER.   vaddps	%ymm3, %ymm0, %ymm5
1139db0e725SRoman Lebedev# CHECK-NEXT: [0,32]    .    .    .    .D========================eeeeeER   vaddps	%ymm3, %ymm0, %ymm6
114a5192187SRoman Lebedev
115a5192187SRoman Lebedev# CHECK:      Average Wait times (based on the timeline view):
116a5192187SRoman Lebedev# CHECK-NEXT: [0]: Executions
117a5192187SRoman Lebedev# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
118a5192187SRoman Lebedev# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
119a5192187SRoman Lebedev# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
120a5192187SRoman Lebedev
121a5192187SRoman Lebedev# CHECK:            [0]    [1]    [2]    [3]
122a5192187SRoman Lebedev# CHECK-NEXT: 0.     1     1.0    1.0    0.0       vdivps	%ymm0, %ymm0, %ymm1
123a5baf867SRoman Lebedev# CHECK-NEXT: 1.     1     1.0    1.0    4.0       vaddps	%ymm0, %ymm0, %ymm2
124a5baf867SRoman Lebedev# CHECK-NEXT: 2.     1     2.0    2.0    2.0       vaddps	%ymm0, %ymm0, %ymm3
125a5baf867SRoman Lebedev# CHECK-NEXT: 3.     1     4.0    4.0    0.0       vaddps	%ymm0, %ymm0, %ymm4
126a5baf867SRoman Lebedev# CHECK-NEXT: 4.     1     5.0    5.0    0.0       vaddps	%ymm0, %ymm0, %ymm5
127a5baf867SRoman Lebedev# CHECK-NEXT: 5.     1     7.0    7.0    0.0       vaddps	%ymm0, %ymm0, %ymm6
128a5baf867SRoman Lebedev# CHECK-NEXT: 6.     1     8.0    8.0    0.0       vaddps	%ymm0, %ymm0, %ymm7
129a5baf867SRoman Lebedev# CHECK-NEXT: 7.     1     12.0   12.0   0.0       vaddps	%ymm0, %ymm0, %ymm8
130a5baf867SRoman Lebedev# CHECK-NEXT: 8.     1     13.0   13.0   0.0       vaddps	%ymm0, %ymm0, %ymm9
131a5baf867SRoman Lebedev# CHECK-NEXT: 9.     1     15.0   15.0   0.0       vaddps	%ymm0, %ymm0, %ymm10
1329db0e725SRoman Lebedev# CHECK-NEXT: 10.    1     15.0   15.0   0.0       vaddps	%ymm0, %ymm0, %ymm11
1339db0e725SRoman Lebedev# CHECK-NEXT: 11.    1     16.0   16.0   0.0       vaddps	%ymm0, %ymm0, %ymm12
1349db0e725SRoman Lebedev# CHECK-NEXT: 12.    1     16.0   16.0   0.0       vaddps	%ymm0, %ymm0, %ymm13
1359db0e725SRoman Lebedev# CHECK-NEXT: 13.    1     18.0   18.0   0.0       vaddps	%ymm0, %ymm0, %ymm14
1369db0e725SRoman Lebedev# CHECK-NEXT: 14.    1     18.0   18.0   0.0       vaddps	%ymm0, %ymm0, %ymm15
1379db0e725SRoman Lebedev# CHECK-NEXT: 15.    1     6.0    6.0    12.0      vaddps	%ymm2, %ymm0, %ymm0
1389db0e725SRoman Lebedev# CHECK-NEXT: 16.    1     15.0   5.0    2.0       vaddps	%ymm2, %ymm0, %ymm3
1399db0e725SRoman Lebedev# CHECK-NEXT: 17.    1     18.0   8.0    0.0       vaddps	%ymm2, %ymm0, %ymm4
1409db0e725SRoman Lebedev# CHECK-NEXT: 18.    1     18.0   9.0    0.0       vaddps	%ymm2, %ymm0, %ymm5
1419db0e725SRoman Lebedev# CHECK-NEXT: 19.    1     19.0   10.0   0.0       vaddps	%ymm2, %ymm0, %ymm6
1429db0e725SRoman Lebedev# CHECK-NEXT: 20.    1     19.0   11.0   0.0       vaddps	%ymm2, %ymm0, %ymm7
1439db0e725SRoman Lebedev# CHECK-NEXT: 21.    1     20.0   12.0   0.0       vaddps	%ymm2, %ymm0, %ymm8
1449db0e725SRoman Lebedev# CHECK-NEXT: 22.    1     20.0   13.0   0.0       vaddps	%ymm2, %ymm0, %ymm9
1459db0e725SRoman Lebedev# CHECK-NEXT: 23.    1     21.0   14.0   0.0       vaddps	%ymm2, %ymm0, %ymm10
1469db0e725SRoman Lebedev# CHECK-NEXT: 24.    1     21.0   15.0   0.0       vaddps	%ymm2, %ymm0, %ymm11
1479db0e725SRoman Lebedev# CHECK-NEXT: 25.    1     22.0   16.0   0.0       vaddps	%ymm2, %ymm0, %ymm12
1489db0e725SRoman Lebedev# CHECK-NEXT: 26.    1     22.0   17.0   0.0       vaddps	%ymm2, %ymm0, %ymm13
1499db0e725SRoman Lebedev# CHECK-NEXT: 27.    1     23.0   18.0   0.0       vaddps	%ymm2, %ymm0, %ymm14
1509db0e725SRoman Lebedev# CHECK-NEXT: 28.    1     23.0   19.0   0.0       vaddps	%ymm2, %ymm0, %ymm15
1519db0e725SRoman Lebedev# CHECK-NEXT: 29.    1     24.0   10.0   0.0       vaddps	%ymm3, %ymm0, %ymm2
1529db0e725SRoman Lebedev# CHECK-NEXT: 30.    1     24.0   11.0   0.0       vaddps	%ymm3, %ymm0, %ymm4
1539db0e725SRoman Lebedev# CHECK-NEXT: 31.    1     25.0   12.0   0.0       vaddps	%ymm3, %ymm0, %ymm5
1549db0e725SRoman Lebedev# CHECK-NEXT: 32.    1     25.0   13.0   0.0       vaddps	%ymm3, %ymm0, %ymm6
155a5e65c1cSRoman Lebedev# CHECK-NEXT:        1     15.6   11.2   0.6       <total>
156