Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / tools / llvm-mca / X86 / Znver3 / one-idioms-mmx.s
blob5909af853dd5a3f44bf15a3cb36e236424783bea
1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -timeline -timeline-max-iterations=2 -register-file-stats -iterations=1000 < %s | FileCheck %s
4 # LLVM-MCA-BEGIN
5 pcmpeqb %mm0, %mm0
6 paddb %mm0, %mm0
7 # LLVM-MCA-END
9 # LLVM-MCA-BEGIN
10 pcmpeqw %mm0, %mm0
11 paddw %mm0, %mm0
12 # LLVM-MCA-END
14 # LLVM-MCA-BEGIN
15 pcmpeqd %mm0, %mm0
16 paddd %mm0, %mm0
17 # LLVM-MCA-END
19 # CHECK: [0] Code Region
21 # CHECK: Iterations: 1000
22 # CHECK-NEXT: Instructions: 2000
23 # CHECK-NEXT: Total Cycles: 504
24 # CHECK-NEXT: Total uOps: 2000
26 # CHECK: Dispatch Width: 6
27 # CHECK-NEXT: uOps Per Cycle: 3.97
28 # CHECK-NEXT: IPC: 3.97
29 # CHECK-NEXT: Block RThroughput: 0.5
31 # CHECK: Instruction Info:
32 # CHECK-NEXT: [1]: #uOps
33 # CHECK-NEXT: [2]: Latency
34 # CHECK-NEXT: [3]: RThroughput
35 # CHECK-NEXT: [4]: MayLoad
36 # CHECK-NEXT: [5]: MayStore
37 # CHECK-NEXT: [6]: HasSideEffects (U)
39 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
40 # CHECK-NEXT: 1 1 0.25 pcmpeqb %mm0, %mm0
41 # CHECK-NEXT: 1 1 0.25 paddb %mm0, %mm0
43 # CHECK: Register File statistics:
44 # CHECK-NEXT: Total number of mappings created: 2000
45 # CHECK-NEXT: Max number of mappings used: 74
47 # CHECK: * Register File #1 -- Zn3FpPRF:
48 # CHECK-NEXT: Number of physical registers: 160
49 # CHECK-NEXT: Total number of mappings created: 2000
50 # CHECK-NEXT: Max number of mappings used: 74
52 # CHECK: * Register File #2 -- Zn3IntegerPRF:
53 # CHECK-NEXT: Number of physical registers: 192
54 # CHECK-NEXT: Total number of mappings created: 0
55 # CHECK-NEXT: Max number of mappings used: 0
57 # CHECK: Resources:
58 # CHECK-NEXT: [0] - Zn3AGU0
59 # CHECK-NEXT: [1] - Zn3AGU1
60 # CHECK-NEXT: [2] - Zn3AGU2
61 # CHECK-NEXT: [3] - Zn3ALU0
62 # CHECK-NEXT: [4] - Zn3ALU1
63 # CHECK-NEXT: [5] - Zn3ALU2
64 # CHECK-NEXT: [6] - Zn3ALU3
65 # CHECK-NEXT: [7] - Zn3BRU1
66 # CHECK-NEXT: [8] - Zn3FPP0
67 # CHECK-NEXT: [9] - Zn3FPP1
68 # CHECK-NEXT: [10] - Zn3FPP2
69 # CHECK-NEXT: [11] - Zn3FPP3
70 # CHECK-NEXT: [12.0] - Zn3FPP45
71 # CHECK-NEXT: [12.1] - Zn3FPP45
72 # CHECK-NEXT: [13] - Zn3FPSt
73 # CHECK-NEXT: [14.0] - Zn3LSU
74 # CHECK-NEXT: [14.1] - Zn3LSU
75 # CHECK-NEXT: [14.2] - Zn3LSU
76 # CHECK-NEXT: [15.0] - Zn3Load
77 # CHECK-NEXT: [15.1] - Zn3Load
78 # CHECK-NEXT: [15.2] - Zn3Load
79 # CHECK-NEXT: [16.0] - Zn3Store
80 # CHECK-NEXT: [16.1] - Zn3Store
82 # CHECK: Resource pressure per iteration:
83 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
84 # CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -
86 # CHECK: Resource pressure by instruction:
87 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
88 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqb %mm0, %mm0
89 # CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddb %mm0, %mm0
91 # CHECK: Timeline view:
92 # CHECK-NEXT: Index 01234
94 # CHECK: [0,0] DeER. pcmpeqb %mm0, %mm0
95 # CHECK-NEXT: [0,1] D=eER paddb %mm0, %mm0
96 # CHECK-NEXT: [1,0] DeE-R pcmpeqb %mm0, %mm0
97 # CHECK-NEXT: [1,1] D=eER paddb %mm0, %mm0
99 # CHECK: Average Wait times (based on the timeline view):
100 # CHECK-NEXT: [0]: Executions
101 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
102 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
103 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
105 # CHECK: [0] [1] [2] [3]
106 # CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqb %mm0, %mm0
107 # CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddb %mm0, %mm0
108 # CHECK-NEXT: 2 1.5 0.5 0.3 <total>
110 # CHECK: [1] Code Region
112 # CHECK: Iterations: 1000
113 # CHECK-NEXT: Instructions: 2000
114 # CHECK-NEXT: Total Cycles: 504
115 # CHECK-NEXT: Total uOps: 2000
117 # CHECK: Dispatch Width: 6
118 # CHECK-NEXT: uOps Per Cycle: 3.97
119 # CHECK-NEXT: IPC: 3.97
120 # CHECK-NEXT: Block RThroughput: 0.5
122 # CHECK: Instruction Info:
123 # CHECK-NEXT: [1]: #uOps
124 # CHECK-NEXT: [2]: Latency
125 # CHECK-NEXT: [3]: RThroughput
126 # CHECK-NEXT: [4]: MayLoad
127 # CHECK-NEXT: [5]: MayStore
128 # CHECK-NEXT: [6]: HasSideEffects (U)
130 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
131 # CHECK-NEXT: 1 1 0.25 pcmpeqw %mm0, %mm0
132 # CHECK-NEXT: 1 1 0.25 paddw %mm0, %mm0
134 # CHECK: Register File statistics:
135 # CHECK-NEXT: Total number of mappings created: 2000
136 # CHECK-NEXT: Max number of mappings used: 74
138 # CHECK: * Register File #1 -- Zn3FpPRF:
139 # CHECK-NEXT: Number of physical registers: 160
140 # CHECK-NEXT: Total number of mappings created: 2000
141 # CHECK-NEXT: Max number of mappings used: 74
143 # CHECK: * Register File #2 -- Zn3IntegerPRF:
144 # CHECK-NEXT: Number of physical registers: 192
145 # CHECK-NEXT: Total number of mappings created: 0
146 # CHECK-NEXT: Max number of mappings used: 0
148 # CHECK: Resources:
149 # CHECK-NEXT: [0] - Zn3AGU0
150 # CHECK-NEXT: [1] - Zn3AGU1
151 # CHECK-NEXT: [2] - Zn3AGU2
152 # CHECK-NEXT: [3] - Zn3ALU0
153 # CHECK-NEXT: [4] - Zn3ALU1
154 # CHECK-NEXT: [5] - Zn3ALU2
155 # CHECK-NEXT: [6] - Zn3ALU3
156 # CHECK-NEXT: [7] - Zn3BRU1
157 # CHECK-NEXT: [8] - Zn3FPP0
158 # CHECK-NEXT: [9] - Zn3FPP1
159 # CHECK-NEXT: [10] - Zn3FPP2
160 # CHECK-NEXT: [11] - Zn3FPP3
161 # CHECK-NEXT: [12.0] - Zn3FPP45
162 # CHECK-NEXT: [12.1] - Zn3FPP45
163 # CHECK-NEXT: [13] - Zn3FPSt
164 # CHECK-NEXT: [14.0] - Zn3LSU
165 # CHECK-NEXT: [14.1] - Zn3LSU
166 # CHECK-NEXT: [14.2] - Zn3LSU
167 # CHECK-NEXT: [15.0] - Zn3Load
168 # CHECK-NEXT: [15.1] - Zn3Load
169 # CHECK-NEXT: [15.2] - Zn3Load
170 # CHECK-NEXT: [16.0] - Zn3Store
171 # CHECK-NEXT: [16.1] - Zn3Store
173 # CHECK: Resource pressure per iteration:
174 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
175 # CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -
177 # CHECK: Resource pressure by instruction:
178 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
179 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqw %mm0, %mm0
180 # CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddw %mm0, %mm0
182 # CHECK: Timeline view:
183 # CHECK-NEXT: Index 01234
185 # CHECK: [0,0] DeER. pcmpeqw %mm0, %mm0
186 # CHECK-NEXT: [0,1] D=eER paddw %mm0, %mm0
187 # CHECK-NEXT: [1,0] DeE-R pcmpeqw %mm0, %mm0
188 # CHECK-NEXT: [1,1] D=eER paddw %mm0, %mm0
190 # CHECK: Average Wait times (based on the timeline view):
191 # CHECK-NEXT: [0]: Executions
192 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
193 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
194 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
196 # CHECK: [0] [1] [2] [3]
197 # CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqw %mm0, %mm0
198 # CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddw %mm0, %mm0
199 # CHECK-NEXT: 2 1.5 0.5 0.3 <total>
201 # CHECK: [2] Code Region
203 # CHECK: Iterations: 1000
204 # CHECK-NEXT: Instructions: 2000
205 # CHECK-NEXT: Total Cycles: 504
206 # CHECK-NEXT: Total uOps: 2000
208 # CHECK: Dispatch Width: 6
209 # CHECK-NEXT: uOps Per Cycle: 3.97
210 # CHECK-NEXT: IPC: 3.97
211 # CHECK-NEXT: Block RThroughput: 0.5
213 # CHECK: Instruction Info:
214 # CHECK-NEXT: [1]: #uOps
215 # CHECK-NEXT: [2]: Latency
216 # CHECK-NEXT: [3]: RThroughput
217 # CHECK-NEXT: [4]: MayLoad
218 # CHECK-NEXT: [5]: MayStore
219 # CHECK-NEXT: [6]: HasSideEffects (U)
221 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
222 # CHECK-NEXT: 1 1 0.25 pcmpeqd %mm0, %mm0
223 # CHECK-NEXT: 1 1 0.25 paddd %mm0, %mm0
225 # CHECK: Register File statistics:
226 # CHECK-NEXT: Total number of mappings created: 2000
227 # CHECK-NEXT: Max number of mappings used: 74
229 # CHECK: * Register File #1 -- Zn3FpPRF:
230 # CHECK-NEXT: Number of physical registers: 160
231 # CHECK-NEXT: Total number of mappings created: 2000
232 # CHECK-NEXT: Max number of mappings used: 74
234 # CHECK: * Register File #2 -- Zn3IntegerPRF:
235 # CHECK-NEXT: Number of physical registers: 192
236 # CHECK-NEXT: Total number of mappings created: 0
237 # CHECK-NEXT: Max number of mappings used: 0
239 # CHECK: Resources:
240 # CHECK-NEXT: [0] - Zn3AGU0
241 # CHECK-NEXT: [1] - Zn3AGU1
242 # CHECK-NEXT: [2] - Zn3AGU2
243 # CHECK-NEXT: [3] - Zn3ALU0
244 # CHECK-NEXT: [4] - Zn3ALU1
245 # CHECK-NEXT: [5] - Zn3ALU2
246 # CHECK-NEXT: [6] - Zn3ALU3
247 # CHECK-NEXT: [7] - Zn3BRU1
248 # CHECK-NEXT: [8] - Zn3FPP0
249 # CHECK-NEXT: [9] - Zn3FPP1
250 # CHECK-NEXT: [10] - Zn3FPP2
251 # CHECK-NEXT: [11] - Zn3FPP3
252 # CHECK-NEXT: [12.0] - Zn3FPP45
253 # CHECK-NEXT: [12.1] - Zn3FPP45
254 # CHECK-NEXT: [13] - Zn3FPSt
255 # CHECK-NEXT: [14.0] - Zn3LSU
256 # CHECK-NEXT: [14.1] - Zn3LSU
257 # CHECK-NEXT: [14.2] - Zn3LSU
258 # CHECK-NEXT: [15.0] - Zn3Load
259 # CHECK-NEXT: [15.1] - Zn3Load
260 # CHECK-NEXT: [15.2] - Zn3Load
261 # CHECK-NEXT: [16.0] - Zn3Store
262 # CHECK-NEXT: [16.1] - Zn3Store
264 # CHECK: Resource pressure per iteration:
265 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
266 # CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - -
268 # CHECK: Resource pressure by instruction:
269 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
270 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.50 - - - - - - - - - - - - pcmpeqd %mm0, %mm0
271 # CHECK-NEXT: - - - - - - - - 0.25 0.25 - 0.50 - - - - - - - - - - - paddd %mm0, %mm0
273 # CHECK: Timeline view:
274 # CHECK-NEXT: Index 01234
276 # CHECK: [0,0] DeER. pcmpeqd %mm0, %mm0
277 # CHECK-NEXT: [0,1] D=eER paddd %mm0, %mm0
278 # CHECK-NEXT: [1,0] DeE-R pcmpeqd %mm0, %mm0
279 # CHECK-NEXT: [1,1] D=eER paddd %mm0, %mm0
281 # CHECK: Average Wait times (based on the timeline view):
282 # CHECK-NEXT: [0]: Executions
283 # CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
284 # CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
285 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
287 # CHECK: [0] [1] [2] [3]
288 # CHECK-NEXT: 0. 2 1.0 1.0 0.5 pcmpeqd %mm0, %mm0
289 # CHECK-NEXT: 1. 2 2.0 0.0 0.0 paddd %mm0, %mm0
290 # CHECK-NEXT: 2 1.5 0.5 0.3 <total>