1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
3
4kaddb             %k0, %k1, %k2
5kaddw             %k0, %k1, %k2
6kandb             %k0, %k1, %k2
7kandnb            %k0, %k1, %k2
8korb              %k0, %k1, %k2
9kxnorb            %k0, %k1, %k2
10kxorb             %k0, %k1, %k2
11kshiftlb          $2, %k1, %k2
12kshiftrb          $2, %k1, %k2
13
14vandnpd           %zmm16, %zmm17, %zmm19
15vandnpd           (%rax), %zmm17, %zmm19
16vandnpd           (%rax){1to8}, %zmm17, %zmm19
17vandnpd           %zmm16, %zmm17, %zmm19 {k1}
18vandnpd           (%rax), %zmm17, %zmm19 {k1}
19vandnpd           (%rax){1to8}, %zmm17, %zmm19 {k1}
20vandnpd           %zmm16, %zmm17, %zmm19 {z}{k1}
21vandnpd           (%rax), %zmm17, %zmm19 {z}{k1}
22vandnpd           (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
23
24vandnps           %zmm16, %zmm17, %zmm19
25vandnps           (%rax), %zmm17, %zmm19
26vandnps           (%rax){1to16}, %zmm17, %zmm19
27vandnps           %zmm16, %zmm17, %zmm19 {k1}
28vandnps           (%rax), %zmm17, %zmm19 {k1}
29vandnps           (%rax){1to16}, %zmm17, %zmm19 {k1}
30vandnps           %zmm16, %zmm17, %zmm19 {z}{k1}
31vandnps           (%rax), %zmm17, %zmm19 {z}{k1}
32vandnps           (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
33
34vandpd            %zmm16, %zmm17, %zmm19
35vandpd            (%rax), %zmm17, %zmm19
36vandpd            (%rax){1to8}, %zmm17, %zmm19
37vandpd            %zmm16, %zmm17, %zmm19 {k1}
38vandpd            (%rax), %zmm17, %zmm19 {k1}
39vandpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
40vandpd            %zmm16, %zmm17, %zmm19 {z}{k1}
41vandpd            (%rax), %zmm17, %zmm19 {z}{k1}
42vandpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
43
44vandps            %zmm16, %zmm17, %zmm19
45vandps            (%rax), %zmm17, %zmm19
46vandps            (%rax){1to16}, %zmm17, %zmm19
47vandps            %zmm16, %zmm17, %zmm19 {k1}
48vandps            (%rax), %zmm17, %zmm19 {k1}
49vandps            (%rax){1to16}, %zmm17, %zmm19 {k1}
50vandps            %zmm16, %zmm17, %zmm19 {z}{k1}
51vandps            (%rax), %zmm17, %zmm19 {z}{k1}
52vandps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
53
54vcvtqq2pd         %zmm16, %zmm19
55vcvtqq2pd         (%rax), %zmm19
56vcvtqq2pd         (%rax){1to8}, %zmm19
57vcvtqq2pd         %zmm16, %zmm19 {k1}
58vcvtqq2pd         (%rax), %zmm19 {k1}
59vcvtqq2pd         (%rax){1to8}, %zmm19 {k1}
60vcvtqq2pd         %zmm16, %zmm19 {z}{k1}
61vcvtqq2pd         (%rax), %zmm19 {z}{k1}
62vcvtqq2pd         (%rax){1to8}, %zmm19 {z}{k1}
63
64vcvtqq2ps         %zmm16, %ymm19
65vcvtqq2ps         (%rax), %ymm19
66vcvtqq2ps         (%rax){1to8}, %ymm19
67vcvtqq2ps         %zmm16, %ymm19 {k1}
68vcvtqq2ps         (%rax), %ymm19 {k1}
69vcvtqq2ps         (%rax){1to8}, %ymm19 {k1}
70vcvtqq2ps         %zmm16, %ymm19 {z}{k1}
71vcvtqq2ps         (%rax), %ymm19 {z}{k1}
72vcvtqq2ps         (%rax){1to8}, %ymm19 {z}{k1}
73
74vorpd             %zmm16, %zmm17, %zmm19
75vorpd             (%rax), %zmm17, %zmm19
76vorpd             (%rax){1to8}, %zmm17, %zmm19
77vorpd             %zmm16, %zmm17, %zmm19 {k1}
78vorpd             (%rax), %zmm17, %zmm19 {k1}
79vorpd             (%rax){1to8}, %zmm17, %zmm19 {k1}
80vorpd             %zmm16, %zmm17, %zmm19 {z}{k1}
81vorpd             (%rax), %zmm17, %zmm19 {z}{k1}
82vorpd             (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
83
84vorps             %zmm16, %zmm17, %zmm19
85vorps             (%rax), %zmm17, %zmm19
86vorps             (%rax){1to16}, %zmm17, %zmm19
87vorps             %zmm16, %zmm17, %zmm19 {k1}
88vorps             (%rax), %zmm17, %zmm19 {k1}
89vorps             (%rax){1to16}, %zmm17, %zmm19 {k1}
90vorps             %zmm16, %zmm17, %zmm19 {z}{k1}
91vorps             (%rax), %zmm17, %zmm19 {z}{k1}
92vorps             (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
93
94vfpclasspd        $0xab, %zmm16, %k1
95vfpclasspdz       $0xab, (%rax), %k1
96vfpclasspdz       $0xab, (%rax){1to8}, %k1
97vfpclasspd        $0xab, %zmm16, %k1 {k2}
98vfpclasspdz       $0xab, (%rax), %k1 {k2}
99vfpclasspdz       $0xab, (%rax){1to8}, %k1 {k2}
100
101vfpclassps        $0xab, %zmm16, %k1
102vfpclasspsz       $0xab, (%rax), %k1
103vfpclasspsz       $0xab, (%rax){1to16}, %k1
104vfpclassps        $0xab, %zmm16, %k1 {k2}
105vfpclasspsz       $0xab, (%rax), %k1 {k2}
106vfpclasspsz       $0xab, (%rax){1to16}, %k1 {k2}
107
108vfpclasssd        $0xab, %xmm16, %k1
109vfpclasssd        $0xab, (%rax), %k1
110vfpclasssd        $0xab, %xmm16, %k1 {k2}
111vfpclasssd        $0xab, (%rax), %k1 {k2}
112
113vfpclassss        $0xab, %xmm16, %k1
114vfpclassss        $0xab, (%rax), %k1
115vfpclassss        $0xab, %xmm16, %k1 {k2}
116vfpclassss        $0xab, (%rax), %k1 {k2}
117
118vpmullq           %zmm16, %zmm17, %zmm19
119vpmullq           (%rax), %zmm17, %zmm19
120vpmullq           %zmm16, %zmm17, %zmm19 {k1}
121vpmullq           (%rax), %zmm17, %zmm19 {k1}
122vpmullq           %zmm16, %zmm17, %zmm19 {z}{k1}
123vpmullq           (%rax), %zmm17, %zmm19 {z}{k1}
124
125vxorpd            %zmm16, %zmm17, %zmm19
126vxorpd            (%rax), %zmm17, %zmm19
127vxorpd            (%rax){1to8}, %zmm17, %zmm19
128vxorpd            %zmm16, %zmm17, %zmm19 {k1}
129vxorpd            (%rax), %zmm17, %zmm19 {k1}
130vxorpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
131vxorpd            %zmm16, %zmm17, %zmm19 {z}{k1}
132vxorpd            (%rax), %zmm17, %zmm19 {z}{k1}
133vxorpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
134
135vxorps            %zmm16, %zmm17, %zmm19
136vxorps            (%rax), %zmm17, %zmm19
137vxorps            (%rax){1to16}, %zmm17, %zmm19
138vxorps            %zmm16, %zmm17, %zmm19 {k1}
139vxorps            (%rax), %zmm17, %zmm19 {k1}
140vxorps            (%rax){1to16}, %zmm17, %zmm19 {k1}
141vxorps            %zmm16, %zmm17, %zmm19 {z}{k1}
142vxorps            (%rax), %zmm17, %zmm19 {z}{k1}
143vxorps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
144
145# CHECK:      Instruction Info:
146# CHECK-NEXT: [1]: #uOps
147# CHECK-NEXT: [2]: Latency
148# CHECK-NEXT: [3]: RThroughput
149# CHECK-NEXT: [4]: MayLoad
150# CHECK-NEXT: [5]: MayStore
151# CHECK-NEXT: [6]: HasSideEffects (U)
152
153# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
154# CHECK-NEXT:  1      4     1.00                        kaddb	%k0, %k1, %k2
155# CHECK-NEXT:  1      4     1.00                        kaddw	%k0, %k1, %k2
156# CHECK-NEXT:  1      1     1.00                        kandb	%k0, %k1, %k2
157# CHECK-NEXT:  1      1     1.00                        kandnb	%k0, %k1, %k2
158# CHECK-NEXT:  1      1     1.00                        korb	%k0, %k1, %k2
159# CHECK-NEXT:  1      1     1.00                        kxnorb	%k0, %k1, %k2
160# CHECK-NEXT:  1      1     1.00                        kxorb	%k0, %k1, %k2
161# CHECK-NEXT:  1      4     1.00                        kshiftlb	$2, %k1, %k2
162# CHECK-NEXT:  1      4     1.00                        kshiftrb	$2, %k1, %k2
163# CHECK-NEXT:  1      1     0.50                        vandnpd	%zmm16, %zmm17, %zmm19
164# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax), %zmm17, %zmm19
165# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19
166# CHECK-NEXT:  1      1     0.50                        vandnpd	%zmm16, %zmm17, %zmm19 {%k1}
167# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax), %zmm17, %zmm19 {%k1}
168# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
169# CHECK-NEXT:  1      1     0.50                        vandnpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
170# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax), %zmm17, %zmm19 {%k1} {z}
171# CHECK-NEXT:  2      8     0.50    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
172# CHECK-NEXT:  1      1     0.50                        vandnps	%zmm16, %zmm17, %zmm19
173# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax), %zmm17, %zmm19
174# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19
175# CHECK-NEXT:  1      1     0.50                        vandnps	%zmm16, %zmm17, %zmm19 {%k1}
176# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax), %zmm17, %zmm19 {%k1}
177# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
178# CHECK-NEXT:  1      1     0.50                        vandnps	%zmm16, %zmm17, %zmm19 {%k1} {z}
179# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax), %zmm17, %zmm19 {%k1} {z}
180# CHECK-NEXT:  2      8     0.50    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
181# CHECK-NEXT:  1      1     0.50                        vandpd	%zmm16, %zmm17, %zmm19
182# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax), %zmm17, %zmm19
183# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19
184# CHECK-NEXT:  1      1     0.50                        vandpd	%zmm16, %zmm17, %zmm19 {%k1}
185# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax), %zmm17, %zmm19 {%k1}
186# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
187# CHECK-NEXT:  1      1     0.50                        vandpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
188# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax), %zmm17, %zmm19 {%k1} {z}
189# CHECK-NEXT:  2      8     0.50    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
190# CHECK-NEXT:  1      1     0.50                        vandps	%zmm16, %zmm17, %zmm19
191# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax), %zmm17, %zmm19
192# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax){1to16}, %zmm17, %zmm19
193# CHECK-NEXT:  1      1     0.50                        vandps	%zmm16, %zmm17, %zmm19 {%k1}
194# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax), %zmm17, %zmm19 {%k1}
195# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
196# CHECK-NEXT:  1      1     0.50                        vandps	%zmm16, %zmm17, %zmm19 {%k1} {z}
197# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax), %zmm17, %zmm19 {%k1} {z}
198# CHECK-NEXT:  2      8     0.50    *                   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
199# CHECK-NEXT:  1      4     0.50                        vcvtqq2pd	%zmm16, %zmm19
200# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax), %zmm19
201# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax){1to8}, %zmm19
202# CHECK-NEXT:  1      4     0.50                        vcvtqq2pd	%zmm16, %zmm19 {%k1}
203# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax), %zmm19 {%k1}
204# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1}
205# CHECK-NEXT:  1      4     0.50                        vcvtqq2pd	%zmm16, %zmm19 {%k1} {z}
206# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax), %zmm19 {%k1} {z}
207# CHECK-NEXT:  2      11    0.50    *                   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1} {z}
208# CHECK-NEXT:  2      7     1.00                        vcvtqq2ps	%zmm16, %ymm19
209# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax), %ymm19
210# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19
211# CHECK-NEXT:  1      4     0.50                        vcvtqq2ps	%zmm16, %ymm19 {%k1}
212# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax), %ymm19 {%k1}
213# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1}
214# CHECK-NEXT:  1      4     0.50                        vcvtqq2ps	%zmm16, %ymm19 {%k1} {z}
215# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax), %ymm19 {%k1} {z}
216# CHECK-NEXT:  3      14    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1} {z}
217# CHECK-NEXT:  1      1     0.50                        vorpd	%zmm16, %zmm17, %zmm19
218# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax), %zmm17, %zmm19
219# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19
220# CHECK-NEXT:  1      1     0.50                        vorpd	%zmm16, %zmm17, %zmm19 {%k1}
221# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax), %zmm17, %zmm19 {%k1}
222# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
223# CHECK-NEXT:  1      1     0.50                        vorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
224# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
225# CHECK-NEXT:  2      8     0.50    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
226# CHECK-NEXT:  1      1     0.50                        vorps	%zmm16, %zmm17, %zmm19
227# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax), %zmm17, %zmm19
228# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax){1to16}, %zmm17, %zmm19
229# CHECK-NEXT:  1      1     0.50                        vorps	%zmm16, %zmm17, %zmm19 {%k1}
230# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax), %zmm17, %zmm19 {%k1}
231# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
232# CHECK-NEXT:  1      1     0.50                        vorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
233# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax), %zmm17, %zmm19 {%k1} {z}
234# CHECK-NEXT:  2      8     0.50    *                   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
235# CHECK-NEXT:  1      4     1.00                        vfpclasspd	$171, %zmm16, %k1
236# CHECK-NEXT:  2      11    1.00    *                   vfpclasspdz	$171, (%rax), %k1
237# CHECK-NEXT:  2      11    1.00    *                   vfpclasspd	$171, (%rax){1to8}, %k1
238# CHECK-NEXT:  1      4     1.00                        vfpclasspd	$171, %zmm16, %k1 {%k2}
239# CHECK-NEXT:  2      11    1.00    *                   vfpclasspdz	$171, (%rax), %k1 {%k2}
240# CHECK-NEXT:  2      11    1.00    *                   vfpclasspd	$171, (%rax){1to8}, %k1 {%k2}
241# CHECK-NEXT:  1      4     1.00                        vfpclassps	$171, %zmm16, %k1
242# CHECK-NEXT:  2      11    1.00    *                   vfpclasspsz	$171, (%rax), %k1
243# CHECK-NEXT:  2      11    1.00    *                   vfpclassps	$171, (%rax){1to16}, %k1
244# CHECK-NEXT:  1      4     1.00                        vfpclassps	$171, %zmm16, %k1 {%k2}
245# CHECK-NEXT:  2      11    1.00    *                   vfpclasspsz	$171, (%rax), %k1 {%k2}
246# CHECK-NEXT:  2      11    1.00    *                   vfpclassps	$171, (%rax){1to16}, %k1 {%k2}
247# CHECK-NEXT:  1      4     1.00                        vfpclasssd	$171, %xmm16, %k1
248# CHECK-NEXT:  2      9     1.00    *                   vfpclasssd	$171, (%rax), %k1
249# CHECK-NEXT:  1      4     1.00                        vfpclasssd	$171, %xmm16, %k1 {%k2}
250# CHECK-NEXT:  2      9     1.00    *                   vfpclasssd	$171, (%rax), %k1 {%k2}
251# CHECK-NEXT:  1      4     1.00                        vfpclassss	$171, %xmm16, %k1
252# CHECK-NEXT:  2      9     1.00    *                   vfpclassss	$171, (%rax), %k1
253# CHECK-NEXT:  1      4     1.00                        vfpclassss	$171, %xmm16, %k1 {%k2}
254# CHECK-NEXT:  2      9     1.00    *                   vfpclassss	$171, (%rax), %k1 {%k2}
255# CHECK-NEXT:  3      15    1.50                        vpmullq	%zmm16, %zmm17, %zmm19
256# CHECK-NEXT:  4      22    1.50    *                   vpmullq	(%rax), %zmm17, %zmm19
257# CHECK-NEXT:  3      15    1.50                        vpmullq	%zmm16, %zmm17, %zmm19 {%k1}
258# CHECK-NEXT:  4      22    1.50    *                   vpmullq	(%rax), %zmm17, %zmm19 {%k1}
259# CHECK-NEXT:  3      15    1.50                        vpmullq	%zmm16, %zmm17, %zmm19 {%k1} {z}
260# CHECK-NEXT:  4      22    1.50    *                   vpmullq	(%rax), %zmm17, %zmm19 {%k1} {z}
261# CHECK-NEXT:  1      1     0.50                        vxorpd	%zmm16, %zmm17, %zmm19
262# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax), %zmm17, %zmm19
263# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19
264# CHECK-NEXT:  1      1     0.50                        vxorpd	%zmm16, %zmm17, %zmm19 {%k1}
265# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax), %zmm17, %zmm19 {%k1}
266# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
267# CHECK-NEXT:  1      1     0.50                        vxorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
268# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
269# CHECK-NEXT:  2      8     0.50    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
270# CHECK-NEXT:  1      1     0.50                        vxorps	%zmm16, %zmm17, %zmm19
271# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax), %zmm17, %zmm19
272# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19
273# CHECK-NEXT:  1      1     0.50                        vxorps	%zmm16, %zmm17, %zmm19 {%k1}
274# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax), %zmm17, %zmm19 {%k1}
275# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
276# CHECK-NEXT:  1      1     0.50                        vxorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
277# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax), %zmm17, %zmm19 {%k1} {z}
278# CHECK-NEXT:  2      8     0.50    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
279
280# CHECK:      Resources:
281# CHECK-NEXT: [0]   - SKXDivider
282# CHECK-NEXT: [1]   - SKXFPDivider
283# CHECK-NEXT: [2]   - SKXPort0
284# CHECK-NEXT: [3]   - SKXPort1
285# CHECK-NEXT: [4]   - SKXPort2
286# CHECK-NEXT: [5]   - SKXPort3
287# CHECK-NEXT: [6]   - SKXPort4
288# CHECK-NEXT: [7]   - SKXPort5
289# CHECK-NEXT: [8]   - SKXPort6
290# CHECK-NEXT: [9]   - SKXPort7
291
292# CHECK:      Resource pressure per iteration:
293# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
294# CHECK-NEXT:  -      -     57.00  4.00   37.50  37.50   -     83.00   -      -
295
296# CHECK:      Resource pressure by instruction:
297# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
298# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     kaddb	%k0, %k1, %k2
299# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     kaddw	%k0, %k1, %k2
300# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     kandb	%k0, %k1, %k2
301# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     kandnb	%k0, %k1, %k2
302# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     korb	%k0, %k1, %k2
303# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     kxnorb	%k0, %k1, %k2
304# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     kxorb	%k0, %k1, %k2
305# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     kshiftlb	$2, %k1, %k2
306# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     kshiftrb	$2, %k1, %k2
307# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnpd	%zmm16, %zmm17, %zmm19
308# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax), %zmm17, %zmm19
309# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax){1to8}, %zmm17, %zmm19
310# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnpd	%zmm16, %zmm17, %zmm19 {%k1}
311# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax), %zmm17, %zmm19 {%k1}
312# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
313# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
314# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax), %zmm17, %zmm19 {%k1} {z}
315# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
316# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnps	%zmm16, %zmm17, %zmm19
317# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax), %zmm17, %zmm19
318# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax){1to16}, %zmm17, %zmm19
319# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnps	%zmm16, %zmm17, %zmm19 {%k1}
320# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax), %zmm17, %zmm19 {%k1}
321# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
322# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandnps	%zmm16, %zmm17, %zmm19 {%k1} {z}
323# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax), %zmm17, %zmm19 {%k1} {z}
324# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
325# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandpd	%zmm16, %zmm17, %zmm19
326# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax), %zmm17, %zmm19
327# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax){1to8}, %zmm17, %zmm19
328# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandpd	%zmm16, %zmm17, %zmm19 {%k1}
329# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax), %zmm17, %zmm19 {%k1}
330# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
331# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
332# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax), %zmm17, %zmm19 {%k1} {z}
333# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
334# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandps	%zmm16, %zmm17, %zmm19
335# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax), %zmm17, %zmm19
336# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax){1to16}, %zmm17, %zmm19
337# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandps	%zmm16, %zmm17, %zmm19 {%k1}
338# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax), %zmm17, %zmm19 {%k1}
339# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
340# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vandps	%zmm16, %zmm17, %zmm19 {%k1} {z}
341# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax), %zmm17, %zmm19 {%k1} {z}
342# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
343# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtqq2pd	%zmm16, %zmm19
344# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax), %zmm19
345# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax){1to8}, %zmm19
346# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtqq2pd	%zmm16, %zmm19 {%k1}
347# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax), %zmm19 {%k1}
348# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1}
349# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtqq2pd	%zmm16, %zmm19 {%k1} {z}
350# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax), %zmm19 {%k1} {z}
351# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1} {z}
352# CHECK-NEXT:  -      -     0.50    -      -      -      -     1.50    -      -     vcvtqq2ps	%zmm16, %ymm19
353# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax), %ymm19
354# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax){1to8}, %ymm19
355# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtqq2ps	%zmm16, %ymm19 {%k1}
356# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax), %ymm19 {%k1}
357# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1}
358# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtqq2ps	%zmm16, %ymm19 {%k1} {z}
359# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax), %ymm19 {%k1} {z}
360# CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     1.33    -      -     vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1} {z}
361# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorpd	%zmm16, %zmm17, %zmm19
362# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax), %zmm17, %zmm19
363# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax){1to8}, %zmm17, %zmm19
364# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorpd	%zmm16, %zmm17, %zmm19 {%k1}
365# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax), %zmm17, %zmm19 {%k1}
366# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
367# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
368# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
369# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
370# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorps	%zmm16, %zmm17, %zmm19
371# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax), %zmm17, %zmm19
372# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax){1to16}, %zmm17, %zmm19
373# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorps	%zmm16, %zmm17, %zmm19 {%k1}
374# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax), %zmm17, %zmm19 {%k1}
375# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
376# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
377# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax), %zmm17, %zmm19 {%k1} {z}
378# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
379# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclasspd	$171, %zmm16, %k1
380# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspdz	$171, (%rax), %k1
381# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspd	$171, (%rax){1to8}, %k1
382# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclasspd	$171, %zmm16, %k1 {%k2}
383# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspdz	$171, (%rax), %k1 {%k2}
384# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspd	$171, (%rax){1to8}, %k1 {%k2}
385# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclassps	$171, %zmm16, %k1
386# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspsz	$171, (%rax), %k1
387# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclassps	$171, (%rax){1to16}, %k1
388# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclassps	$171, %zmm16, %k1 {%k2}
389# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasspsz	$171, (%rax), %k1 {%k2}
390# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclassps	$171, (%rax){1to16}, %k1 {%k2}
391# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclasssd	$171, %xmm16, %k1
392# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasssd	$171, (%rax), %k1
393# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclasssd	$171, %xmm16, %k1 {%k2}
394# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclasssd	$171, (%rax), %k1 {%k2}
395# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclassss	$171, %xmm16, %k1
396# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclassss	$171, (%rax), %k1
397# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vfpclassss	$171, %xmm16, %k1 {%k2}
398# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vfpclassss	$171, (%rax), %k1 {%k2}
399# CHECK-NEXT:  -      -     1.50    -      -      -      -     1.50    -      -     vpmullq	%zmm16, %zmm17, %zmm19
400# CHECK-NEXT:  -      -     1.50    -     0.50   0.50    -     1.50    -      -     vpmullq	(%rax), %zmm17, %zmm19
401# CHECK-NEXT:  -      -     1.50    -      -      -      -     1.50    -      -     vpmullq	%zmm16, %zmm17, %zmm19 {%k1}
402# CHECK-NEXT:  -      -     1.50    -     0.50   0.50    -     1.50    -      -     vpmullq	(%rax), %zmm17, %zmm19 {%k1}
403# CHECK-NEXT:  -      -     1.50    -      -      -      -     1.50    -      -     vpmullq	%zmm16, %zmm17, %zmm19 {%k1} {z}
404# CHECK-NEXT:  -      -     1.50    -     0.50   0.50    -     1.50    -      -     vpmullq	(%rax), %zmm17, %zmm19 {%k1} {z}
405# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorpd	%zmm16, %zmm17, %zmm19
406# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax), %zmm17, %zmm19
407# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax){1to8}, %zmm17, %zmm19
408# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorpd	%zmm16, %zmm17, %zmm19 {%k1}
409# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax), %zmm17, %zmm19 {%k1}
410# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
411# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
412# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
413# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
414# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorps	%zmm16, %zmm17, %zmm19
415# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax), %zmm17, %zmm19
416# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax){1to16}, %zmm17, %zmm19
417# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorps	%zmm16, %zmm17, %zmm19 {%k1}
418# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax), %zmm17, %zmm19 {%k1}
419# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
420# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vxorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
421# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax), %zmm17, %zmm19 {%k1} {z}
422# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
423