xref: /llvm-project/llvm/test/MC/X86/avx512vbmi-att.s (revision 7c944dc946048671574800802353373b6586cb2c)
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
2
3# CHECK: vpermb	%xmm28, %xmm29, %xmm30 {%k7}
4# CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
5         vpermb	%xmm28, %xmm29, %xmm30 {%k7}
6
7# CHECK: vpermb	%xmm28, %xmm29, %xmm30 {%k7} {z}
8# CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
9         vpermb	%xmm28, %xmm29, %xmm30 {%k7} {z}
10
11# CHECK: vpermb	(%rcx), %xmm29, %xmm30
12# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
13         vpermb	(%rcx), %xmm29, %xmm30
14
15# CHECK: vpermb	291(%rax,%r14,8), %xmm29, %xmm30
16# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
17         vpermb	291(%rax,%r14,8), %xmm29, %xmm30
18
19# CHECK: vpermb	2032(%rdx), %xmm29, %xmm30
20# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
21         vpermb	2032(%rdx), %xmm29, %xmm30
22
23# CHECK: vpermb	2048(%rdx), %xmm29, %xmm30
24# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
25         vpermb	2048(%rdx), %xmm29, %xmm30
26
27# CHECK: vpermb	-2048(%rdx), %xmm29, %xmm30
28# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
29         vpermb	-2048(%rdx), %xmm29, %xmm30
30
31# CHECK: vpermb	-2064(%rdx), %xmm29, %xmm30
32# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
33         vpermb	-2064(%rdx), %xmm29, %xmm30
34
35# CHECK: vpermb	%ymm28, %ymm29, %ymm30
36# CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
37         vpermb	%ymm28, %ymm29, %ymm30
38
39# CHECK: vpermb	%ymm28, %ymm29, %ymm30 {%k7}
40# CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
41         vpermb	%ymm28, %ymm29, %ymm30 {%k7}
42
43# CHECK: vpermb	%ymm28, %ymm29, %ymm30 {%k7} {z}
44# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
45         vpermb	%ymm28, %ymm29, %ymm30 {%k7} {z}
46
47# CHECK: vpermb	(%rcx), %ymm29, %ymm30
48# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
49         vpermb	(%rcx), %ymm29, %ymm30
50
51# CHECK: vpermb	291(%rax,%r14,8), %ymm29, %ymm30
52# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
53         vpermb	291(%rax,%r14,8), %ymm29, %ymm30
54
55# CHECK: vpermb	4064(%rdx), %ymm29, %ymm30
56# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
57         vpermb	4064(%rdx), %ymm29, %ymm30
58
59# CHECK: vpermb	4096(%rdx), %ymm29, %ymm30
60# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
61         vpermb	4096(%rdx), %ymm29, %ymm30
62
63# CHECK: vpermb	-4096(%rdx), %ymm29, %ymm30
64# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
65         vpermb	-4096(%rdx), %ymm29, %ymm30
66
67# CHECK: vpermb	-4128(%rdx), %ymm29, %ymm30
68# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
69         vpermb	-4128(%rdx), %ymm29, %ymm30
70
71# CHECK: vpermb	%xmm28, %xmm29, %xmm30
72# CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
73         vpermb	%xmm28, %xmm29, %xmm30
74
75# CHECK: vpermb	4660(%rax,%r14,8), %xmm29, %xmm30
76# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
77         vpermb	4660(%rax,%r14,8), %xmm29, %xmm30
78
79# CHECK: vpermb	4660(%rax,%r14,8), %ymm29, %ymm30
80# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
81         vpermb	4660(%rax,%r14,8), %ymm29, %ymm30
82
83# CHECK: vpermb	%zmm28, %zmm29, %zmm30
84# CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
85         vpermb	%zmm28, %zmm29, %zmm30
86
87# CHECK: vpermb	%zmm28, %zmm29, %zmm30 {%k7}
88# CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
89         vpermb	%zmm28, %zmm29, %zmm30 {%k7}
90
91# CHECK: vpermb	%zmm28, %zmm29, %zmm30 {%k7} {z}
92# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
93         vpermb	%zmm28, %zmm29, %zmm30 {%k7} {z}
94
95# CHECK: vpermb	(%rcx), %zmm29, %zmm30
96# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
97         vpermb	(%rcx), %zmm29, %zmm30
98
99# CHECK: vpermb	291(%rax,%r14,8), %zmm29, %zmm30
100# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
101         vpermb	291(%rax,%r14,8), %zmm29, %zmm30
102
103# CHECK: vpermb	8128(%rdx), %zmm29, %zmm30
104# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
105         vpermb	8128(%rdx), %zmm29, %zmm30
106
107# CHECK: vpermb	8192(%rdx), %zmm29, %zmm30
108# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
109         vpermb	8192(%rdx), %zmm29, %zmm30
110
111# CHECK: vpermb	-8192(%rdx), %zmm29, %zmm30
112# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
113         vpermb	-8192(%rdx), %zmm29, %zmm30
114
115# CHECK: vpermb	-8256(%rdx), %zmm29, %zmm30
116# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
117         vpermb	-8256(%rdx), %zmm29, %zmm30
118
119# CHECK: vpermb	4660(%rax,%r14,8), %zmm29, %zmm30
120# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
121         vpermb	4660(%rax,%r14,8), %zmm29, %zmm30
122
123# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30
124# CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
125         vpermt2b	%xmm28, %xmm29, %xmm30
126
127# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30 {%k7}
128# CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
129         vpermt2b	%xmm28, %xmm29, %xmm30 {%k7}
130
131# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
132# CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
133         vpermt2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
134
135# CHECK: vpermt2b	(%rcx), %xmm29, %xmm30
136# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
137         vpermt2b	(%rcx), %xmm29, %xmm30
138
139# CHECK: vpermt2b	291(%rax,%r14,8), %xmm29, %xmm30
140# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
141         vpermt2b	291(%rax,%r14,8), %xmm29, %xmm30
142
143# CHECK: vpermt2b	2032(%rdx), %xmm29, %xmm30
144# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
145         vpermt2b	2032(%rdx), %xmm29, %xmm30
146
147# CHECK: vpermt2b	2048(%rdx), %xmm29, %xmm30
148# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
149         vpermt2b	2048(%rdx), %xmm29, %xmm30
150
151# CHECK: vpermt2b	-2048(%rdx), %xmm29, %xmm30
152# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
153         vpermt2b	-2048(%rdx), %xmm29, %xmm30
154
155# CHECK: vpermt2b	-2064(%rdx), %xmm29, %xmm30
156# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
157         vpermt2b	-2064(%rdx), %xmm29, %xmm30
158
159# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30
160# CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
161         vpermt2b	%ymm28, %ymm29, %ymm30
162
163# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30 {%k7}
164# CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
165         vpermt2b	%ymm28, %ymm29, %ymm30 {%k7}
166
167# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
168# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
169         vpermt2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
170
171# CHECK: vpermt2b	(%rcx), %ymm29, %ymm30
172# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
173         vpermt2b	(%rcx), %ymm29, %ymm30
174
175# CHECK: vpermt2b	291(%rax,%r14,8), %ymm29, %ymm30
176# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
177         vpermt2b	291(%rax,%r14,8), %ymm29, %ymm30
178
179# CHECK: vpermt2b	4064(%rdx), %ymm29, %ymm30
180# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
181         vpermt2b	4064(%rdx), %ymm29, %ymm30
182
183# CHECK: vpermt2b	4096(%rdx), %ymm29, %ymm30
184# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
185         vpermt2b	4096(%rdx), %ymm29, %ymm30
186
187# CHECK: vpermt2b	-4096(%rdx), %ymm29, %ymm30
188# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
189         vpermt2b	-4096(%rdx), %ymm29, %ymm30
190
191# CHECK: vpermt2b	-4128(%rdx), %ymm29, %ymm30
192# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
193         vpermt2b	-4128(%rdx), %ymm29, %ymm30
194
195# CHECK: vpermt2b	4660(%rax,%r14,8), %xmm29, %xmm30
196# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
197         vpermt2b	4660(%rax,%r14,8), %xmm29, %xmm30
198
199# CHECK: vpermt2b	4660(%rax,%r14,8), %ymm29, %ymm30
200# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
201         vpermt2b	4660(%rax,%r14,8), %ymm29, %ymm30
202
203# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30
204# CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
205         vpermt2b	%zmm28, %zmm29, %zmm30
206
207# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30 {%k7}
208# CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
209         vpermt2b	%zmm28, %zmm29, %zmm30 {%k7}
210
211# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
212# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
213         vpermt2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
214
215# CHECK: vpermt2b	(%rcx), %zmm29, %zmm30
216# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
217         vpermt2b	(%rcx), %zmm29, %zmm30
218
219# CHECK: vpermt2b	291(%rax,%r14,8), %zmm29, %zmm30
220# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
221         vpermt2b	291(%rax,%r14,8), %zmm29, %zmm30
222
223# CHECK: vpermt2b	8128(%rdx), %zmm29, %zmm30
224# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
225         vpermt2b	8128(%rdx), %zmm29, %zmm30
226
227# CHECK: vpermt2b	8192(%rdx), %zmm29, %zmm30
228# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
229         vpermt2b	8192(%rdx), %zmm29, %zmm30
230
231# CHECK: vpermt2b	-8192(%rdx), %zmm29, %zmm30
232# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
233         vpermt2b	-8192(%rdx), %zmm29, %zmm30
234
235# CHECK: vpermt2b	-8256(%rdx), %zmm29, %zmm30
236# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
237         vpermt2b	-8256(%rdx), %zmm29, %zmm30
238
239# CHECK: vpermt2b	4660(%rax,%r14,8), %zmm29, %zmm30
240# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
241         vpermt2b	4660(%rax,%r14,8), %zmm29, %zmm30
242
243# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30
244# CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
245         vpermi2b	%xmm28, %xmm29, %xmm30
246
247# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30 {%k7}
248# CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
249         vpermi2b	%xmm28, %xmm29, %xmm30 {%k7}
250
251# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
252# CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
253         vpermi2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
254
255# CHECK: vpermi2b	(%rcx), %xmm29, %xmm30
256# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
257         vpermi2b	(%rcx), %xmm29, %xmm30
258
259# CHECK: vpermi2b	291(%rax,%r14,8), %xmm29, %xmm30
260# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
261         vpermi2b	291(%rax,%r14,8), %xmm29, %xmm30
262
263# CHECK: vpermi2b	2032(%rdx), %xmm29, %xmm30
264# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
265         vpermi2b	2032(%rdx), %xmm29, %xmm30
266
267# CHECK: vpermi2b	2048(%rdx), %xmm29, %xmm30
268# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
269         vpermi2b	2048(%rdx), %xmm29, %xmm30
270
271# CHECK: vpermi2b	-2048(%rdx), %xmm29, %xmm30
272# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
273         vpermi2b	-2048(%rdx), %xmm29, %xmm30
274
275# CHECK: vpermi2b	-2064(%rdx), %xmm29, %xmm30
276# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
277         vpermi2b	-2064(%rdx), %xmm29, %xmm30
278
279# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30
280# CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
281         vpermi2b	%ymm28, %ymm29, %ymm30
282
283# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30 {%k7}
284# CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
285         vpermi2b	%ymm28, %ymm29, %ymm30 {%k7}
286
287# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
288# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
289         vpermi2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
290
291# CHECK: vpermi2b	(%rcx), %ymm29, %ymm30
292# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
293         vpermi2b	(%rcx), %ymm29, %ymm30
294
295# CHECK: vpermi2b	291(%rax,%r14,8), %ymm29, %ymm30
296# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
297         vpermi2b	291(%rax,%r14,8), %ymm29, %ymm30
298
299# CHECK: vpermi2b	4064(%rdx), %ymm29, %ymm30
300# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
301         vpermi2b	4064(%rdx), %ymm29, %ymm30
302
303# CHECK: vpermi2b	4096(%rdx), %ymm29, %ymm30
304# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
305         vpermi2b	4096(%rdx), %ymm29, %ymm30
306
307# CHECK: vpermi2b	-4096(%rdx), %ymm29, %ymm30
308# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
309         vpermi2b	-4096(%rdx), %ymm29, %ymm30
310
311# CHECK: vpermi2b	-4128(%rdx), %ymm29, %ymm30
312# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
313         vpermi2b	-4128(%rdx), %ymm29, %ymm30
314
315# CHECK: vpermi2b	4660(%rax,%r14,8), %xmm29, %xmm30
316# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
317         vpermi2b	4660(%rax,%r14,8), %xmm29, %xmm30
318
319# CHECK: vpermi2b	4660(%rax,%r14,8), %ymm29, %ymm30
320# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
321         vpermi2b	4660(%rax,%r14,8), %ymm29, %ymm30
322
323# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30
324# CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
325         vpermi2b	%zmm28, %zmm29, %zmm30
326
327# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30 {%k7}
328# CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
329         vpermi2b	%zmm28, %zmm29, %zmm30 {%k7}
330
331# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
332# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
333         vpermi2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
334
335# CHECK: vpermi2b	(%rcx), %zmm29, %zmm30
336# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
337         vpermi2b	(%rcx), %zmm29, %zmm30
338
339# CHECK: vpermi2b	291(%rax,%r14,8), %zmm29, %zmm30
340# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
341         vpermi2b	291(%rax,%r14,8), %zmm29, %zmm30
342
343# CHECK: vpermi2b	8128(%rdx), %zmm29, %zmm30
344# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
345         vpermi2b	8128(%rdx), %zmm29, %zmm30
346
347# CHECK: vpermi2b	8192(%rdx), %zmm29, %zmm30
348# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
349         vpermi2b	8192(%rdx), %zmm29, %zmm30
350
351# CHECK: vpermi2b	-8192(%rdx), %zmm29, %zmm30
352# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
353         vpermi2b	-8192(%rdx), %zmm29, %zmm30
354
355# CHECK: vpermi2b	-8256(%rdx), %zmm29, %zmm30
356# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
357         vpermi2b	-8256(%rdx), %zmm29, %zmm30
358
359# CHECK: vpermi2b	4660(%rax,%r14,8), %zmm29, %zmm30
360# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
361         vpermi2b	4660(%rax,%r14,8), %zmm29, %zmm30
362
363# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30
364# CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
365         vpmultishiftqb	%xmm28, %xmm29, %xmm30
366
367# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7}
368# CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
369         vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7}
370
371# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7} {z}
372# CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
373         vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7} {z}
374
375# CHECK: vpmultishiftqb	(%rcx), %xmm29, %xmm30
376# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
377         vpmultishiftqb	(%rcx), %xmm29, %xmm30
378
379# CHECK: vpmultishiftqb	291(%rax,%r14,8), %xmm29, %xmm30
380# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
381         vpmultishiftqb	291(%rax,%r14,8), %xmm29, %xmm30
382
383# CHECK: vpmultishiftqb	(%rcx){1to2}, %xmm29, %xmm30
384# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
385         vpmultishiftqb	(%rcx){1to2}, %xmm29, %xmm30
386
387
388# CHECK: vpmultishiftqb	2032(%rdx), %xmm29, %xmm30
389# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
390         vpmultishiftqb	2032(%rdx), %xmm29, %xmm30
391
392# CHECK: vpmultishiftqb	2048(%rdx), %xmm29, %xmm30
393# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
394         vpmultishiftqb	2048(%rdx), %xmm29, %xmm30
395
396# CHECK: vpmultishiftqb	-2048(%rdx), %xmm29, %xmm30
397# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
398         vpmultishiftqb	-2048(%rdx), %xmm29, %xmm30
399
400# CHECK: vpmultishiftqb	-2064(%rdx), %xmm29, %xmm30
401# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
402         vpmultishiftqb	-2064(%rdx), %xmm29, %xmm30
403
404# CHECK: vpmultishiftqb	1016(%rdx){1to2}, %xmm29, %xmm30
405# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
406         vpmultishiftqb	1016(%rdx){1to2}, %xmm29, %xmm30
407
408# CHECK: vpmultishiftqb	1024(%rdx){1to2}, %xmm29, %xmm30
409# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
410         vpmultishiftqb	1024(%rdx){1to2}, %xmm29, %xmm30
411
412# CHECK: vpmultishiftqb	-1024(%rdx){1to2}, %xmm29, %xmm30
413# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
414         vpmultishiftqb	-1024(%rdx){1to2}, %xmm29, %xmm30
415
416# CHECK: vpmultishiftqb	-1032(%rdx){1to2}, %xmm29, %xmm30
417# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
418         vpmultishiftqb	-1032(%rdx){1to2}, %xmm29, %xmm30
419
420# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30
421# CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
422         vpmultishiftqb	%ymm28, %ymm29, %ymm30
423
424# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7}
425# CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
426         vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7}
427
428# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7} {z}
429# CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
430         vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7} {z}
431
432# CHECK: vpmultishiftqb	(%rcx), %ymm29, %ymm30
433# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
434         vpmultishiftqb	(%rcx), %ymm29, %ymm30
435
436# CHECK: vpmultishiftqb	291(%rax,%r14,8), %ymm29, %ymm30
437# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
438         vpmultishiftqb	291(%rax,%r14,8), %ymm29, %ymm30
439
440# CHECK: vpmultishiftqb	(%rcx){1to4}, %ymm29, %ymm30
441# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
442         vpmultishiftqb	(%rcx){1to4}, %ymm29, %ymm30
443
444# CHECK: vpmultishiftqb	4064(%rdx), %ymm29, %ymm30
445# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
446         vpmultishiftqb	4064(%rdx), %ymm29, %ymm30
447
448# CHECK: vpmultishiftqb	4096(%rdx), %ymm29, %ymm30
449# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
450         vpmultishiftqb	4096(%rdx), %ymm29, %ymm30
451
452# CHECK: vpmultishiftqb	-4096(%rdx), %ymm29, %ymm30
453# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
454         vpmultishiftqb	-4096(%rdx), %ymm29, %ymm30
455
456# CHECK: vpmultishiftqb	-4128(%rdx), %ymm29, %ymm30
457# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
458         vpmultishiftqb	-4128(%rdx), %ymm29, %ymm30
459
460# CHECK: vpmultishiftqb	1016(%rdx){1to4}, %ymm29, %ymm30
461# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
462         vpmultishiftqb	1016(%rdx){1to4}, %ymm29, %ymm30
463
464# CHECK: vpmultishiftqb	1024(%rdx){1to4}, %ymm29, %ymm30
465# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
466         vpmultishiftqb	1024(%rdx){1to4}, %ymm29, %ymm30
467
468# CHECK: vpmultishiftqb	-1024(%rdx){1to4}, %ymm29, %ymm30
469# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
470         vpmultishiftqb	-1024(%rdx){1to4}, %ymm29, %ymm30
471
472# CHECK: vpmultishiftqb	-1032(%rdx){1to4}, %ymm29, %ymm30
473# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
474         vpmultishiftqb	-1032(%rdx){1to4}, %ymm29, %ymm30
475
476# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %xmm29, %xmm30
477# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
478         vpmultishiftqb	4660(%rax,%r14,8), %xmm29, %xmm30
479
480# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %ymm29, %ymm30
481# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
482         vpmultishiftqb	4660(%rax,%r14,8), %ymm29, %ymm30
483
484# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30
485# CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
486         vpmultishiftqb	%zmm28, %zmm29, %zmm30
487
488# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7}
489# CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
490         vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7}
491
492# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7} {z}
493# CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
494         vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7} {z}
495
496# CHECK: vpmultishiftqb	(%rcx), %zmm29, %zmm30
497# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
498         vpmultishiftqb	(%rcx), %zmm29, %zmm30
499
500# CHECK: vpmultishiftqb	291(%rax,%r14,8), %zmm29, %zmm30
501# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
502         vpmultishiftqb	291(%rax,%r14,8), %zmm29, %zmm30
503
504# CHECK: vpmultishiftqb	(%rcx){1to8}, %zmm29, %zmm30
505# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
506         vpmultishiftqb	(%rcx){1to8}, %zmm29, %zmm30
507
508# CHECK: vpmultishiftqb	8128(%rdx), %zmm29, %zmm30
509# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
510         vpmultishiftqb	8128(%rdx), %zmm29, %zmm30
511
512# CHECK: vpmultishiftqb	8192(%rdx), %zmm29, %zmm30
513# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
514         vpmultishiftqb	8192(%rdx), %zmm29, %zmm30
515
516# CHECK: vpmultishiftqb	-8192(%rdx), %zmm29, %zmm30
517# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
518         vpmultishiftqb	-8192(%rdx), %zmm29, %zmm30
519
520# CHECK: vpmultishiftqb	-8256(%rdx), %zmm29, %zmm30
521# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
522         vpmultishiftqb	-8256(%rdx), %zmm29, %zmm30
523
524# CHECK: vpmultishiftqb	1016(%rdx){1to8}, %zmm29, %zmm30
525# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
526         vpmultishiftqb	1016(%rdx){1to8}, %zmm29, %zmm30
527
528# CHECK: vpmultishiftqb	1024(%rdx){1to8}, %zmm29, %zmm30
529# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
530         vpmultishiftqb	1024(%rdx){1to8}, %zmm29, %zmm30
531
532# CHECK: vpmultishiftqb	-1024(%rdx){1to8}, %zmm29, %zmm30
533# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
534         vpmultishiftqb	-1024(%rdx){1to8}, %zmm29, %zmm30
535
536# CHECK: vpmultishiftqb	-1032(%rdx){1to8}, %zmm29, %zmm30
537# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
538         vpmultishiftqb	-1032(%rdx){1to8}, %zmm29, %zmm30
539
540# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %zmm29, %zmm30
541# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
542         vpmultishiftqb	4660(%rax,%r14,8), %zmm29, %zmm30
543