xref: /llvm-project/llvm/test/tools/llvm-mca/X86/scheduler-queue-usage.s (revision ffdd5a330c05fa2b4339f64402f650df068c5767)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BARCELONA %s
3# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BDVER2 %s
4# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BTVER2 %s
5# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
6# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
7# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
8# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver4 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER4 %s
9# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SNB %s
10# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,IVB %s
11# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,HSW %s
12# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BDW %s
13# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=knl -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,KNL %s
14# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SKX %s
15# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SKX-AVX512 %s
16# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=icelake-client -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s
17# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s
18# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=rocketlake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s
19# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=tigerlake -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ICX %s
20# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=slm -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SLM %s
21
22xor %eax, %ebx
23
24# ALL:             Schedulers - number of cycles where we saw N micro opcodes issued:
25# ALL-NEXT:        [# issued], [# cycles]
26# ALL-NEXT:         0,          3  (75.0%)
27# ALL-NEXT:         1,          1  (25.0%)
28
29# BARCELONA:       Scheduler's queue usage:
30# BARCELONA-NEXT:  [1] Resource name.
31# BARCELONA-NEXT:  [2] Average number of used buffer entries.
32# BARCELONA-NEXT:  [3] Maximum number of used buffer entries.
33# BARCELONA-NEXT:  [4] Total number of buffer entries.
34
35# BDVER2:          Scheduler's queue usage:
36# BDVER2-NEXT:     [1] Resource name.
37# BDVER2-NEXT:     [2] Average number of used buffer entries.
38# BDVER2-NEXT:     [3] Maximum number of used buffer entries.
39# BDVER2-NEXT:     [4] Total number of buffer entries.
40
41# BDW:             Scheduler's queue usage:
42# BDW-NEXT:        [1] Resource name.
43# BDW-NEXT:        [2] Average number of used buffer entries.
44# BDW-NEXT:        [3] Maximum number of used buffer entries.
45# BDW-NEXT:        [4] Total number of buffer entries.
46
47# BTVER2:          Scheduler's queue usage:
48# BTVER2-NEXT:     [1] Resource name.
49# BTVER2-NEXT:     [2] Average number of used buffer entries.
50# BTVER2-NEXT:     [3] Maximum number of used buffer entries.
51# BTVER2-NEXT:     [4] Total number of buffer entries.
52
53# HSW:             Scheduler's queue usage:
54# HSW-NEXT:        [1] Resource name.
55# HSW-NEXT:        [2] Average number of used buffer entries.
56# HSW-NEXT:        [3] Maximum number of used buffer entries.
57# HSW-NEXT:        [4] Total number of buffer entries.
58
59# ICX:             Scheduler's queue usage:
60# ICX-NEXT:        [1] Resource name.
61# ICX-NEXT:        [2] Average number of used buffer entries.
62# ICX-NEXT:        [3] Maximum number of used buffer entries.
63# ICX-NEXT:        [4] Total number of buffer entries.
64
65# IVB:             Scheduler's queue usage:
66# IVB-NEXT:        [1] Resource name.
67# IVB-NEXT:        [2] Average number of used buffer entries.
68# IVB-NEXT:        [3] Maximum number of used buffer entries.
69# IVB-NEXT:        [4] Total number of buffer entries.
70
71# KNL:             Scheduler's queue usage:
72# KNL-NEXT:        [1] Resource name.
73# KNL-NEXT:        [2] Average number of used buffer entries.
74# KNL-NEXT:        [3] Maximum number of used buffer entries.
75# KNL-NEXT:        [4] Total number of buffer entries.
76
77# SKX:             Scheduler's queue usage:
78# SKX-NEXT:        [1] Resource name.
79# SKX-NEXT:        [2] Average number of used buffer entries.
80# SKX-NEXT:        [3] Maximum number of used buffer entries.
81# SKX-NEXT:        [4] Total number of buffer entries.
82
83# SKX-AVX512:      Scheduler's queue usage:
84# SKX-AVX512-NEXT: [1] Resource name.
85# SKX-AVX512-NEXT: [2] Average number of used buffer entries.
86# SKX-AVX512-NEXT: [3] Maximum number of used buffer entries.
87# SKX-AVX512-NEXT: [4] Total number of buffer entries.
88
89# SLM:             Scheduler's queue usage:
90# SLM-NEXT:        No scheduler resources used.
91
92# SNB:             Scheduler's queue usage:
93# SNB-NEXT:        [1] Resource name.
94# SNB-NEXT:        [2] Average number of used buffer entries.
95# SNB-NEXT:        [3] Maximum number of used buffer entries.
96# SNB-NEXT:        [4] Total number of buffer entries.
97
98# ZNVER1:          Scheduler's queue usage:
99# ZNVER1-NEXT:     [1] Resource name.
100# ZNVER1-NEXT:     [2] Average number of used buffer entries.
101# ZNVER1-NEXT:     [3] Maximum number of used buffer entries.
102# ZNVER1-NEXT:     [4] Total number of buffer entries.
103
104# ZNVER2:          Scheduler's queue usage:
105# ZNVER2-NEXT:     [1] Resource name.
106# ZNVER2-NEXT:     [2] Average number of used buffer entries.
107# ZNVER2-NEXT:     [3] Maximum number of used buffer entries.
108# ZNVER2-NEXT:     [4] Total number of buffer entries.
109
110# ZNVER3:          Scheduler's queue usage:
111# ZNVER3-NEXT:     [1] Resource name.
112# ZNVER3-NEXT:     [2] Average number of used buffer entries.
113# ZNVER3-NEXT:     [3] Maximum number of used buffer entries.
114# ZNVER3-NEXT:     [4] Total number of buffer entries.
115
116# ZNVER4:          Scheduler's queue usage:
117# ZNVER4-NEXT:     [1] Resource name.
118# ZNVER4-NEXT:     [2] Average number of used buffer entries.
119# ZNVER4-NEXT:     [3] Maximum number of used buffer entries.
120# ZNVER4-NEXT:     [4] Total number of buffer entries.
121
122# BARCELONA:        [1]            [2]        [3]        [4]
123# BARCELONA-NEXT:  SBPortAny        0          1          54
124
125# BDVER2:           [1]            [2]        [3]        [4]
126# BDVER2-NEXT:     PdEX             0          1          40
127# BDVER2-NEXT:     PdFPU            0          0          64
128# BDVER2-NEXT:     PdLoad           0          0          40
129# BDVER2-NEXT:     PdStore          0          0          24
130
131# BDW:              [1]            [2]        [3]        [4]
132# BDW-NEXT:        BWPortAny        0          1          60
133
134# BTVER2:           [1]            [2]        [3]        [4]
135# BTVER2-NEXT:     JALU01           0          1          20
136# BTVER2-NEXT:     JFPU01           0          0          18
137# BTVER2-NEXT:     JLSAGU           0          0          12
138
139# HSW:              [1]            [2]        [3]        [4]
140# HSW-NEXT:        HWPortAny        0          1          60
141
142# ICX:              [1]            [2]        [3]        [4]
143# ICX-NEXT:        ICXPortAny       0          1          60
144
145# IVB:              [1]            [2]        [3]        [4]
146# IVB-NEXT:        SBPortAny        0          1          54
147
148# KNL:              [1]            [2]        [3]        [4]
149# KNL-NEXT:        HWPortAny        0          1          60
150
151# SKX:              [1]            [2]        [3]        [4]
152# SKX-NEXT:        SKLPortAny       0          1          60
153
154# SKX-AVX512:       [1]            [2]        [3]        [4]
155# SKX-AVX512-NEXT: SKXPortAny       0          1          60
156
157# SNB:              [1]            [2]        [3]        [4]
158# SNB-NEXT:        SBPortAny        0          1          54
159
160# ZNVER1:           [1]            [2]        [3]        [4]
161# ZNVER1-NEXT:     ZnAGU            0          0          28
162# ZNVER1-NEXT:     ZnALU            0          1          56
163# ZNVER1-NEXT:     ZnFPU            0          0          36
164
165# ZNVER2:           [1]            [2]        [3]        [4]
166# ZNVER2-NEXT:     Zn2AGU           0          0          28
167# ZNVER2-NEXT:     Zn2ALU           0          1          64
168# ZNVER2-NEXT:     Zn2FPU           0          0          36
169
170# ZNVER3:           [1]            [2]        [3]        [4]
171# ZNVER3-NEXT:     Zn3FP            0          0          64
172# ZNVER3-NEXT:     Zn3Int           0          1          96
173# ZNVER3-NEXT:     Zn3Load          0          0          72
174# ZNVER3-NEXT:     Zn3Store         0          0          64
175
176# ZNVER4:           [1]            [2]        [3]        [4]
177# ZNVER4-NEXT:     Zn4FP            0          0          64
178# ZNVER4-NEXT:     Zn4Int           0          1          96
179# ZNVER4-NEXT:     Zn4Load          0          0          72
180# ZNVER4-NEXT:     Zn4Store         0          0          64
181