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