1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -instruction-tables < %s | FileCheck %s
106 # CHECK: Instruction Info:
107 # CHECK-NEXT: [1]: #uOps
108 # CHECK-NEXT: [2]: Latency
109 # CHECK-NEXT: [3]: RThroughput
110 # CHECK-NEXT: [4]: MayLoad
111 # CHECK-NEXT: [5]: MayStore
112 # CHECK-NEXT: [6]: HasSideEffects (U)
114 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
115 # CHECK-NEXT: 1 1 0.25 cmovow %si, %di
116 # CHECK-NEXT: 1 1 0.25 cmovnow %si, %di
117 # CHECK-NEXT: 1 1 0.25 cmovbw %si, %di
118 # CHECK-NEXT: 1 1 0.25 cmovaew %si, %di
119 # CHECK-NEXT: 1 1 0.25 cmovew %si, %di
120 # CHECK-NEXT: 1 1 0.25 cmovnew %si, %di
121 # CHECK-NEXT: 1 1 0.25 cmovbew %si, %di
122 # CHECK-NEXT: 1 1 0.25 cmovaw %si, %di
123 # CHECK-NEXT: 1 1 0.25 cmovsw %si, %di
124 # CHECK-NEXT: 1 1 0.25 cmovnsw %si, %di
125 # CHECK-NEXT: 1 1 0.25 cmovpw %si, %di
126 # CHECK-NEXT: 1 1 0.25 cmovnpw %si, %di
127 # CHECK-NEXT: 1 1 0.25 cmovlw %si, %di
128 # CHECK-NEXT: 1 1 0.25 cmovgew %si, %di
129 # CHECK-NEXT: 1 1 0.25 cmovlew %si, %di
130 # CHECK-NEXT: 1 1 0.25 cmovgw %si, %di
131 # CHECK-NEXT: 2 5 0.50 * cmovow (%rax), %di
132 # CHECK-NEXT: 2 5 0.50 * cmovnow (%rax), %di
133 # CHECK-NEXT: 2 5 0.50 * cmovbw (%rax), %di
134 # CHECK-NEXT: 2 5 0.50 * cmovaew (%rax), %di
135 # CHECK-NEXT: 2 5 0.50 * cmovew (%rax), %di
136 # CHECK-NEXT: 2 5 0.50 * cmovnew (%rax), %di
137 # CHECK-NEXT: 2 5 0.50 * cmovbew (%rax), %di
138 # CHECK-NEXT: 2 5 0.50 * cmovaw (%rax), %di
139 # CHECK-NEXT: 2 5 0.50 * cmovsw (%rax), %di
140 # CHECK-NEXT: 2 5 0.50 * cmovnsw (%rax), %di
141 # CHECK-NEXT: 2 5 0.50 * cmovpw (%rax), %di
142 # CHECK-NEXT: 2 5 0.50 * cmovnpw (%rax), %di
143 # CHECK-NEXT: 2 5 0.50 * cmovlw (%rax), %di
144 # CHECK-NEXT: 2 5 0.50 * cmovgew (%rax), %di
145 # CHECK-NEXT: 2 5 0.50 * cmovlew (%rax), %di
146 # CHECK-NEXT: 2 5 0.50 * cmovgw (%rax), %di
147 # CHECK-NEXT: 1 1 0.25 cmovol %esi, %edi
148 # CHECK-NEXT: 1 1 0.25 cmovnol %esi, %edi
149 # CHECK-NEXT: 1 1 0.25 cmovbl %esi, %edi
150 # CHECK-NEXT: 1 1 0.25 cmovael %esi, %edi
151 # CHECK-NEXT: 1 1 0.25 cmovel %esi, %edi
152 # CHECK-NEXT: 1 1 0.25 cmovnel %esi, %edi
153 # CHECK-NEXT: 1 1 0.25 cmovbel %esi, %edi
154 # CHECK-NEXT: 1 1 0.25 cmoval %esi, %edi
155 # CHECK-NEXT: 1 1 0.25 cmovsl %esi, %edi
156 # CHECK-NEXT: 1 1 0.25 cmovnsl %esi, %edi
157 # CHECK-NEXT: 1 1 0.25 cmovpl %esi, %edi
158 # CHECK-NEXT: 1 1 0.25 cmovnpl %esi, %edi
159 # CHECK-NEXT: 1 1 0.25 cmovll %esi, %edi
160 # CHECK-NEXT: 1 1 0.25 cmovgel %esi, %edi
161 # CHECK-NEXT: 1 1 0.25 cmovlel %esi, %edi
162 # CHECK-NEXT: 1 1 0.25 cmovgl %esi, %edi
163 # CHECK-NEXT: 2 5 0.50 * cmovol (%rax), %edi
164 # CHECK-NEXT: 2 5 0.50 * cmovnol (%rax), %edi
165 # CHECK-NEXT: 2 5 0.50 * cmovbl (%rax), %edi
166 # CHECK-NEXT: 2 5 0.50 * cmovael (%rax), %edi
167 # CHECK-NEXT: 2 5 0.50 * cmovel (%rax), %edi
168 # CHECK-NEXT: 2 5 0.50 * cmovnel (%rax), %edi
169 # CHECK-NEXT: 2 5 0.50 * cmovbel (%rax), %edi
170 # CHECK-NEXT: 2 5 0.50 * cmoval (%rax), %edi
171 # CHECK-NEXT: 2 5 0.50 * cmovsl (%rax), %edi
172 # CHECK-NEXT: 2 5 0.50 * cmovnsl (%rax), %edi
173 # CHECK-NEXT: 2 5 0.50 * cmovpl (%rax), %edi
174 # CHECK-NEXT: 2 5 0.50 * cmovnpl (%rax), %edi
175 # CHECK-NEXT: 2 5 0.50 * cmovll (%rax), %edi
176 # CHECK-NEXT: 2 5 0.50 * cmovgel (%rax), %edi
177 # CHECK-NEXT: 2 5 0.50 * cmovlel (%rax), %edi
178 # CHECK-NEXT: 2 5 0.50 * cmovgl (%rax), %edi
179 # CHECK-NEXT: 1 1 0.25 cmovoq %rsi, %rdi
180 # CHECK-NEXT: 1 1 0.25 cmovnoq %rsi, %rdi
181 # CHECK-NEXT: 1 1 0.25 cmovbq %rsi, %rdi
182 # CHECK-NEXT: 1 1 0.25 cmovaeq %rsi, %rdi
183 # CHECK-NEXT: 1 1 0.25 cmoveq %rsi, %rdi
184 # CHECK-NEXT: 1 1 0.25 cmovneq %rsi, %rdi
185 # CHECK-NEXT: 1 1 0.25 cmovbeq %rsi, %rdi
186 # CHECK-NEXT: 1 1 0.25 cmovaq %rsi, %rdi
187 # CHECK-NEXT: 1 1 0.25 cmovsq %rsi, %rdi
188 # CHECK-NEXT: 1 1 0.25 cmovnsq %rsi, %rdi
189 # CHECK-NEXT: 1 1 0.25 cmovpq %rsi, %rdi
190 # CHECK-NEXT: 1 1 0.25 cmovnpq %rsi, %rdi
191 # CHECK-NEXT: 1 1 0.25 cmovlq %rsi, %rdi
192 # CHECK-NEXT: 1 1 0.25 cmovgeq %rsi, %rdi
193 # CHECK-NEXT: 1 1 0.25 cmovleq %rsi, %rdi
194 # CHECK-NEXT: 1 1 0.25 cmovgq %rsi, %rdi
195 # CHECK-NEXT: 2 5 0.50 * cmovoq (%rax), %rdi
196 # CHECK-NEXT: 2 5 0.50 * cmovnoq (%rax), %rdi
197 # CHECK-NEXT: 2 5 0.50 * cmovbq (%rax), %rdi
198 # CHECK-NEXT: 2 5 0.50 * cmovaeq (%rax), %rdi
199 # CHECK-NEXT: 2 5 0.50 * cmoveq (%rax), %rdi
200 # CHECK-NEXT: 2 5 0.50 * cmovneq (%rax), %rdi
201 # CHECK-NEXT: 2 5 0.50 * cmovbeq (%rax), %rdi
202 # CHECK-NEXT: 2 5 0.50 * cmovaq (%rax), %rdi
203 # CHECK-NEXT: 2 5 0.50 * cmovsq (%rax), %rdi
204 # CHECK-NEXT: 2 5 0.50 * cmovnsq (%rax), %rdi
205 # CHECK-NEXT: 2 5 0.50 * cmovpq (%rax), %rdi
206 # CHECK-NEXT: 2 5 0.50 * cmovnpq (%rax), %rdi
207 # CHECK-NEXT: 2 5 0.50 * cmovlq (%rax), %rdi
208 # CHECK-NEXT: 2 5 0.50 * cmovgeq (%rax), %rdi
209 # CHECK-NEXT: 2 5 0.50 * cmovleq (%rax), %rdi
210 # CHECK-NEXT: 2 5 0.50 * cmovgq (%rax), %rdi
213 # CHECK-NEXT: [0] - ZnAGU0
214 # CHECK-NEXT: [1] - ZnAGU1
215 # CHECK-NEXT: [2] - ZnALU0
216 # CHECK-NEXT: [3] - ZnALU1
217 # CHECK-NEXT: [4] - ZnALU2
218 # CHECK-NEXT: [5] - ZnALU3
219 # CHECK-NEXT: [6] - ZnDivider
220 # CHECK-NEXT: [7] - ZnFPU0
221 # CHECK-NEXT: [8] - ZnFPU1
222 # CHECK-NEXT: [9] - ZnFPU2
223 # CHECK-NEXT: [10] - ZnFPU3
224 # CHECK-NEXT: [11] - ZnMultiplier
226 # CHECK: Resource pressure per iteration:
227 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
228 # CHECK-NEXT: 24.00 24.00 24.00 24.00 24.00 24.00 - - - - - -
230 # CHECK: Resource pressure by instruction:
231 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
232 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovow %si, %di
233 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnow %si, %di
234 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbw %si, %di
235 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovaew %si, %di
236 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovew %si, %di
237 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnew %si, %di
238 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbew %si, %di
239 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovaw %si, %di
240 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovsw %si, %di
241 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsw %si, %di
242 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovpw %si, %di
243 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpw %si, %di
244 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovlw %si, %di
245 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgew %si, %di
246 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovlew %si, %di
247 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgw %si, %di
248 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovow (%rax), %di
249 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnow (%rax), %di
250 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbw (%rax), %di
251 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovaew (%rax), %di
252 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovew (%rax), %di
253 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnew (%rax), %di
254 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbew (%rax), %di
255 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovaw (%rax), %di
256 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovsw (%rax), %di
257 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnsw (%rax), %di
258 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovpw (%rax), %di
259 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnpw (%rax), %di
260 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovlw (%rax), %di
261 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgew (%rax), %di
262 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovlew (%rax), %di
263 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgw (%rax), %di
264 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovol %esi, %edi
265 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnol %esi, %edi
266 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbl %esi, %edi
267 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovael %esi, %edi
268 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovel %esi, %edi
269 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnel %esi, %edi
270 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbel %esi, %edi
271 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmoval %esi, %edi
272 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovsl %esi, %edi
273 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsl %esi, %edi
274 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovpl %esi, %edi
275 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpl %esi, %edi
276 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovll %esi, %edi
277 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgel %esi, %edi
278 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovlel %esi, %edi
279 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgl %esi, %edi
280 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovol (%rax), %edi
281 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnol (%rax), %edi
282 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbl (%rax), %edi
283 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovael (%rax), %edi
284 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovel (%rax), %edi
285 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnel (%rax), %edi
286 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbel (%rax), %edi
287 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmoval (%rax), %edi
288 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovsl (%rax), %edi
289 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnsl (%rax), %edi
290 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovpl (%rax), %edi
291 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnpl (%rax), %edi
292 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovll (%rax), %edi
293 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgel (%rax), %edi
294 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovlel (%rax), %edi
295 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgl (%rax), %edi
296 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovoq %rsi, %rdi
297 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnoq %rsi, %rdi
298 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbq %rsi, %rdi
299 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovaeq %rsi, %rdi
300 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmoveq %rsi, %rdi
301 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovneq %rsi, %rdi
302 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovbeq %rsi, %rdi
303 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovaq %rsi, %rdi
304 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovsq %rsi, %rdi
305 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsq %rsi, %rdi
306 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovpq %rsi, %rdi
307 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpq %rsi, %rdi
308 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovlq %rsi, %rdi
309 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgeq %rsi, %rdi
310 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovleq %rsi, %rdi
311 # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - cmovgq %rsi, %rdi
312 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovoq (%rax), %rdi
313 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnoq (%rax), %rdi
314 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbq (%rax), %rdi
315 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovaeq (%rax), %rdi
316 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmoveq (%rax), %rdi
317 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovneq (%rax), %rdi
318 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovbeq (%rax), %rdi
319 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovaq (%rax), %rdi
320 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovsq (%rax), %rdi
321 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnsq (%rax), %rdi
322 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovpq (%rax), %rdi
323 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovnpq (%rax), %rdi
324 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovlq (%rax), %rdi
325 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgeq (%rax), %rdi
326 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovleq (%rax), %rdi
327 # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - cmovgq (%rax), %rdi