xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-xop.s (revision 0c9c92ffc0acde32376b7ba8dcbe7fec90de3ff3)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
3
4vfrczpd %xmm0, %xmm3
5vfrczpd (%rax), %xmm3
6
7vfrczpd %ymm0, %ymm3
8vfrczpd (%rax), %ymm3
9
10vfrczps %xmm0, %xmm3
11vfrczps (%rax), %xmm3
12
13vfrczps %ymm0, %ymm3
14vfrczps (%rax), %ymm3
15
16vfrczsd %xmm0, %xmm3
17vfrczsd (%rax), %xmm3
18
19vfrczss %xmm0, %xmm3
20vfrczss (%rax), %xmm3
21
22vpcmov %xmm0, %xmm1, %xmm2, %xmm3
23vpcmov (%rax), %xmm0, %xmm1, %xmm3
24vpcmov %xmm0, (%rax), %xmm1, %xmm3
25
26vpcmov %ymm0, %ymm1, %ymm2, %ymm3
27vpcmov (%rax), %ymm0, %ymm1, %ymm3
28vpcmov %ymm0, (%rax), %ymm1, %ymm3
29
30vpcomb $0, %xmm0, %xmm1, %xmm3
31vpcomb $0, (%rax), %xmm0, %xmm3
32
33vpcomd $0, %xmm0, %xmm1, %xmm3
34vpcomd $0, (%rax), %xmm0, %xmm3
35
36vpcomq $0, %xmm0, %xmm1, %xmm3
37vpcomq $0, (%rax), %xmm0, %xmm3
38
39vpcomub $0, %xmm0, %xmm1, %xmm3
40vpcomub $0, (%rax), %xmm0, %xmm3
41
42vpcomud $0, %xmm0, %xmm1, %xmm3
43vpcomud $0, (%rax), %xmm0, %xmm3
44
45vpcomuq $0, %xmm0, %xmm1, %xmm3
46vpcomuq $0, (%rax), %xmm0, %xmm3
47
48vpcomuw $0, %xmm0, %xmm1, %xmm3
49vpcomuw $0, (%rax), %xmm0, %xmm3
50
51vpcomw $0, %xmm0, %xmm1, %xmm3
52vpcomw $0, (%rax), %xmm0, %xmm3
53
54vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3
55vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3
56vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3
57
58vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3
59vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3
60vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3
61
62vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3
63vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3
64vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3
65
66vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3
67vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3
68vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3
69
70vphaddbd %xmm0, %xmm3
71vphaddbd (%rax), %xmm3
72
73vphaddbq %xmm0, %xmm3
74vphaddbq (%rax), %xmm3
75
76vphaddbw %xmm0, %xmm3
77vphaddbw (%rax), %xmm3
78
79vphadddq %xmm0, %xmm3
80vphadddq (%rax), %xmm3
81
82vphaddubd %xmm0, %xmm3
83vphaddubd (%rax), %xmm3
84
85vphaddubq %xmm0, %xmm3
86vphaddubq (%rax), %xmm3
87
88vphaddubw %xmm0, %xmm3
89vphaddubw (%rax), %xmm3
90
91vphaddudq %xmm0, %xmm3
92vphaddudq (%rax), %xmm3
93
94vphadduwd %xmm0, %xmm3
95vphadduwd (%rax), %xmm3
96
97vphadduwq %xmm0, %xmm3
98vphadduwq (%rax), %xmm3
99
100vphaddwd %xmm0, %xmm3
101vphaddwd (%rax), %xmm3
102
103vphaddwq %xmm0, %xmm3
104vphaddwq (%rax), %xmm3
105
106vphsubbw %xmm0, %xmm3
107vphsubbw (%rax), %xmm3
108
109vphsubdq %xmm0, %xmm3
110vphsubdq (%rax), %xmm3
111
112vphsubwd %xmm0, %xmm3
113vphsubwd (%rax), %xmm3
114
115vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3
116vpmacsdd %xmm0, (%rax), %xmm1, %xmm3
117
118vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3
119vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3
120
121vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3
122vpmacsdql %xmm0, (%rax), %xmm1, %xmm3
123
124vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3
125vpmacssdd %xmm0, (%rax), %xmm1, %xmm3
126
127vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3
128vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3
129
130vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3
131vpmacssdql %xmm0, (%rax), %xmm1, %xmm3
132
133vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3
134vpmacsswd %xmm0, (%rax), %xmm1, %xmm3
135
136vpmacssww %xmm0, %xmm1, %xmm2, %xmm3
137vpmacssww %xmm0, (%rax), %xmm1, %xmm3
138
139vpmacswd %xmm0, %xmm1, %xmm2, %xmm3
140vpmacswd %xmm0, (%rax), %xmm1, %xmm3
141
142vpmacsww %xmm0, %xmm1, %xmm2, %xmm3
143vpmacsww %xmm0, (%rax), %xmm1, %xmm3
144
145vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3
146vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3
147
148vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3
149vpmadcswd %xmm0, (%rax), %xmm1, %xmm3
150
151vpperm %xmm0, %xmm1, %xmm2, %xmm3
152vpperm (%rax), %xmm0, %xmm1, %xmm3
153vpperm %xmm0, (%rax), %xmm1, %xmm3
154
155vprotb %xmm0, %xmm1, %xmm3
156vprotb (%rax), %xmm0, %xmm3
157vprotb %xmm0, (%rax), %xmm3
158
159vprotb $0, %xmm0, %xmm3
160vprotb $0, (%rax), %xmm3
161
162vprotd %xmm0, %xmm1, %xmm3
163vprotd (%rax), %xmm0, %xmm3
164vprotd %xmm0, (%rax), %xmm3
165
166vprotd $0, %xmm0, %xmm3
167vprotd $0, (%rax), %xmm3
168
169vprotq %xmm0, %xmm1, %xmm3
170vprotq (%rax), %xmm0, %xmm3
171vprotq %xmm0, (%rax), %xmm3
172
173vprotq $0, %xmm0, %xmm3
174vprotq $0, (%rax), %xmm3
175
176vprotw %xmm0, %xmm1, %xmm3
177vprotw (%rax), %xmm0, %xmm3
178vprotw %xmm0, (%rax), %xmm3
179
180vprotw $0, %xmm0, %xmm3
181vprotw $0, (%rax), %xmm3
182
183vpshab %xmm0, %xmm1, %xmm3
184vpshab (%rax), %xmm0, %xmm3
185vpshab %xmm0, (%rax), %xmm3
186
187vpshad %xmm0, %xmm1, %xmm3
188vpshad (%rax), %xmm0, %xmm3
189vpshad %xmm0, (%rax), %xmm3
190
191vpshaq %xmm0, %xmm1, %xmm3
192vpshaq (%rax), %xmm0, %xmm3
193vpshaq %xmm0, (%rax), %xmm3
194
195vpshaw %xmm0, %xmm1, %xmm3
196vpshaw (%rax), %xmm0, %xmm3
197vpshaw %xmm0, (%rax), %xmm3
198
199vpshlb %xmm0, %xmm1, %xmm3
200vpshlb (%rax), %xmm0, %xmm3
201vpshlb %xmm0, (%rax), %xmm3
202
203vpshld %xmm0, %xmm1, %xmm3
204vpshld (%rax), %xmm0, %xmm3
205vpshld %xmm0, (%rax), %xmm3
206
207vpshlq %xmm0, %xmm1, %xmm3
208vpshlq (%rax), %xmm0, %xmm3
209vpshlq %xmm0, (%rax), %xmm3
210
211vpshlw %xmm0, %xmm1, %xmm3
212vpshlw (%rax), %xmm0, %xmm3
213vpshlw %xmm0, (%rax), %xmm3
214
215# CHECK:      Instruction Info:
216# CHECK-NEXT: [1]: #uOps
217# CHECK-NEXT: [2]: Latency
218# CHECK-NEXT: [3]: RThroughput
219# CHECK-NEXT: [4]: MayLoad
220# CHECK-NEXT: [5]: MayStore
221# CHECK-NEXT: [6]: HasSideEffects (U)
222
223# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
224# CHECK-NEXT:  1      3     1.00                        vfrczpd	%xmm0, %xmm3
225# CHECK-NEXT:  2      9     1.00    *                   vfrczpd	(%rax), %xmm3
226# CHECK-NEXT:  1      3     1.00                        vfrczpd	%ymm0, %ymm3
227# CHECK-NEXT:  2      10    1.00    *                   vfrczpd	(%rax), %ymm3
228# CHECK-NEXT:  1      3     1.00                        vfrczps	%xmm0, %xmm3
229# CHECK-NEXT:  2      9     1.00    *                   vfrczps	(%rax), %xmm3
230# CHECK-NEXT:  1      3     1.00                        vfrczps	%ymm0, %ymm3
231# CHECK-NEXT:  2      10    1.00    *                   vfrczps	(%rax), %ymm3
232# CHECK-NEXT:  1      3     1.00                        vfrczsd	%xmm0, %xmm3
233# CHECK-NEXT:  2      9     1.00    *                   vfrczsd	(%rax), %xmm3
234# CHECK-NEXT:  1      3     1.00                        vfrczss	%xmm0, %xmm3
235# CHECK-NEXT:  2      9     1.00    *                   vfrczss	(%rax), %xmm3
236# CHECK-NEXT:  1      1     0.50                        vpcmov	%xmm0, %xmm1, %xmm2, %xmm3
237# CHECK-NEXT:  2      7     0.50    *                   vpcmov	(%rax), %xmm0, %xmm1, %xmm3
238# CHECK-NEXT:  2      7     0.50    *                   vpcmov	%xmm0, (%rax), %xmm1, %xmm3
239# CHECK-NEXT:  1      1     1.00                        vpcmov	%ymm0, %ymm1, %ymm2, %ymm3
240# CHECK-NEXT:  2      8     1.00    *                   vpcmov	(%rax), %ymm0, %ymm1, %ymm3
241# CHECK-NEXT:  2      8     1.00    *                   vpcmov	%ymm0, (%rax), %ymm1, %ymm3
242# CHECK-NEXT:  1      1     0.50                        vpcomltb	%xmm0, %xmm1, %xmm3
243# CHECK-NEXT:  2      7     0.50    *                   vpcomltb	(%rax), %xmm0, %xmm3
244# CHECK-NEXT:  1      1     0.50                        vpcomltd	%xmm0, %xmm1, %xmm3
245# CHECK-NEXT:  2      7     0.50    *                   vpcomltd	(%rax), %xmm0, %xmm3
246# CHECK-NEXT:  1      1     0.50                        vpcomltq	%xmm0, %xmm1, %xmm3
247# CHECK-NEXT:  2      7     0.50    *                   vpcomltq	(%rax), %xmm0, %xmm3
248# CHECK-NEXT:  1      1     0.50                        vpcomltub	%xmm0, %xmm1, %xmm3
249# CHECK-NEXT:  2      7     0.50    *                   vpcomltub	(%rax), %xmm0, %xmm3
250# CHECK-NEXT:  1      1     0.50                        vpcomltud	%xmm0, %xmm1, %xmm3
251# CHECK-NEXT:  2      7     0.50    *                   vpcomltud	(%rax), %xmm0, %xmm3
252# CHECK-NEXT:  1      1     0.50                        vpcomltuq	%xmm0, %xmm1, %xmm3
253# CHECK-NEXT:  2      7     0.50    *                   vpcomltuq	(%rax), %xmm0, %xmm3
254# CHECK-NEXT:  1      1     0.50                        vpcomltuw	%xmm0, %xmm1, %xmm3
255# CHECK-NEXT:  2      7     0.50    *                   vpcomltuw	(%rax), %xmm0, %xmm3
256# CHECK-NEXT:  1      1     0.50                        vpcomltw	%xmm0, %xmm1, %xmm3
257# CHECK-NEXT:  2      7     0.50    *                   vpcomltw	(%rax), %xmm0, %xmm3
258# CHECK-NEXT:  1      1     1.00                        vpermil2pd	$0, %xmm0, %xmm1, %xmm2, %xmm3
259# CHECK-NEXT:  2      7     1.00    *                   vpermil2pd	$0, (%rax), %xmm0, %xmm1, %xmm3
260# CHECK-NEXT:  2      7     1.00    *                   vpermil2pd	$0, %xmm0, (%rax), %xmm1, %xmm3
261# CHECK-NEXT:  1      1     1.00                        vpermil2pd	$0, %ymm0, %ymm1, %ymm2, %ymm3
262# CHECK-NEXT:  2      8     1.00    *                   vpermil2pd	$0, (%rax), %ymm0, %ymm1, %ymm3
263# CHECK-NEXT:  2      8     1.00    *                   vpermil2pd	$0, %ymm0, (%rax), %ymm1, %ymm3
264# CHECK-NEXT:  1      1     1.00                        vpermil2ps	$0, %xmm0, %xmm1, %xmm2, %xmm3
265# CHECK-NEXT:  2      7     1.00    *                   vpermil2ps	$0, (%rax), %xmm0, %xmm1, %xmm3
266# CHECK-NEXT:  2      7     1.00    *                   vpermil2ps	$0, %xmm0, (%rax), %xmm1, %xmm3
267# CHECK-NEXT:  1      1     1.00                        vpermil2ps	$0, %ymm0, %ymm1, %ymm2, %ymm3
268# CHECK-NEXT:  2      8     1.00    *                   vpermil2ps	$0, (%rax), %ymm0, %ymm1, %ymm3
269# CHECK-NEXT:  2      8     1.00    *                   vpermil2ps	$0, %ymm0, (%rax), %ymm1, %ymm3
270# CHECK-NEXT:  1      1     0.50                        vphaddbd	%xmm0, %xmm3
271# CHECK-NEXT:  2      7     0.50    *                   vphaddbd	(%rax), %xmm3
272# CHECK-NEXT:  1      1     0.50                        vphaddbq	%xmm0, %xmm3
273# CHECK-NEXT:  2      7     0.50    *                   vphaddbq	(%rax), %xmm3
274# CHECK-NEXT:  1      1     0.50                        vphaddbw	%xmm0, %xmm3
275# CHECK-NEXT:  2      7     0.50    *                   vphaddbw	(%rax), %xmm3
276# CHECK-NEXT:  1      1     0.50                        vphadddq	%xmm0, %xmm3
277# CHECK-NEXT:  2      7     0.50    *                   vphadddq	(%rax), %xmm3
278# CHECK-NEXT:  1      1     0.50                        vphaddubd	%xmm0, %xmm3
279# CHECK-NEXT:  2      7     0.50    *                   vphaddubd	(%rax), %xmm3
280# CHECK-NEXT:  1      1     0.50                        vphaddubq	%xmm0, %xmm3
281# CHECK-NEXT:  2      7     0.50    *                   vphaddubq	(%rax), %xmm3
282# CHECK-NEXT:  1      1     0.50                        vphaddubw	%xmm0, %xmm3
283# CHECK-NEXT:  2      7     0.50    *                   vphaddubw	(%rax), %xmm3
284# CHECK-NEXT:  1      1     0.50                        vphaddudq	%xmm0, %xmm3
285# CHECK-NEXT:  2      7     0.50    *                   vphaddudq	(%rax), %xmm3
286# CHECK-NEXT:  1      1     0.50                        vphadduwd	%xmm0, %xmm3
287# CHECK-NEXT:  2      7     0.50    *                   vphadduwd	(%rax), %xmm3
288# CHECK-NEXT:  1      1     0.50                        vphadduwq	%xmm0, %xmm3
289# CHECK-NEXT:  2      7     0.50    *                   vphadduwq	(%rax), %xmm3
290# CHECK-NEXT:  1      1     0.50                        vphaddwd	%xmm0, %xmm3
291# CHECK-NEXT:  2      7     0.50    *                   vphaddwd	(%rax), %xmm3
292# CHECK-NEXT:  1      1     0.50                        vphaddwq	%xmm0, %xmm3
293# CHECK-NEXT:  2      7     0.50    *                   vphaddwq	(%rax), %xmm3
294# CHECK-NEXT:  1      1     0.50                        vphsubbw	%xmm0, %xmm3
295# CHECK-NEXT:  2      7     0.50    *                   vphsubbw	(%rax), %xmm3
296# CHECK-NEXT:  1      1     0.50                        vphsubdq	%xmm0, %xmm3
297# CHECK-NEXT:  2      7     0.50    *                   vphsubdq	(%rax), %xmm3
298# CHECK-NEXT:  1      1     0.50                        vphsubwd	%xmm0, %xmm3
299# CHECK-NEXT:  2      7     0.50    *                   vphsubwd	(%rax), %xmm3
300# CHECK-NEXT:  1      5     1.00                        vpmacsdd	%xmm0, %xmm1, %xmm2, %xmm3
301# CHECK-NEXT:  2      11    1.00    *                   vpmacsdd	%xmm0, (%rax), %xmm1, %xmm3
302# CHECK-NEXT:  1      5     1.00                        vpmacsdqh	%xmm0, %xmm1, %xmm2, %xmm3
303# CHECK-NEXT:  2      11    1.00    *                   vpmacsdqh	%xmm0, (%rax), %xmm1, %xmm3
304# CHECK-NEXT:  1      5     1.00                        vpmacsdql	%xmm0, %xmm1, %xmm2, %xmm3
305# CHECK-NEXT:  2      11    1.00    *                   vpmacsdql	%xmm0, (%rax), %xmm1, %xmm3
306# CHECK-NEXT:  1      5     1.00                        vpmacssdd	%xmm0, %xmm1, %xmm2, %xmm3
307# CHECK-NEXT:  2      11    1.00    *                   vpmacssdd	%xmm0, (%rax), %xmm1, %xmm3
308# CHECK-NEXT:  1      5     1.00                        vpmacssdqh	%xmm0, %xmm1, %xmm2, %xmm3
309# CHECK-NEXT:  2      11    1.00    *                   vpmacssdqh	%xmm0, (%rax), %xmm1, %xmm3
310# CHECK-NEXT:  1      5     1.00                        vpmacssdql	%xmm0, %xmm1, %xmm2, %xmm3
311# CHECK-NEXT:  2      11    1.00    *                   vpmacssdql	%xmm0, (%rax), %xmm1, %xmm3
312# CHECK-NEXT:  1      5     1.00                        vpmacsswd	%xmm0, %xmm1, %xmm2, %xmm3
313# CHECK-NEXT:  2      11    1.00    *                   vpmacsswd	%xmm0, (%rax), %xmm1, %xmm3
314# CHECK-NEXT:  1      5     1.00                        vpmacssww	%xmm0, %xmm1, %xmm2, %xmm3
315# CHECK-NEXT:  2      11    1.00    *                   vpmacssww	%xmm0, (%rax), %xmm1, %xmm3
316# CHECK-NEXT:  1      5     1.00                        vpmacswd	%xmm0, %xmm1, %xmm2, %xmm3
317# CHECK-NEXT:  2      11    1.00    *                   vpmacswd	%xmm0, (%rax), %xmm1, %xmm3
318# CHECK-NEXT:  1      5     1.00                        vpmacsww	%xmm0, %xmm1, %xmm2, %xmm3
319# CHECK-NEXT:  2      11    1.00    *                   vpmacsww	%xmm0, (%rax), %xmm1, %xmm3
320# CHECK-NEXT:  1      5     1.00                        vpmadcsswd	%xmm0, %xmm1, %xmm2, %xmm3
321# CHECK-NEXT:  2      11    1.00    *                   vpmadcsswd	%xmm0, (%rax), %xmm1, %xmm3
322# CHECK-NEXT:  1      5     1.00                        vpmadcswd	%xmm0, %xmm1, %xmm2, %xmm3
323# CHECK-NEXT:  2      11    1.00    *                   vpmadcswd	%xmm0, (%rax), %xmm1, %xmm3
324# CHECK-NEXT:  1      1     0.50                        vpperm	%xmm0, %xmm1, %xmm2, %xmm3
325# CHECK-NEXT:  2      7     0.50    *                   vpperm	(%rax), %xmm0, %xmm1, %xmm3
326# CHECK-NEXT:  2      7     0.50    *                   vpperm	%xmm0, (%rax), %xmm1, %xmm3
327# CHECK-NEXT:  1      1     1.00                        vprotb	%xmm0, %xmm1, %xmm3
328# CHECK-NEXT:  2      7     1.00    *                   vprotb	(%rax), %xmm0, %xmm3
329# CHECK-NEXT:  2      7     1.00    *                   vprotb	%xmm0, (%rax), %xmm3
330# CHECK-NEXT:  1      1     1.00                        vprotb	$0, %xmm0, %xmm3
331# CHECK-NEXT:  2      7     1.00    *                   vprotb	$0, (%rax), %xmm3
332# CHECK-NEXT:  1      1     1.00                        vprotd	%xmm0, %xmm1, %xmm3
333# CHECK-NEXT:  2      7     1.00    *                   vprotd	(%rax), %xmm0, %xmm3
334# CHECK-NEXT:  2      7     1.00    *                   vprotd	%xmm0, (%rax), %xmm3
335# CHECK-NEXT:  1      1     1.00                        vprotd	$0, %xmm0, %xmm3
336# CHECK-NEXT:  2      7     1.00    *                   vprotd	$0, (%rax), %xmm3
337# CHECK-NEXT:  1      1     1.00                        vprotq	%xmm0, %xmm1, %xmm3
338# CHECK-NEXT:  2      7     1.00    *                   vprotq	(%rax), %xmm0, %xmm3
339# CHECK-NEXT:  2      7     1.00    *                   vprotq	%xmm0, (%rax), %xmm3
340# CHECK-NEXT:  1      1     1.00                        vprotq	$0, %xmm0, %xmm3
341# CHECK-NEXT:  2      7     1.00    *                   vprotq	$0, (%rax), %xmm3
342# CHECK-NEXT:  1      1     1.00                        vprotw	%xmm0, %xmm1, %xmm3
343# CHECK-NEXT:  2      7     1.00    *                   vprotw	(%rax), %xmm0, %xmm3
344# CHECK-NEXT:  2      7     1.00    *                   vprotw	%xmm0, (%rax), %xmm3
345# CHECK-NEXT:  1      1     1.00                        vprotw	$0, %xmm0, %xmm3
346# CHECK-NEXT:  2      7     1.00    *                   vprotw	$0, (%rax), %xmm3
347# CHECK-NEXT:  1      1     1.00                        vpshab	%xmm0, %xmm1, %xmm3
348# CHECK-NEXT:  2      7     1.00    *                   vpshab	(%rax), %xmm0, %xmm3
349# CHECK-NEXT:  2      7     1.00    *                   vpshab	%xmm0, (%rax), %xmm3
350# CHECK-NEXT:  1      1     1.00                        vpshad	%xmm0, %xmm1, %xmm3
351# CHECK-NEXT:  2      7     1.00    *                   vpshad	(%rax), %xmm0, %xmm3
352# CHECK-NEXT:  2      7     1.00    *                   vpshad	%xmm0, (%rax), %xmm3
353# CHECK-NEXT:  1      1     1.00                        vpshaq	%xmm0, %xmm1, %xmm3
354# CHECK-NEXT:  2      7     1.00    *                   vpshaq	(%rax), %xmm0, %xmm3
355# CHECK-NEXT:  2      7     1.00    *                   vpshaq	%xmm0, (%rax), %xmm3
356# CHECK-NEXT:  1      1     1.00                        vpshaw	%xmm0, %xmm1, %xmm3
357# CHECK-NEXT:  2      7     1.00    *                   vpshaw	(%rax), %xmm0, %xmm3
358# CHECK-NEXT:  2      7     1.00    *                   vpshaw	%xmm0, (%rax), %xmm3
359# CHECK-NEXT:  1      1     1.00                        vpshlb	%xmm0, %xmm1, %xmm3
360# CHECK-NEXT:  2      7     1.00    *                   vpshlb	(%rax), %xmm0, %xmm3
361# CHECK-NEXT:  2      7     1.00    *                   vpshlb	%xmm0, (%rax), %xmm3
362# CHECK-NEXT:  1      1     1.00                        vpshld	%xmm0, %xmm1, %xmm3
363# CHECK-NEXT:  2      7     1.00    *                   vpshld	(%rax), %xmm0, %xmm3
364# CHECK-NEXT:  2      7     1.00    *                   vpshld	%xmm0, (%rax), %xmm3
365# CHECK-NEXT:  1      1     1.00                        vpshlq	%xmm0, %xmm1, %xmm3
366# CHECK-NEXT:  2      7     1.00    *                   vpshlq	(%rax), %xmm0, %xmm3
367# CHECK-NEXT:  2      7     1.00    *                   vpshlq	%xmm0, (%rax), %xmm3
368# CHECK-NEXT:  1      1     1.00                        vpshlw	%xmm0, %xmm1, %xmm3
369# CHECK-NEXT:  2      7     1.00    *                   vpshlw	(%rax), %xmm0, %xmm3
370# CHECK-NEXT:  2      7     1.00    *                   vpshlw	%xmm0, (%rax), %xmm3
371
372# CHECK:      Resources:
373# CHECK-NEXT: [0]   - SBDivider
374# CHECK-NEXT: [1]   - SBFPDivider
375# CHECK-NEXT: [2]   - SBPort0
376# CHECK-NEXT: [3]   - SBPort1
377# CHECK-NEXT: [4]   - SBPort4
378# CHECK-NEXT: [5]   - SBPort5
379# CHECK-NEXT: [6.0] - SBPort23
380# CHECK-NEXT: [6.1] - SBPort23
381
382# CHECK:      Resource pressure per iteration:
383# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
384# CHECK-NEXT:  -      -     68.00  38.00   -     41.00  41.50  41.50
385
386# CHECK:      Resource pressure by instruction:
387# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
388# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczpd	%xmm0, %xmm3
389# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczpd	(%rax), %xmm3
390# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczpd	%ymm0, %ymm3
391# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczpd	(%rax), %ymm3
392# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczps	%xmm0, %xmm3
393# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczps	(%rax), %xmm3
394# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczps	%ymm0, %ymm3
395# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczps	(%rax), %ymm3
396# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczsd	%xmm0, %xmm3
397# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczsd	(%rax), %xmm3
398# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfrczss	%xmm0, %xmm3
399# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfrczss	(%rax), %xmm3
400# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmov	%xmm0, %xmm1, %xmm2, %xmm3
401# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmov	(%rax), %xmm0, %xmm1, %xmm3
402# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmov	%xmm0, (%rax), %xmm1, %xmm3
403# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpcmov	%ymm0, %ymm1, %ymm2, %ymm3
404# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpcmov	(%rax), %ymm0, %ymm1, %ymm3
405# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpcmov	%ymm0, (%rax), %ymm1, %ymm3
406# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltb	%xmm0, %xmm1, %xmm3
407# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltb	(%rax), %xmm0, %xmm3
408# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltd	%xmm0, %xmm1, %xmm3
409# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltd	(%rax), %xmm0, %xmm3
410# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltq	%xmm0, %xmm1, %xmm3
411# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltq	(%rax), %xmm0, %xmm3
412# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltub	%xmm0, %xmm1, %xmm3
413# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltub	(%rax), %xmm0, %xmm3
414# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltud	%xmm0, %xmm1, %xmm3
415# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltud	(%rax), %xmm0, %xmm3
416# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltuq	%xmm0, %xmm1, %xmm3
417# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltuq	(%rax), %xmm0, %xmm3
418# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltuw	%xmm0, %xmm1, %xmm3
419# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltuw	(%rax), %xmm0, %xmm3
420# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcomltw	%xmm0, %xmm1, %xmm3
421# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcomltw	(%rax), %xmm0, %xmm3
422# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermil2pd	$0, %xmm0, %xmm1, %xmm2, %xmm3
423# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2pd	$0, (%rax), %xmm0, %xmm1, %xmm3
424# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2pd	$0, %xmm0, (%rax), %xmm1, %xmm3
425# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermil2pd	$0, %ymm0, %ymm1, %ymm2, %ymm3
426# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2pd	$0, (%rax), %ymm0, %ymm1, %ymm3
427# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2pd	$0, %ymm0, (%rax), %ymm1, %ymm3
428# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermil2ps	$0, %xmm0, %xmm1, %xmm2, %xmm3
429# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2ps	$0, (%rax), %xmm0, %xmm1, %xmm3
430# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2ps	$0, %xmm0, (%rax), %xmm1, %xmm3
431# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermil2ps	$0, %ymm0, %ymm1, %ymm2, %ymm3
432# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2ps	$0, (%rax), %ymm0, %ymm1, %ymm3
433# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermil2ps	$0, %ymm0, (%rax), %ymm1, %ymm3
434# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddbd	%xmm0, %xmm3
435# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddbd	(%rax), %xmm3
436# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddbq	%xmm0, %xmm3
437# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddbq	(%rax), %xmm3
438# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddbw	%xmm0, %xmm3
439# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddbw	(%rax), %xmm3
440# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphadddq	%xmm0, %xmm3
441# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphadddq	(%rax), %xmm3
442# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddubd	%xmm0, %xmm3
443# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddubd	(%rax), %xmm3
444# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddubq	%xmm0, %xmm3
445# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddubq	(%rax), %xmm3
446# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddubw	%xmm0, %xmm3
447# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddubw	(%rax), %xmm3
448# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddudq	%xmm0, %xmm3
449# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddudq	(%rax), %xmm3
450# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphadduwd	%xmm0, %xmm3
451# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphadduwd	(%rax), %xmm3
452# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphadduwq	%xmm0, %xmm3
453# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphadduwq	(%rax), %xmm3
454# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddwd	%xmm0, %xmm3
455# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddwd	(%rax), %xmm3
456# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphaddwq	%xmm0, %xmm3
457# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphaddwq	(%rax), %xmm3
458# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphsubbw	%xmm0, %xmm3
459# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphsubbw	(%rax), %xmm3
460# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphsubdq	%xmm0, %xmm3
461# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphsubdq	(%rax), %xmm3
462# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vphsubwd	%xmm0, %xmm3
463# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vphsubwd	(%rax), %xmm3
464# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacsdd	%xmm0, %xmm1, %xmm2, %xmm3
465# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacsdd	%xmm0, (%rax), %xmm1, %xmm3
466# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacsdqh	%xmm0, %xmm1, %xmm2, %xmm3
467# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacsdqh	%xmm0, (%rax), %xmm1, %xmm3
468# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacsdql	%xmm0, %xmm1, %xmm2, %xmm3
469# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacsdql	%xmm0, (%rax), %xmm1, %xmm3
470# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacssdd	%xmm0, %xmm1, %xmm2, %xmm3
471# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacssdd	%xmm0, (%rax), %xmm1, %xmm3
472# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacssdqh	%xmm0, %xmm1, %xmm2, %xmm3
473# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacssdqh	%xmm0, (%rax), %xmm1, %xmm3
474# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacssdql	%xmm0, %xmm1, %xmm2, %xmm3
475# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacssdql	%xmm0, (%rax), %xmm1, %xmm3
476# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacsswd	%xmm0, %xmm1, %xmm2, %xmm3
477# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacsswd	%xmm0, (%rax), %xmm1, %xmm3
478# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacssww	%xmm0, %xmm1, %xmm2, %xmm3
479# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacssww	%xmm0, (%rax), %xmm1, %xmm3
480# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacswd	%xmm0, %xmm1, %xmm2, %xmm3
481# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacswd	%xmm0, (%rax), %xmm1, %xmm3
482# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmacsww	%xmm0, %xmm1, %xmm2, %xmm3
483# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmacsww	%xmm0, (%rax), %xmm1, %xmm3
484# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadcsswd	%xmm0, %xmm1, %xmm2, %xmm3
485# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadcsswd	%xmm0, (%rax), %xmm1, %xmm3
486# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadcswd	%xmm0, %xmm1, %xmm2, %xmm3
487# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadcswd	%xmm0, (%rax), %xmm1, %xmm3
488# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpperm	%xmm0, %xmm1, %xmm2, %xmm3
489# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpperm	(%rax), %xmm0, %xmm1, %xmm3
490# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpperm	%xmm0, (%rax), %xmm1, %xmm3
491# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotb	%xmm0, %xmm1, %xmm3
492# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotb	(%rax), %xmm0, %xmm3
493# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotb	%xmm0, (%rax), %xmm3
494# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotb	$0, %xmm0, %xmm3
495# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotb	$0, (%rax), %xmm3
496# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotd	%xmm0, %xmm1, %xmm3
497# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotd	(%rax), %xmm0, %xmm3
498# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotd	%xmm0, (%rax), %xmm3
499# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotd	$0, %xmm0, %xmm3
500# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotd	$0, (%rax), %xmm3
501# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotq	%xmm0, %xmm1, %xmm3
502# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotq	(%rax), %xmm0, %xmm3
503# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotq	%xmm0, (%rax), %xmm3
504# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotq	$0, %xmm0, %xmm3
505# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotq	$0, (%rax), %xmm3
506# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotw	%xmm0, %xmm1, %xmm3
507# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotw	(%rax), %xmm0, %xmm3
508# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotw	%xmm0, (%rax), %xmm3
509# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vprotw	$0, %xmm0, %xmm3
510# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vprotw	$0, (%rax), %xmm3
511# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshab	%xmm0, %xmm1, %xmm3
512# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshab	(%rax), %xmm0, %xmm3
513# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshab	%xmm0, (%rax), %xmm3
514# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshad	%xmm0, %xmm1, %xmm3
515# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshad	(%rax), %xmm0, %xmm3
516# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshad	%xmm0, (%rax), %xmm3
517# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshaq	%xmm0, %xmm1, %xmm3
518# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshaq	(%rax), %xmm0, %xmm3
519# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshaq	%xmm0, (%rax), %xmm3
520# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshaw	%xmm0, %xmm1, %xmm3
521# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshaw	(%rax), %xmm0, %xmm3
522# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshaw	%xmm0, (%rax), %xmm3
523# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshlb	%xmm0, %xmm1, %xmm3
524# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlb	(%rax), %xmm0, %xmm3
525# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlb	%xmm0, (%rax), %xmm3
526# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshld	%xmm0, %xmm1, %xmm3
527# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshld	(%rax), %xmm0, %xmm3
528# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshld	%xmm0, (%rax), %xmm3
529# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshlq	%xmm0, %xmm1, %xmm3
530# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlq	(%rax), %xmm0, %xmm3
531# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlq	%xmm0, (%rax), %xmm3
532# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpshlw	%xmm0, %xmm1, %xmm3
533# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlw	(%rax), %xmm0, %xmm3
534# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpshlw	%xmm0, (%rax), %xmm3
535