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
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      1     0.33                        kaddb	%k0, %k1, %k2
155# CHECK-NEXT:  1      1     0.33                        kaddw	%k0, %k1, %k2
156# CHECK-NEXT:  1      1     0.33                        kandb	%k0, %k1, %k2
157# CHECK-NEXT:  1      1     0.33                        kandnb	%k0, %k1, %k2
158# CHECK-NEXT:  1      1     0.33                        korb	%k0, %k1, %k2
159# CHECK-NEXT:  1      1     0.33                        kxnorb	%k0, %k1, %k2
160# CHECK-NEXT:  1      1     0.33                        kxorb	%k0, %k1, %k2
161# CHECK-NEXT:  1      1     1.00                        kshiftlb	$2, %k1, %k2
162# CHECK-NEXT:  1      1     1.00                        kshiftrb	$2, %k1, %k2
163# CHECK-NEXT:  1      1     1.00                        vandnpd	%zmm16, %zmm17, %zmm19
164# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax), %zmm17, %zmm19
165# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19
166# CHECK-NEXT:  1      1     1.00                        vandnpd	%zmm16, %zmm17, %zmm19 {%k1}
167# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax), %zmm17, %zmm19 {%k1}
168# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
169# CHECK-NEXT:  1      1     1.00                        vandnpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
170# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax), %zmm17, %zmm19 {%k1} {z}
171# CHECK-NEXT:  2      8     1.00    *                   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
172# CHECK-NEXT:  1      1     1.00                        vandnps	%zmm16, %zmm17, %zmm19
173# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax), %zmm17, %zmm19
174# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19
175# CHECK-NEXT:  1      1     1.00                        vandnps	%zmm16, %zmm17, %zmm19 {%k1}
176# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax), %zmm17, %zmm19 {%k1}
177# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
178# CHECK-NEXT:  1      1     1.00                        vandnps	%zmm16, %zmm17, %zmm19 {%k1} {z}
179# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax), %zmm17, %zmm19 {%k1} {z}
180# CHECK-NEXT:  2      8     1.00    *                   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
181# CHECK-NEXT:  1      1     1.00                        vandpd	%zmm16, %zmm17, %zmm19
182# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax), %zmm17, %zmm19
183# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19
184# CHECK-NEXT:  1      1     1.00                        vandpd	%zmm16, %zmm17, %zmm19 {%k1}
185# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax), %zmm17, %zmm19 {%k1}
186# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
187# CHECK-NEXT:  1      1     1.00                        vandpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
188# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax), %zmm17, %zmm19 {%k1} {z}
189# CHECK-NEXT:  2      8     1.00    *                   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
190# CHECK-NEXT:  1      1     1.00                        vandps	%zmm16, %zmm17, %zmm19
191# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax), %zmm17, %zmm19
192# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax){1to16}, %zmm17, %zmm19
193# CHECK-NEXT:  1      1     1.00                        vandps	%zmm16, %zmm17, %zmm19 {%k1}
194# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax), %zmm17, %zmm19 {%k1}
195# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
196# CHECK-NEXT:  1      1     1.00                        vandps	%zmm16, %zmm17, %zmm19 {%k1} {z}
197# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax), %zmm17, %zmm19 {%k1} {z}
198# CHECK-NEXT:  2      8     1.00    *                   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
199# CHECK-NEXT:  2      4     1.00                        vcvtqq2pd	%zmm16, %zmm19
200# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax), %zmm19
201# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax){1to8}, %zmm19
202# CHECK-NEXT:  2      4     1.00                        vcvtqq2pd	%zmm16, %zmm19 {%k1}
203# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax), %zmm19 {%k1}
204# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1}
205# CHECK-NEXT:  2      4     1.00                        vcvtqq2pd	%zmm16, %zmm19 {%k1} {z}
206# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax), %zmm19 {%k1} {z}
207# CHECK-NEXT:  3      10    1.00    *                   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1} {z}
208# CHECK-NEXT:  1      3     1.00                        vcvtqq2ps	%zmm16, %ymm19
209# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax), %ymm19
210# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19
211# CHECK-NEXT:  1      3     1.00                        vcvtqq2ps	%zmm16, %ymm19 {%k1}
212# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax), %ymm19 {%k1}
213# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1}
214# CHECK-NEXT:  1      3     1.00                        vcvtqq2ps	%zmm16, %ymm19 {%k1} {z}
215# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax), %ymm19 {%k1} {z}
216# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1} {z}
217# CHECK-NEXT:  1      1     1.00                        vorpd	%zmm16, %zmm17, %zmm19
218# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax), %zmm17, %zmm19
219# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19
220# CHECK-NEXT:  1      1     1.00                        vorpd	%zmm16, %zmm17, %zmm19 {%k1}
221# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax), %zmm17, %zmm19 {%k1}
222# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
223# CHECK-NEXT:  1      1     1.00                        vorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
224# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
225# CHECK-NEXT:  2      8     1.00    *                   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
226# CHECK-NEXT:  1      1     1.00                        vorps	%zmm16, %zmm17, %zmm19
227# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax), %zmm17, %zmm19
228# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax){1to16}, %zmm17, %zmm19
229# CHECK-NEXT:  1      1     1.00                        vorps	%zmm16, %zmm17, %zmm19 {%k1}
230# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax), %zmm17, %zmm19 {%k1}
231# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
232# CHECK-NEXT:  1      1     1.00                        vorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
233# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax), %zmm17, %zmm19 {%k1} {z}
234# CHECK-NEXT:  2      8     1.00    *                   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
235# CHECK-NEXT:  1      3     1.00                        vfpclasspd	$171, %zmm16, %k1
236# CHECK-NEXT:  2      10    1.00    *                   vfpclasspdz	$171, (%rax), %k1
237# CHECK-NEXT:  2      10    1.00    *                   vfpclasspd	$171, (%rax){1to8}, %k1
238# CHECK-NEXT:  1      3     1.00                        vfpclasspd	$171, %zmm16, %k1 {%k2}
239# CHECK-NEXT:  2      10    1.00    *                   vfpclasspdz	$171, (%rax), %k1 {%k2}
240# CHECK-NEXT:  2      10    1.00    *                   vfpclasspd	$171, (%rax){1to8}, %k1 {%k2}
241# CHECK-NEXT:  1      3     1.00                        vfpclassps	$171, %zmm16, %k1
242# CHECK-NEXT:  2      10    1.00    *                   vfpclasspsz	$171, (%rax), %k1
243# CHECK-NEXT:  2      10    1.00    *                   vfpclassps	$171, (%rax){1to16}, %k1
244# CHECK-NEXT:  1      3     1.00                        vfpclassps	$171, %zmm16, %k1 {%k2}
245# CHECK-NEXT:  2      10    1.00    *                   vfpclasspsz	$171, (%rax), %k1 {%k2}
246# CHECK-NEXT:  2      10    1.00    *                   vfpclassps	$171, (%rax){1to16}, %k1 {%k2}
247# CHECK-NEXT:  1      3     1.00                        vfpclasssd	$171, %xmm16, %k1
248# CHECK-NEXT:  2      9     1.00    *                   vfpclasssd	$171, (%rax), %k1
249# CHECK-NEXT:  1      3     1.00                        vfpclasssd	$171, %xmm16, %k1 {%k2}
250# CHECK-NEXT:  2      9     1.00    *                   vfpclasssd	$171, (%rax), %k1 {%k2}
251# CHECK-NEXT:  1      3     1.00                        vfpclassss	$171, %xmm16, %k1
252# CHECK-NEXT:  2      9     1.00    *                   vfpclassss	$171, (%rax), %k1
253# CHECK-NEXT:  1      3     1.00                        vfpclassss	$171, %xmm16, %k1 {%k2}
254# CHECK-NEXT:  2      9     1.00    *                   vfpclassss	$171, (%rax), %k1 {%k2}
255# CHECK-NEXT:  1      5     1.00                        vpmullq	%zmm16, %zmm17, %zmm19
256# CHECK-NEXT:  2      12    1.00    *                   vpmullq	(%rax), %zmm17, %zmm19
257# CHECK-NEXT:  1      5     1.00                        vpmullq	%zmm16, %zmm17, %zmm19 {%k1}
258# CHECK-NEXT:  2      12    1.00    *                   vpmullq	(%rax), %zmm17, %zmm19 {%k1}
259# CHECK-NEXT:  1      5     1.00                        vpmullq	%zmm16, %zmm17, %zmm19 {%k1} {z}
260# CHECK-NEXT:  2      12    1.00    *                   vpmullq	(%rax), %zmm17, %zmm19 {%k1} {z}
261# CHECK-NEXT:  1      1     1.00                        vxorpd	%zmm16, %zmm17, %zmm19
262# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax), %zmm17, %zmm19
263# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19
264# CHECK-NEXT:  1      1     1.00                        vxorpd	%zmm16, %zmm17, %zmm19 {%k1}
265# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax), %zmm17, %zmm19 {%k1}
266# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
267# CHECK-NEXT:  1      1     1.00                        vxorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
268# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
269# CHECK-NEXT:  2      8     1.00    *                   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
270# CHECK-NEXT:  1      1     1.00                        vxorps	%zmm16, %zmm17, %zmm19
271# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax), %zmm17, %zmm19
272# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19
273# CHECK-NEXT:  1      1     1.00                        vxorps	%zmm16, %zmm17, %zmm19 {%k1}
274# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax), %zmm17, %zmm19 {%k1}
275# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
276# CHECK-NEXT:  1      1     1.00                        vxorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
277# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax), %zmm17, %zmm19 {%k1} {z}
278# CHECK-NEXT:  2      8     1.00    *                   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
279
280# CHECK:      Resources:
281# CHECK-NEXT: [0]   - SBDivider
282# CHECK-NEXT: [1]   - SBFPDivider
283# CHECK-NEXT: [2]   - SBPort0
284# CHECK-NEXT: [3]   - SBPort1
285# CHECK-NEXT: [4]   - SBPort4
286# CHECK-NEXT: [5]   - SBPort5
287# CHECK-NEXT: [6.0] - SBPort23
288# CHECK-NEXT: [6.1] - SBPort23
289
290# CHECK:      Resource pressure per iteration:
291# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
292# CHECK-NEXT:  -      -     8.33   40.33   -     85.33  37.50  37.50
293
294# CHECK:      Resource pressure by instruction:
295# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
296# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kaddb	%k0, %k1, %k2
297# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kaddw	%k0, %k1, %k2
298# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kandb	%k0, %k1, %k2
299# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kandnb	%k0, %k1, %k2
300# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     korb	%k0, %k1, %k2
301# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kxnorb	%k0, %k1, %k2
302# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     kxorb	%k0, %k1, %k2
303# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     kshiftlb	$2, %k1, %k2
304# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     kshiftrb	$2, %k1, %k2
305# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnpd	%zmm16, %zmm17, %zmm19
306# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax), %zmm17, %zmm19
307# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax){1to8}, %zmm17, %zmm19
308# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnpd	%zmm16, %zmm17, %zmm19 {%k1}
309# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax), %zmm17, %zmm19 {%k1}
310# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
311# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
312# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax), %zmm17, %zmm19 {%k1} {z}
313# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
314# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnps	%zmm16, %zmm17, %zmm19
315# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax), %zmm17, %zmm19
316# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax){1to16}, %zmm17, %zmm19
317# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnps	%zmm16, %zmm17, %zmm19 {%k1}
318# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax), %zmm17, %zmm19 {%k1}
319# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
320# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandnps	%zmm16, %zmm17, %zmm19 {%k1} {z}
321# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax), %zmm17, %zmm19 {%k1} {z}
322# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandnps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
323# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandpd	%zmm16, %zmm17, %zmm19
324# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax), %zmm17, %zmm19
325# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax){1to8}, %zmm17, %zmm19
326# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandpd	%zmm16, %zmm17, %zmm19 {%k1}
327# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax), %zmm17, %zmm19 {%k1}
328# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
329# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
330# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax), %zmm17, %zmm19 {%k1} {z}
331# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
332# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandps	%zmm16, %zmm17, %zmm19
333# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax), %zmm17, %zmm19
334# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax){1to16}, %zmm17, %zmm19
335# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandps	%zmm16, %zmm17, %zmm19 {%k1}
336# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax), %zmm17, %zmm19 {%k1}
337# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
338# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vandps	%zmm16, %zmm17, %zmm19 {%k1} {z}
339# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax), %zmm17, %zmm19 {%k1} {z}
340# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vandps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
341# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtqq2pd	%zmm16, %zmm19
342# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax), %zmm19
343# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax){1to8}, %zmm19
344# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtqq2pd	%zmm16, %zmm19 {%k1}
345# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax), %zmm19 {%k1}
346# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1}
347# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtqq2pd	%zmm16, %zmm19 {%k1} {z}
348# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax), %zmm19 {%k1} {z}
349# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtqq2pd	(%rax){1to8}, %zmm19 {%k1} {z}
350# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvtqq2ps	%zmm16, %ymm19
351# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax), %ymm19
352# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax){1to8}, %ymm19
353# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvtqq2ps	%zmm16, %ymm19 {%k1}
354# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax), %ymm19 {%k1}
355# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1}
356# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvtqq2ps	%zmm16, %ymm19 {%k1} {z}
357# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax), %ymm19 {%k1} {z}
358# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtqq2ps	(%rax){1to8}, %ymm19 {%k1} {z}
359# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorpd	%zmm16, %zmm17, %zmm19
360# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax), %zmm17, %zmm19
361# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax){1to8}, %zmm17, %zmm19
362# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorpd	%zmm16, %zmm17, %zmm19 {%k1}
363# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax), %zmm17, %zmm19 {%k1}
364# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
365# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
366# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
367# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
368# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorps	%zmm16, %zmm17, %zmm19
369# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax), %zmm17, %zmm19
370# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax){1to16}, %zmm17, %zmm19
371# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorps	%zmm16, %zmm17, %zmm19 {%k1}
372# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax), %zmm17, %zmm19 {%k1}
373# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
374# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
375# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax), %zmm17, %zmm19 {%k1} {z}
376# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
377# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclasspd	$171, %zmm16, %k1
378# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspdz	$171, (%rax), %k1
379# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspd	$171, (%rax){1to8}, %k1
380# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclasspd	$171, %zmm16, %k1 {%k2}
381# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspdz	$171, (%rax), %k1 {%k2}
382# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspd	$171, (%rax){1to8}, %k1 {%k2}
383# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclassps	$171, %zmm16, %k1
384# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspsz	$171, (%rax), %k1
385# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclassps	$171, (%rax){1to16}, %k1
386# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclassps	$171, %zmm16, %k1 {%k2}
387# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasspsz	$171, (%rax), %k1 {%k2}
388# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclassps	$171, (%rax){1to16}, %k1 {%k2}
389# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclasssd	$171, %xmm16, %k1
390# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasssd	$171, (%rax), %k1
391# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclasssd	$171, %xmm16, %k1 {%k2}
392# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclasssd	$171, (%rax), %k1 {%k2}
393# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclassss	$171, %xmm16, %k1
394# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclassss	$171, (%rax), %k1
395# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vfpclassss	$171, %xmm16, %k1 {%k2}
396# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vfpclassss	$171, (%rax), %k1 {%k2}
397# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmullq	%zmm16, %zmm17, %zmm19
398# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmullq	(%rax), %zmm17, %zmm19
399# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmullq	%zmm16, %zmm17, %zmm19 {%k1}
400# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmullq	(%rax), %zmm17, %zmm19 {%k1}
401# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmullq	%zmm16, %zmm17, %zmm19 {%k1} {z}
402# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmullq	(%rax), %zmm17, %zmm19 {%k1} {z}
403# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorpd	%zmm16, %zmm17, %zmm19
404# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax), %zmm17, %zmm19
405# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax){1to8}, %zmm17, %zmm19
406# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorpd	%zmm16, %zmm17, %zmm19 {%k1}
407# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax), %zmm17, %zmm19 {%k1}
408# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1}
409# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorpd	%zmm16, %zmm17, %zmm19 {%k1} {z}
410# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax), %zmm17, %zmm19 {%k1} {z}
411# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorpd	(%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
412# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorps	%zmm16, %zmm17, %zmm19
413# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax), %zmm17, %zmm19
414# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax){1to16}, %zmm17, %zmm19
415# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorps	%zmm16, %zmm17, %zmm19 {%k1}
416# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax), %zmm17, %zmm19 {%k1}
417# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1}
418# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vxorps	%zmm16, %zmm17, %zmm19 {%k1} {z}
419# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax), %zmm17, %zmm19 {%k1} {z}
420# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vxorps	(%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
421