1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
2
3// CHECK: vaesdec 485498096, %xmm15, %xmm15
4// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
5vaesdec 485498096, %xmm15, %xmm15
6
7// CHECK: vaesdec 485498096, %xmm6, %xmm6
8// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
9vaesdec 485498096, %xmm6, %xmm6
10
11// CHECK: vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15
12// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0x40]
13vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15
14
15// CHECK: vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15
16// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0xc0]
17vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15
18
19// CHECK: vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6
20// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0x40]
21vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6
22
23// CHECK: vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6
24// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0xc0]
25vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6
26
27// CHECK: vaesdec 64(%rdx,%rax), %xmm15, %xmm15
28// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x02,0x40]
29vaesdec 64(%rdx,%rax), %xmm15, %xmm15
30
31// CHECK: vaesdec 64(%rdx,%rax), %xmm6, %xmm6
32// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x02,0x40]
33vaesdec 64(%rdx,%rax), %xmm6, %xmm6
34
35// CHECK: vaesdec 64(%rdx), %xmm15, %xmm15
36// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7a,0x40]
37vaesdec 64(%rdx), %xmm15, %xmm15
38
39// CHECK: vaesdec 64(%rdx), %xmm6, %xmm6
40// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x72,0x40]
41vaesdec 64(%rdx), %xmm6, %xmm6
42
43// CHECK: vaesdeclast 485498096, %xmm15, %xmm15
44// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
45vaesdeclast 485498096, %xmm15, %xmm15
46
47// CHECK: vaesdeclast 485498096, %xmm6, %xmm6
48// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
49vaesdeclast 485498096, %xmm6, %xmm6
50
51// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15
52// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0x40]
53vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15
54
55// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15
56// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0xc0]
57vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15
58
59// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6
60// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0x40]
61vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6
62
63// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6
64// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0xc0]
65vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6
66
67// CHECK: vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15
68// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x02,0x40]
69vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15
70
71// CHECK: vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6
72// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x02,0x40]
73vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6
74
75// CHECK: vaesdeclast 64(%rdx), %xmm15, %xmm15
76// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7a,0x40]
77vaesdeclast 64(%rdx), %xmm15, %xmm15
78
79// CHECK: vaesdeclast 64(%rdx), %xmm6, %xmm6
80// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x72,0x40]
81vaesdeclast 64(%rdx), %xmm6, %xmm6
82
83// CHECK: vaesdeclast (%rdx), %xmm15, %xmm15
84// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3a]
85vaesdeclast (%rdx), %xmm15, %xmm15
86
87// CHECK: vaesdeclast (%rdx), %xmm6, %xmm6
88// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x32]
89vaesdeclast (%rdx), %xmm6, %xmm6
90
91// CHECK: vaesdeclast %xmm15, %xmm15, %xmm15
92// CHECK: encoding: [0xc4,0x42,0x01,0xdf,0xff]
93vaesdeclast %xmm15, %xmm15, %xmm15
94
95// CHECK: vaesdeclast %xmm6, %xmm6, %xmm6
96// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0xf6]
97vaesdeclast %xmm6, %xmm6, %xmm6
98
99// CHECK: vaesdec (%rdx), %xmm15, %xmm15
100// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3a]
101vaesdec (%rdx), %xmm15, %xmm15
102
103// CHECK: vaesdec (%rdx), %xmm6, %xmm6
104// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x32]
105vaesdec (%rdx), %xmm6, %xmm6
106
107// CHECK: vaesdec %xmm15, %xmm15, %xmm15
108// CHECK: encoding: [0xc4,0x42,0x01,0xde,0xff]
109vaesdec %xmm15, %xmm15, %xmm15
110
111// CHECK: vaesdec %xmm6, %xmm6, %xmm6
112// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0xf6]
113vaesdec %xmm6, %xmm6, %xmm6
114
115// CHECK: vaesenc 485498096, %xmm15, %xmm15
116// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
117vaesenc 485498096, %xmm15, %xmm15
118
119// CHECK: vaesenc 485498096, %xmm6, %xmm6
120// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
121vaesenc 485498096, %xmm6, %xmm6
122
123// CHECK: vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15
124// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0x40]
125vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15
126
127// CHECK: vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15
128// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0xc0]
129vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15
130
131// CHECK: vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6
132// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0x40]
133vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6
134
135// CHECK: vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6
136// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0xc0]
137vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6
138
139// CHECK: vaesenc 64(%rdx,%rax), %xmm15, %xmm15
140// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x02,0x40]
141vaesenc 64(%rdx,%rax), %xmm15, %xmm15
142
143// CHECK: vaesenc 64(%rdx,%rax), %xmm6, %xmm6
144// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x02,0x40]
145vaesenc 64(%rdx,%rax), %xmm6, %xmm6
146
147// CHECK: vaesenc 64(%rdx), %xmm15, %xmm15
148// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7a,0x40]
149vaesenc 64(%rdx), %xmm15, %xmm15
150
151// CHECK: vaesenc 64(%rdx), %xmm6, %xmm6
152// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x72,0x40]
153vaesenc 64(%rdx), %xmm6, %xmm6
154
155// CHECK: vaesenclast 485498096, %xmm15, %xmm15
156// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
157vaesenclast 485498096, %xmm15, %xmm15
158
159// CHECK: vaesenclast 485498096, %xmm6, %xmm6
160// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
161vaesenclast 485498096, %xmm6, %xmm6
162
163// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15
164// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0x40]
165vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15
166
167// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15
168// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0xc0]
169vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15
170
171// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6
172// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0x40]
173vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6
174
175// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6
176// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0xc0]
177vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6
178
179// CHECK: vaesenclast 64(%rdx,%rax), %xmm15, %xmm15
180// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x02,0x40]
181vaesenclast 64(%rdx,%rax), %xmm15, %xmm15
182
183// CHECK: vaesenclast 64(%rdx,%rax), %xmm6, %xmm6
184// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x02,0x40]
185vaesenclast 64(%rdx,%rax), %xmm6, %xmm6
186
187// CHECK: vaesenclast 64(%rdx), %xmm15, %xmm15
188// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7a,0x40]
189vaesenclast 64(%rdx), %xmm15, %xmm15
190
191// CHECK: vaesenclast 64(%rdx), %xmm6, %xmm6
192// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x72,0x40]
193vaesenclast 64(%rdx), %xmm6, %xmm6
194
195// CHECK: vaesenclast (%rdx), %xmm15, %xmm15
196// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3a]
197vaesenclast (%rdx), %xmm15, %xmm15
198
199// CHECK: vaesenclast (%rdx), %xmm6, %xmm6
200// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x32]
201vaesenclast (%rdx), %xmm6, %xmm6
202
203// CHECK: vaesenclast %xmm15, %xmm15, %xmm15
204// CHECK: encoding: [0xc4,0x42,0x01,0xdd,0xff]
205vaesenclast %xmm15, %xmm15, %xmm15
206
207// CHECK: vaesenclast %xmm6, %xmm6, %xmm6
208// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0xf6]
209vaesenclast %xmm6, %xmm6, %xmm6
210
211// CHECK: vaesenc (%rdx), %xmm15, %xmm15
212// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3a]
213vaesenc (%rdx), %xmm15, %xmm15
214
215// CHECK: vaesenc (%rdx), %xmm6, %xmm6
216// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x32]
217vaesenc (%rdx), %xmm6, %xmm6
218
219// CHECK: vaesenc %xmm15, %xmm15, %xmm15
220// CHECK: encoding: [0xc4,0x42,0x01,0xdc,0xff]
221vaesenc %xmm15, %xmm15, %xmm15
222
223// CHECK: vaesenc %xmm6, %xmm6, %xmm6
224// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0xf6]
225vaesenc %xmm6, %xmm6, %xmm6
226
227// CHECK: vaesimc 485498096, %xmm15
228// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
229vaesimc 485498096, %xmm15
230
231// CHECK: vaesimc 485498096, %xmm6
232// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
233vaesimc 485498096, %xmm6
234
235// CHECK: vaesimc 64(%rdx,%rax,4), %xmm15
236// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0x40]
237vaesimc 64(%rdx,%rax,4), %xmm15
238
239// CHECK: vaesimc -64(%rdx,%rax,4), %xmm15
240// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0xc0]
241vaesimc -64(%rdx,%rax,4), %xmm15
242
243// CHECK: vaesimc 64(%rdx,%rax,4), %xmm6
244// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0x40]
245vaesimc 64(%rdx,%rax,4), %xmm6
246
247// CHECK: vaesimc -64(%rdx,%rax,4), %xmm6
248// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0xc0]
249vaesimc -64(%rdx,%rax,4), %xmm6
250
251// CHECK: vaesimc 64(%rdx,%rax), %xmm15
252// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x02,0x40]
253vaesimc 64(%rdx,%rax), %xmm15
254
255// CHECK: vaesimc 64(%rdx,%rax), %xmm6
256// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x02,0x40]
257vaesimc 64(%rdx,%rax), %xmm6
258
259// CHECK: vaesimc 64(%rdx), %xmm15
260// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7a,0x40]
261vaesimc 64(%rdx), %xmm15
262
263// CHECK: vaesimc 64(%rdx), %xmm6
264// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x72,0x40]
265vaesimc 64(%rdx), %xmm6
266
267// CHECK: vaesimc (%rdx), %xmm15
268// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3a]
269vaesimc (%rdx), %xmm15
270
271// CHECK: vaesimc (%rdx), %xmm6
272// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x32]
273vaesimc (%rdx), %xmm6
274
275// CHECK: vaesimc %xmm15, %xmm15
276// CHECK: encoding: [0xc4,0x42,0x79,0xdb,0xff]
277vaesimc %xmm15, %xmm15
278
279// CHECK: vaesimc %xmm6, %xmm6
280// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0xf6]
281vaesimc %xmm6, %xmm6
282
283// CHECK: vaeskeygenassist $0, 485498096, %xmm15
284// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
285vaeskeygenassist $0, 485498096, %xmm15
286
287// CHECK: vaeskeygenassist $0, 485498096, %xmm6
288// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
289vaeskeygenassist $0, 485498096, %xmm6
290
291// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15
292// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0x40,0x00]
293vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15
294
295// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15
296// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0xc0,0x00]
297vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15
298
299// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6
300// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0x40,0x00]
301vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6
302
303// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6
304// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0xc0,0x00]
305vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6
306
307// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm15
308// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x02,0x40,0x00]
309vaeskeygenassist $0, 64(%rdx,%rax), %xmm15
310
311// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm6
312// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x02,0x40,0x00]
313vaeskeygenassist $0, 64(%rdx,%rax), %xmm6
314
315// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm15
316// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7a,0x40,0x00]
317vaeskeygenassist $0, 64(%rdx), %xmm15
318
319// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm6
320// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x72,0x40,0x00]
321vaeskeygenassist $0, 64(%rdx), %xmm6
322
323// CHECK: vaeskeygenassist $0, (%rdx), %xmm15
324// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3a,0x00]
325vaeskeygenassist $0, (%rdx), %xmm15
326
327// CHECK: vaeskeygenassist $0, (%rdx), %xmm6
328// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x32,0x00]
329vaeskeygenassist $0, (%rdx), %xmm6
330
331// CHECK: vaeskeygenassist $0, %xmm15, %xmm15
332// CHECK: encoding: [0xc4,0x43,0x79,0xdf,0xff,0x00]
333vaeskeygenassist $0, %xmm15, %xmm15
334
335// CHECK: vaeskeygenassist $0, %xmm6, %xmm6
336// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0xf6,0x00]
337vaeskeygenassist $0, %xmm6, %xmm6
338
339