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=sandybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SNB %s
9# 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
10# 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
11# 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
12# 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
13# 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
14# 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
15# 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
16# 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
17# 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
18# 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
19# 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
20
21xor %eax, %ebx
22
23# ALL:             Schedulers - number of cycles where we saw N micro opcodes issued:
24# ALL-NEXT:        [# issued], [# cycles]
25# ALL-NEXT:         0,          3  (75.0%)
26# ALL-NEXT:         1,          1  (25.0%)
27
28# BARCELONA:       Scheduler's queue usage:
29# BARCELONA-NEXT:  [1] Resource name.
30# BARCELONA-NEXT:  [2] Average number of used buffer entries.
31# BARCELONA-NEXT:  [3] Maximum number of used buffer entries.
32# BARCELONA-NEXT:  [4] Total number of buffer entries.
33
34# BDVER2:          Scheduler's queue usage:
35# BDVER2-NEXT:     [1] Resource name.
36# BDVER2-NEXT:     [2] Average number of used buffer entries.
37# BDVER2-NEXT:     [3] Maximum number of used buffer entries.
38# BDVER2-NEXT:     [4] Total number of buffer entries.
39
40# BDW:             Scheduler's queue usage:
41# BDW-NEXT:        [1] Resource name.
42# BDW-NEXT:        [2] Average number of used buffer entries.
43# BDW-NEXT:        [3] Maximum number of used buffer entries.
44# BDW-NEXT:        [4] Total number of buffer entries.
45
46# BTVER2:          Scheduler's queue usage:
47# BTVER2-NEXT:     [1] Resource name.
48# BTVER2-NEXT:     [2] Average number of used buffer entries.
49# BTVER2-NEXT:     [3] Maximum number of used buffer entries.
50# BTVER2-NEXT:     [4] Total number of buffer entries.
51
52# HSW:             Scheduler's queue usage:
53# HSW-NEXT:        [1] Resource name.
54# HSW-NEXT:        [2] Average number of used buffer entries.
55# HSW-NEXT:        [3] Maximum number of used buffer entries.
56# HSW-NEXT:        [4] Total number of buffer entries.
57
58# ICX:             Scheduler's queue usage:
59# ICX-NEXT:        [1] Resource name.
60# ICX-NEXT:        [2] Average number of used buffer entries.
61# ICX-NEXT:        [3] Maximum number of used buffer entries.
62# ICX-NEXT:        [4] Total number of buffer entries.
63
64# IVB:             Scheduler's queue usage:
65# IVB-NEXT:        [1] Resource name.
66# IVB-NEXT:        [2] Average number of used buffer entries.
67# IVB-NEXT:        [3] Maximum number of used buffer entries.
68# IVB-NEXT:        [4] Total number of buffer entries.
69
70# KNL:             Scheduler's queue usage:
71# KNL-NEXT:        [1] Resource name.
72# KNL-NEXT:        [2] Average number of used buffer entries.
73# KNL-NEXT:        [3] Maximum number of used buffer entries.
74# KNL-NEXT:        [4] Total number of buffer entries.
75
76# SKX:             Scheduler's queue usage:
77# SKX-NEXT:        [1] Resource name.
78# SKX-NEXT:        [2] Average number of used buffer entries.
79# SKX-NEXT:        [3] Maximum number of used buffer entries.
80# SKX-NEXT:        [4] Total number of buffer entries.
81
82# SKX-AVX512:      Scheduler's queue usage:
83# SKX-AVX512-NEXT: [1] Resource name.
84# SKX-AVX512-NEXT: [2] Average number of used buffer entries.
85# SKX-AVX512-NEXT: [3] Maximum number of used buffer entries.
86# SKX-AVX512-NEXT: [4] Total number of buffer entries.
87
88# SLM:             Scheduler's queue usage:
89# SLM-NEXT:        No scheduler resources used.
90
91# SNB:             Scheduler's queue usage:
92# SNB-NEXT:        [1] Resource name.
93# SNB-NEXT:        [2] Average number of used buffer entries.
94# SNB-NEXT:        [3] Maximum number of used buffer entries.
95# SNB-NEXT:        [4] Total number of buffer entries.
96
97# ZNVER1:          Scheduler's queue usage:
98# ZNVER1-NEXT:     [1] Resource name.
99# ZNVER1-NEXT:     [2] Average number of used buffer entries.
100# ZNVER1-NEXT:     [3] Maximum number of used buffer entries.
101# ZNVER1-NEXT:     [4] Total number of buffer entries.
102
103# ZNVER2:          Scheduler's queue usage:
104# ZNVER2-NEXT:     [1] Resource name.
105# ZNVER2-NEXT:     [2] Average number of used buffer entries.
106# ZNVER2-NEXT:     [3] Maximum number of used buffer entries.
107# ZNVER2-NEXT:     [4] Total number of buffer entries.
108
109# ZNVER3:          Scheduler's queue usage:
110# ZNVER3-NEXT:     [1] Resource name.
111# ZNVER3-NEXT:     [2] Average number of used buffer entries.
112# ZNVER3-NEXT:     [3] Maximum number of used buffer entries.
113# ZNVER3-NEXT:     [4] Total number of buffer entries.
114
115# BARCELONA:        [1]            [2]        [3]        [4]
116# BARCELONA-NEXT:  SBPortAny        0          1          54
117
118# BDVER2:           [1]            [2]        [3]        [4]
119# BDVER2-NEXT:     PdEX             0          1          40
120# BDVER2-NEXT:     PdFPU            0          0          64
121# BDVER2-NEXT:     PdLoad           0          0          40
122# BDVER2-NEXT:     PdStore          0          0          24
123
124# BDW:              [1]            [2]        [3]        [4]
125# BDW-NEXT:        BWPortAny        0          1          60
126
127# BTVER2:           [1]            [2]        [3]        [4]
128# BTVER2-NEXT:     JALU01           0          1          20
129# BTVER2-NEXT:     JFPU01           0          0          18
130# BTVER2-NEXT:     JLSAGU           0          0          12
131
132# HSW:              [1]            [2]        [3]        [4]
133# HSW-NEXT:        HWPortAny        0          1          60
134
135# ICX:              [1]            [2]        [3]        [4]
136# ICX-NEXT:        ICXPortAny       0          1          60
137
138# IVB:              [1]            [2]        [3]        [4]
139# IVB-NEXT:        SBPortAny        0          1          54
140
141# KNL:              [1]            [2]        [3]        [4]
142# KNL-NEXT:        HWPortAny        0          1          60
143
144# SKX:              [1]            [2]        [3]        [4]
145# SKX-NEXT:        SKLPortAny       0          1          60
146
147# SKX-AVX512:       [1]            [2]        [3]        [4]
148# SKX-AVX512-NEXT: SKXPortAny       0          1          60
149
150# SNB:              [1]            [2]        [3]        [4]
151# SNB-NEXT:        SBPortAny        0          1          54
152
153# ZNVER1:           [1]            [2]        [3]        [4]
154# ZNVER1-NEXT:     ZnAGU            0          0          28
155# ZNVER1-NEXT:     ZnALU            0          1          56
156# ZNVER1-NEXT:     ZnFPU            0          0          36
157
158# ZNVER2:           [1]            [2]        [3]        [4]
159# ZNVER2-NEXT:     Zn2AGU           0          0          28
160# ZNVER2-NEXT:     Zn2ALU           0          1          64
161# ZNVER2-NEXT:     Zn2FPU           0          0          36
162
163# ZNVER3:           [1]            [2]        [3]        [4]
164# ZNVER3-NEXT:     Zn3FP            0          0          64
165# ZNVER3-NEXT:     Zn3Int           0          1          96
166# ZNVER3-NEXT:     Zn3Load          0          0          72
167# ZNVER3-NEXT:     Zn3Store         0          0          64
168