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
4vpabsb            %zmm16, %zmm19
5vpabsb            (%rax), %zmm19
6vpabsb            %zmm16, %zmm19 {k1}
7vpabsb            (%rax), %zmm19 {k1}
8vpabsb            %zmm16, %zmm19 {z}{k1}
9vpabsb            (%rax), %zmm19 {z}{k1}
10
11vpabsw            %zmm16, %zmm19
12vpabsw            (%rax), %zmm19
13vpabsw            %zmm16, %zmm19 {k1}
14vpabsw            (%rax), %zmm19 {k1}
15vpabsw            %zmm16, %zmm19 {z}{k1}
16vpabsw            (%rax), %zmm19 {z}{k1}
17
18vpaddb            %zmm16, %zmm17, %zmm19
19vpaddb            (%rax), %zmm17, %zmm19
20vpaddb            %zmm16, %zmm17, %zmm19 {k1}
21vpaddb            (%rax), %zmm17, %zmm19 {k1}
22vpaddb            %zmm16, %zmm17, %zmm19 {z}{k1}
23vpaddb            (%rax), %zmm17, %zmm19 {z}{k1}
24
25vpaddw            %zmm16, %zmm17, %zmm19
26vpaddw            (%rax), %zmm17, %zmm19
27vpaddw            %zmm16, %zmm17, %zmm19 {k1}
28vpaddw            (%rax), %zmm17, %zmm19 {k1}
29vpaddw            %zmm16, %zmm17, %zmm19 {z}{k1}
30vpaddw            (%rax), %zmm17, %zmm19 {z}{k1}
31
32vpermw            %zmm16, %zmm17, %zmm19
33vpermw            (%rax), %zmm17, %zmm19
34vpermw            %zmm16, %zmm17, %zmm19 {k1}
35vpermw            (%rax), %zmm17, %zmm19 {k1}
36vpermw            %zmm16, %zmm17, %zmm19 {z}{k1}
37vpermw            (%rax), %zmm17, %zmm19 {z}{k1}
38
39vpshufb           %zmm16, %zmm17, %zmm19
40vpshufb           (%rax), %zmm17, %zmm19
41vpshufb           %zmm16, %zmm17, %zmm19 {k1}
42vpshufb           (%rax), %zmm17, %zmm19 {k1}
43vpshufb           %zmm16, %zmm17, %zmm19 {z}{k1}
44vpshufb           (%rax), %zmm17, %zmm19 {z}{k1}
45
46vpshufhw          $0, %zmm16, %zmm19
47vpshufhw          $0, (%rax), %zmm19
48vpshufhw          $0, %zmm16, %zmm19 {k1}
49vpshufhw          $0, (%rax), %zmm19 {k1}
50vpshufhw          $0, %zmm16, %zmm19 {z}{k1}
51vpshufhw          $0, (%rax), %zmm19 {z}{k1}
52
53vpshuflw          $0, %zmm16, %zmm19
54vpshuflw          $0, (%rax), %zmm19
55vpshuflw          $0, %zmm16, %zmm19 {k1}
56vpshuflw          $0, (%rax), %zmm19 {k1}
57vpshuflw          $0, %zmm16, %zmm19 {z}{k1}
58vpshuflw          $0, (%rax), %zmm19 {z}{k1}
59
60vpsubb            %zmm16, %zmm17, %zmm19
61vpsubb            (%rax), %zmm17, %zmm19
62vpsubb            %zmm16, %zmm17, %zmm19 {k1}
63vpsubb            (%rax), %zmm17, %zmm19 {k1}
64vpsubb            %zmm16, %zmm17, %zmm19 {z}{k1}
65vpsubb            (%rax), %zmm17, %zmm19 {z}{k1}
66
67vpsubw            %zmm16, %zmm17, %zmm19
68vpsubw            (%rax), %zmm17, %zmm19
69vpsubw            %zmm16, %zmm17, %zmm19 {k1}
70vpsubw            (%rax), %zmm17, %zmm19 {k1}
71vpsubw            %zmm16, %zmm17, %zmm19 {z}{k1}
72vpsubw            (%rax), %zmm17, %zmm19 {z}{k1}
73
74vpunpckhbw        %zmm16, %zmm17, %zmm19
75vpunpckhbw        (%rax), %zmm17, %zmm19
76vpunpckhbw        %zmm16, %zmm17, %zmm19 {k1}
77vpunpckhbw        (%rax), %zmm17, %zmm19 {k1}
78vpunpckhbw        %zmm16, %zmm17, %zmm19 {z}{k1}
79vpunpckhbw        (%rax), %zmm17, %zmm19 {z}{k1}
80
81vpunpckhwd        %zmm16, %zmm17, %zmm19
82vpunpckhwd        (%rax), %zmm17, %zmm19
83vpunpckhwd        %zmm16, %zmm17, %zmm19 {k1}
84vpunpckhwd        (%rax), %zmm17, %zmm19 {k1}
85vpunpckhwd        %zmm16, %zmm17, %zmm19 {z}{k1}
86vpunpckhwd        (%rax), %zmm17, %zmm19 {z}{k1}
87
88vpunpcklbw        %zmm16, %zmm17, %zmm19
89vpunpcklbw        (%rax), %zmm17, %zmm19
90vpunpcklbw        %zmm16, %zmm17, %zmm19 {k1}
91vpunpcklbw        (%rax), %zmm17, %zmm19 {k1}
92vpunpcklbw        %zmm16, %zmm17, %zmm19 {z}{k1}
93vpunpcklbw        (%rax), %zmm17, %zmm19 {z}{k1}
94
95vpunpcklwd        %zmm16, %zmm17, %zmm19
96vpunpcklwd        (%rax), %zmm17, %zmm19
97vpunpcklwd        %zmm16, %zmm17, %zmm19 {k1}
98vpunpcklwd        (%rax), %zmm17, %zmm19 {k1}
99vpunpcklwd        %zmm16, %zmm17, %zmm19 {z}{k1}
100vpunpcklwd        (%rax), %zmm17, %zmm19 {z}{k1}
101
102# CHECK:      Instruction Info:
103# CHECK-NEXT: [1]: #uOps
104# CHECK-NEXT: [2]: Latency
105# CHECK-NEXT: [3]: RThroughput
106# CHECK-NEXT: [4]: MayLoad
107# CHECK-NEXT: [5]: MayStore
108# CHECK-NEXT: [6]: HasSideEffects (U)
109
110# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
111# CHECK-NEXT:  1      1     0.50                        vpabsb	%zmm16, %zmm19
112# CHECK-NEXT:  2      8     0.50    *                   vpabsb	(%rax), %zmm19
113# CHECK-NEXT:  1      1     0.50                        vpabsb	%zmm16, %zmm19 {%k1}
114# CHECK-NEXT:  2      8     0.50    *                   vpabsb	(%rax), %zmm19 {%k1}
115# CHECK-NEXT:  1      1     0.50                        vpabsb	%zmm16, %zmm19 {%k1} {z}
116# CHECK-NEXT:  2      8     0.50    *                   vpabsb	(%rax), %zmm19 {%k1} {z}
117# CHECK-NEXT:  1      1     0.50                        vpabsw	%zmm16, %zmm19
118# CHECK-NEXT:  2      8     0.50    *                   vpabsw	(%rax), %zmm19
119# CHECK-NEXT:  1      1     0.50                        vpabsw	%zmm16, %zmm19 {%k1}
120# CHECK-NEXT:  2      8     0.50    *                   vpabsw	(%rax), %zmm19 {%k1}
121# CHECK-NEXT:  1      1     0.50                        vpabsw	%zmm16, %zmm19 {%k1} {z}
122# CHECK-NEXT:  2      8     0.50    *                   vpabsw	(%rax), %zmm19 {%k1} {z}
123# CHECK-NEXT:  1      1     0.50                        vpaddb	%zmm16, %zmm17, %zmm19
124# CHECK-NEXT:  2      8     0.50    *                   vpaddb	(%rax), %zmm17, %zmm19
125# CHECK-NEXT:  1      1     0.50                        vpaddb	%zmm16, %zmm17, %zmm19 {%k1}
126# CHECK-NEXT:  2      8     0.50    *                   vpaddb	(%rax), %zmm17, %zmm19 {%k1}
127# CHECK-NEXT:  1      1     0.50                        vpaddb	%zmm16, %zmm17, %zmm19 {%k1} {z}
128# CHECK-NEXT:  2      8     0.50    *                   vpaddb	(%rax), %zmm17, %zmm19 {%k1} {z}
129# CHECK-NEXT:  1      1     0.50                        vpaddw	%zmm16, %zmm17, %zmm19
130# CHECK-NEXT:  2      8     0.50    *                   vpaddw	(%rax), %zmm17, %zmm19
131# CHECK-NEXT:  1      1     0.50                        vpaddw	%zmm16, %zmm17, %zmm19 {%k1}
132# CHECK-NEXT:  2      8     0.50    *                   vpaddw	(%rax), %zmm17, %zmm19 {%k1}
133# CHECK-NEXT:  1      1     0.50                        vpaddw	%zmm16, %zmm17, %zmm19 {%k1} {z}
134# CHECK-NEXT:  2      8     0.50    *                   vpaddw	(%rax), %zmm17, %zmm19 {%k1} {z}
135# CHECK-NEXT:  1      1     1.00                        vpermw	%zmm16, %zmm17, %zmm19
136# CHECK-NEXT:  2      8     1.00    *                   vpermw	(%rax), %zmm17, %zmm19
137# CHECK-NEXT:  1      1     1.00                        vpermw	%zmm16, %zmm17, %zmm19 {%k1}
138# CHECK-NEXT:  2      8     1.00    *                   vpermw	(%rax), %zmm17, %zmm19 {%k1}
139# CHECK-NEXT:  1      1     1.00                        vpermw	%zmm16, %zmm17, %zmm19 {%k1} {z}
140# CHECK-NEXT:  2      8     1.00    *                   vpermw	(%rax), %zmm17, %zmm19 {%k1} {z}
141# CHECK-NEXT:  1      1     0.50                        vpshufb	%zmm16, %zmm17, %zmm19
142# CHECK-NEXT:  2      8     0.50    *                   vpshufb	(%rax), %zmm17, %zmm19
143# CHECK-NEXT:  1      1     0.50                        vpshufb	%zmm16, %zmm17, %zmm19 {%k1}
144# CHECK-NEXT:  2      8     0.50    *                   vpshufb	(%rax), %zmm17, %zmm19 {%k1}
145# CHECK-NEXT:  1      1     0.50                        vpshufb	%zmm16, %zmm17, %zmm19 {%k1} {z}
146# CHECK-NEXT:  2      8     0.50    *                   vpshufb	(%rax), %zmm17, %zmm19 {%k1} {z}
147# CHECK-NEXT:  1      1     1.00                        vpshufhw	$0, %zmm16, %zmm19
148# CHECK-NEXT:  2      8     1.00    *                   vpshufhw	$0, (%rax), %zmm19
149# CHECK-NEXT:  1      1     1.00                        vpshufhw	$0, %zmm16, %zmm19 {%k1}
150# CHECK-NEXT:  2      8     1.00    *                   vpshufhw	$0, (%rax), %zmm19 {%k1}
151# CHECK-NEXT:  1      1     1.00                        vpshufhw	$0, %zmm16, %zmm19 {%k1} {z}
152# CHECK-NEXT:  2      8     1.00    *                   vpshufhw	$0, (%rax), %zmm19 {%k1} {z}
153# CHECK-NEXT:  1      1     1.00                        vpshuflw	$0, %zmm16, %zmm19
154# CHECK-NEXT:  2      8     1.00    *                   vpshuflw	$0, (%rax), %zmm19
155# CHECK-NEXT:  1      1     1.00                        vpshuflw	$0, %zmm16, %zmm19 {%k1}
156# CHECK-NEXT:  2      8     1.00    *                   vpshuflw	$0, (%rax), %zmm19 {%k1}
157# CHECK-NEXT:  1      1     1.00                        vpshuflw	$0, %zmm16, %zmm19 {%k1} {z}
158# CHECK-NEXT:  2      8     1.00    *                   vpshuflw	$0, (%rax), %zmm19 {%k1} {z}
159# CHECK-NEXT:  1      1     0.50                        vpsubb	%zmm16, %zmm17, %zmm19
160# CHECK-NEXT:  2      8     0.50    *                   vpsubb	(%rax), %zmm17, %zmm19
161# CHECK-NEXT:  1      1     0.50                        vpsubb	%zmm16, %zmm17, %zmm19 {%k1}
162# CHECK-NEXT:  2      8     0.50    *                   vpsubb	(%rax), %zmm17, %zmm19 {%k1}
163# CHECK-NEXT:  1      1     0.50                        vpsubb	%zmm16, %zmm17, %zmm19 {%k1} {z}
164# CHECK-NEXT:  2      8     0.50    *                   vpsubb	(%rax), %zmm17, %zmm19 {%k1} {z}
165# CHECK-NEXT:  1      1     0.50                        vpsubw	%zmm16, %zmm17, %zmm19
166# CHECK-NEXT:  2      8     0.50    *                   vpsubw	(%rax), %zmm17, %zmm19
167# CHECK-NEXT:  1      1     0.50                        vpsubw	%zmm16, %zmm17, %zmm19 {%k1}
168# CHECK-NEXT:  2      8     0.50    *                   vpsubw	(%rax), %zmm17, %zmm19 {%k1}
169# CHECK-NEXT:  1      1     0.50                        vpsubw	%zmm16, %zmm17, %zmm19 {%k1} {z}
170# CHECK-NEXT:  2      8     0.50    *                   vpsubw	(%rax), %zmm17, %zmm19 {%k1} {z}
171# CHECK-NEXT:  1      1     1.00                        vpunpckhbw	%zmm16, %zmm17, %zmm19
172# CHECK-NEXT:  2      8     1.00    *                   vpunpckhbw	(%rax), %zmm17, %zmm19
173# CHECK-NEXT:  1      1     1.00                        vpunpckhbw	%zmm16, %zmm17, %zmm19 {%k1}
174# CHECK-NEXT:  2      8     1.00    *                   vpunpckhbw	(%rax), %zmm17, %zmm19 {%k1}
175# CHECK-NEXT:  1      1     1.00                        vpunpckhbw	%zmm16, %zmm17, %zmm19 {%k1} {z}
176# CHECK-NEXT:  2      8     1.00    *                   vpunpckhbw	(%rax), %zmm17, %zmm19 {%k1} {z}
177# CHECK-NEXT:  1      1     1.00                        vpunpckhwd	%zmm16, %zmm17, %zmm19
178# CHECK-NEXT:  2      8     1.00    *                   vpunpckhwd	(%rax), %zmm17, %zmm19
179# CHECK-NEXT:  1      1     1.00                        vpunpckhwd	%zmm16, %zmm17, %zmm19 {%k1}
180# CHECK-NEXT:  2      8     1.00    *                   vpunpckhwd	(%rax), %zmm17, %zmm19 {%k1}
181# CHECK-NEXT:  1      1     1.00                        vpunpckhwd	%zmm16, %zmm17, %zmm19 {%k1} {z}
182# CHECK-NEXT:  2      8     1.00    *                   vpunpckhwd	(%rax), %zmm17, %zmm19 {%k1} {z}
183# CHECK-NEXT:  1      1     1.00                        vpunpcklbw	%zmm16, %zmm17, %zmm19
184# CHECK-NEXT:  2      8     1.00    *                   vpunpcklbw	(%rax), %zmm17, %zmm19
185# CHECK-NEXT:  1      1     1.00                        vpunpcklbw	%zmm16, %zmm17, %zmm19 {%k1}
186# CHECK-NEXT:  2      8     1.00    *                   vpunpcklbw	(%rax), %zmm17, %zmm19 {%k1}
187# CHECK-NEXT:  1      1     1.00                        vpunpcklbw	%zmm16, %zmm17, %zmm19 {%k1} {z}
188# CHECK-NEXT:  2      8     1.00    *                   vpunpcklbw	(%rax), %zmm17, %zmm19 {%k1} {z}
189# CHECK-NEXT:  1      1     1.00                        vpunpcklwd	%zmm16, %zmm17, %zmm19
190# CHECK-NEXT:  2      8     1.00    *                   vpunpcklwd	(%rax), %zmm17, %zmm19
191# CHECK-NEXT:  1      1     1.00                        vpunpcklwd	%zmm16, %zmm17, %zmm19 {%k1}
192# CHECK-NEXT:  2      8     1.00    *                   vpunpcklwd	(%rax), %zmm17, %zmm19 {%k1}
193# CHECK-NEXT:  1      1     1.00                        vpunpcklwd	%zmm16, %zmm17, %zmm19 {%k1} {z}
194# CHECK-NEXT:  2      8     1.00    *                   vpunpcklwd	(%rax), %zmm17, %zmm19 {%k1} {z}
195
196# CHECK:      Resources:
197# CHECK-NEXT: [0]   - SBDivider
198# CHECK-NEXT: [1]   - SBFPDivider
199# CHECK-NEXT: [2]   - SBPort0
200# CHECK-NEXT: [3]   - SBPort1
201# CHECK-NEXT: [4]   - SBPort4
202# CHECK-NEXT: [5]   - SBPort5
203# CHECK-NEXT: [6.0] - SBPort23
204# CHECK-NEXT: [6.1] - SBPort23
205
206# CHECK:      Resource pressure per iteration:
207# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
208# CHECK-NEXT:  -      -      -     21.00   -     63.00  21.00  21.00
209
210# CHECK:      Resource pressure by instruction:
211# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
212# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsb	%zmm16, %zmm19
213# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsb	(%rax), %zmm19
214# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsb	%zmm16, %zmm19 {%k1}
215# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsb	(%rax), %zmm19 {%k1}
216# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsb	%zmm16, %zmm19 {%k1} {z}
217# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsb	(%rax), %zmm19 {%k1} {z}
218# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsw	%zmm16, %zmm19
219# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw	(%rax), %zmm19
220# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsw	%zmm16, %zmm19 {%k1}
221# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw	(%rax), %zmm19 {%k1}
222# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsw	%zmm16, %zmm19 {%k1} {z}
223# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw	(%rax), %zmm19 {%k1} {z}
224# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb	%zmm16, %zmm17, %zmm19
225# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddb	(%rax), %zmm17, %zmm19
226# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb	%zmm16, %zmm17, %zmm19 {%k1}
227# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddb	(%rax), %zmm17, %zmm19 {%k1}
228# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb	%zmm16, %zmm17, %zmm19 {%k1} {z}
229# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddb	(%rax), %zmm17, %zmm19 {%k1} {z}
230# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddw	%zmm16, %zmm17, %zmm19
231# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddw	(%rax), %zmm17, %zmm19
232# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddw	%zmm16, %zmm17, %zmm19 {%k1}
233# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddw	(%rax), %zmm17, %zmm19 {%k1}
234# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddw	%zmm16, %zmm17, %zmm19 {%k1} {z}
235# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddw	(%rax), %zmm17, %zmm19 {%k1} {z}
236# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermw	%zmm16, %zmm17, %zmm19
237# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermw	(%rax), %zmm17, %zmm19
238# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermw	%zmm16, %zmm17, %zmm19 {%k1}
239# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermw	(%rax), %zmm17, %zmm19 {%k1}
240# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermw	%zmm16, %zmm17, %zmm19 {%k1} {z}
241# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpermw	(%rax), %zmm17, %zmm19 {%k1} {z}
242# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpshufb	%zmm16, %zmm17, %zmm19
243# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpshufb	(%rax), %zmm17, %zmm19
244# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpshufb	%zmm16, %zmm17, %zmm19 {%k1}
245# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpshufb	(%rax), %zmm17, %zmm19 {%k1}
246# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpshufb	%zmm16, %zmm17, %zmm19 {%k1} {z}
247# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpshufb	(%rax), %zmm17, %zmm19 {%k1} {z}
248# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshufhw	$0, %zmm16, %zmm19
249# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshufhw	$0, (%rax), %zmm19
250# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshufhw	$0, %zmm16, %zmm19 {%k1}
251# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshufhw	$0, (%rax), %zmm19 {%k1}
252# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshufhw	$0, %zmm16, %zmm19 {%k1} {z}
253# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshufhw	$0, (%rax), %zmm19 {%k1} {z}
254# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshuflw	$0, %zmm16, %zmm19
255# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshuflw	$0, (%rax), %zmm19
256# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshuflw	$0, %zmm16, %zmm19 {%k1}
257# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshuflw	$0, (%rax), %zmm19 {%k1}
258# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpshuflw	$0, %zmm16, %zmm19 {%k1} {z}
259# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpshuflw	$0, (%rax), %zmm19 {%k1} {z}
260# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubb	%zmm16, %zmm17, %zmm19
261# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubb	(%rax), %zmm17, %zmm19
262# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubb	%zmm16, %zmm17, %zmm19 {%k1}
263# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubb	(%rax), %zmm17, %zmm19 {%k1}
264# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubb	%zmm16, %zmm17, %zmm19 {%k1} {z}
265# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubb	(%rax), %zmm17, %zmm19 {%k1} {z}
266# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubw	%zmm16, %zmm17, %zmm19
267# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubw	(%rax), %zmm17, %zmm19
268# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubw	%zmm16, %zmm17, %zmm19 {%k1}
269# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubw	(%rax), %zmm17, %zmm19 {%k1}
270# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpsubw	%zmm16, %zmm17, %zmm19 {%k1} {z}
271# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpsubw	(%rax), %zmm17, %zmm19 {%k1} {z}
272# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhbw	%zmm16, %zmm17, %zmm19
273# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhbw	(%rax), %zmm17, %zmm19
274# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhbw	%zmm16, %zmm17, %zmm19 {%k1}
275# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhbw	(%rax), %zmm17, %zmm19 {%k1}
276# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhbw	%zmm16, %zmm17, %zmm19 {%k1} {z}
277# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhbw	(%rax), %zmm17, %zmm19 {%k1} {z}
278# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhwd	%zmm16, %zmm17, %zmm19
279# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhwd	(%rax), %zmm17, %zmm19
280# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhwd	%zmm16, %zmm17, %zmm19 {%k1}
281# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhwd	(%rax), %zmm17, %zmm19 {%k1}
282# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpckhwd	%zmm16, %zmm17, %zmm19 {%k1} {z}
283# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpckhwd	(%rax), %zmm17, %zmm19 {%k1} {z}
284# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklbw	%zmm16, %zmm17, %zmm19
285# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklbw	(%rax), %zmm17, %zmm19
286# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklbw	%zmm16, %zmm17, %zmm19 {%k1}
287# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklbw	(%rax), %zmm17, %zmm19 {%k1}
288# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklbw	%zmm16, %zmm17, %zmm19 {%k1} {z}
289# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklbw	(%rax), %zmm17, %zmm19 {%k1} {z}
290# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklwd	%zmm16, %zmm17, %zmm19
291# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklwd	(%rax), %zmm17, %zmm19
292# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklwd	%zmm16, %zmm17, %zmm19 {%k1}
293# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklwd	(%rax), %zmm17, %zmm19 {%k1}
294# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpunpcklwd	%zmm16, %zmm17, %zmm19 {%k1} {z}
295# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpunpcklwd	(%rax), %zmm17, %zmm19 {%k1} {z}
296