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