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