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