xref: /llvm-project/llvm/test/MC/X86/apx/rex2-format-att.s (revision 3d35b94e3a9abcf5f703267c7653fd6ef39870b6)
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
2
3## AddRegFrm
4
5# CHECK: movl	$1, %r16d
6# CHECK: encoding: [0xd5,0x10,0xb8,0x01,0x00,0x00,0x00]
7         movl	$1, %r16d
8
9## MRMSrcReg
10
11# CHECK: movslq	%r16d, %rax
12# CHECK: encoding: [0xd5,0x18,0x63,0xc0]
13         movslq	%r16d, %rax
14
15# CHECK: movslq	%eax, %r16
16# CHECK: encoding: [0xd5,0x48,0x63,0xc0]
17         movslq	%eax, %r16
18
19# CHECK: movslq	%r16d, %r17
20# CHECK: encoding: [0xd5,0x58,0x63,0xc8]
21         movslq	%r16d, %r17
22
23# CHECK: popcntl %r16d, %r17d
24# CHECK: encoding: [0xf3,0xd5,0xd0,0xb8,0xc8]
25         popcntl %r16d, %r17d
26
27## MRMSrcRegCC
28
29# CHECK: cmovll	%r16d, %eax
30# CHECK: encoding: [0xd5,0x90,0x4c,0xc0]
31         cmovll	%r16d, %eax
32
33# CHECK: cmovll	%eax, %r16d
34# CHECK: encoding: [0xd5,0xc0,0x4c,0xc0]
35         cmovll	%eax, %r16d
36
37# CHECK: cmovll	%r16d, %r17d
38# CHECK: encoding: [0xd5,0xd0,0x4c,0xc8]
39         cmovll	%r16d, %r17d
40
41## MRMSrcMem
42
43# CHECK: imull	(%r16,%rax), %ebx
44# CHECK: encoding: [0xd5,0x90,0xaf,0x1c,0x00]
45         imull	(%r16,%rax), %ebx
46
47# CHECK: imull	(%rax,%r16), %ebx
48# CHECK: encoding: [0xd5,0xa0,0xaf,0x1c,0x00]
49         imull	(%rax,%r16), %ebx
50
51# CHECK: imull	(%rax,%rbx), %r16d
52# CHECK: encoding: [0xd5,0xc0,0xaf,0x04,0x18]
53         imull	(%rax,%rbx), %r16d
54
55# CHECK: imull	(%r16,%r17), %eax
56# CHECK: encoding: [0xd5,0xb0,0xaf,0x04,0x08]
57         imull	(%r16,%r17), %eax
58
59# CHECK: imull	(%rax,%r16), %r17d
60# CHECK: encoding: [0xd5,0xe0,0xaf,0x0c,0x00]
61         imull	(%rax,%r16), %r17d
62
63# CHECK: imull	(%r16,%rax), %r17d
64# CHECK: encoding: [0xd5,0xd0,0xaf,0x0c,0x00]
65         imull	(%r16,%rax), %r17d
66
67# CHECK: imull	(%r16,%r17), %r18d
68# CHECK: encoding: [0xd5,0xf0,0xaf,0x14,0x08]
69         imull	(%r16,%r17), %r18d
70
71## MRMSrcMemCC
72
73# CHECK: cmovll	(%r16,%rax), %ebx
74# CHECK: encoding: [0xd5,0x90,0x4c,0x1c,0x00]
75         cmovll	(%r16,%rax), %ebx
76
77# CHECK: cmovll	(%rax,%r16), %ebx
78# CHECK: encoding: [0xd5,0xa0,0x4c,0x1c,0x00]
79         cmovll	(%rax,%r16), %ebx
80
81# CHECK: cmovll	(%rax,%rbx), %r16d
82# CHECK: encoding: [0xd5,0xc0,0x4c,0x04,0x18]
83         cmovll	(%rax,%rbx), %r16d
84
85# CHECK: cmovll	(%r16,%r17), %eax
86# CHECK: encoding: [0xd5,0xb0,0x4c,0x04,0x08]
87         cmovll	(%r16,%r17), %eax
88
89# CHECK: cmovll	(%rax,%r16), %r17d
90# CHECK: encoding: [0xd5,0xe0,0x4c,0x0c,0x00]
91         cmovll	(%rax,%r16), %r17d
92
93# CHECK: cmovll	(%r16,%rax), %r17d
94# CHECK: encoding: [0xd5,0xd0,0x4c,0x0c,0x00]
95         cmovll	(%r16,%rax), %r17d
96
97# CHECK: cmovll	(%r16,%r17), %r18d
98# CHECK: encoding: [0xd5,0xf0,0x4c,0x14,0x08]
99         cmovll	(%r16,%r17), %r18d
100
101## MRMDestReg
102
103# CHECK: movl	%eax, %r16d
104# CHECK: encoding: [0xd5,0x10,0x89,0xc0]
105         movl	%eax, %r16d
106
107# CHECK: movl	%r16d, %eax
108# CHECK: encoding: [0xd5,0x40,0x89,0xc0]
109         movl	%r16d, %eax
110
111# CHECK: movl	%r16d, %r17d
112# CHECK: encoding: [0xd5,0x50,0x89,0xc1]
113         movl	%r16d, %r17d
114
115## MRMDestMem
116
117# CHECK: movl	%ebx, (%r16,%rax)
118# CHECK: encoding: [0xd5,0x10,0x89,0x1c,0x00]
119         movl	%ebx, (%r16,%rax)
120
121# CHECK: movl	%ebx, (%rax,%r16)
122# CHECK: encoding: [0xd5,0x20,0x89,0x1c,0x00]
123         movl	%ebx, (%rax,%r16)
124
125# CHECK: movl	%r16d, (%rax,%rbx)
126# CHECK: encoding: [0xd5,0x40,0x89,0x04,0x18]
127         movl	%r16d, (%rax,%rbx)
128
129# CHECK: movl	%eax, (%r16,%r17)
130# CHECK: encoding: [0xd5,0x30,0x89,0x04,0x08]
131         movl	%eax, (%r16,%r17)
132
133# CHECK: movl	%r17d, (%rax,%r16)
134# CHECK: encoding: [0xd5,0x60,0x89,0x0c,0x00]
135         movl	%r17d, (%rax,%r16)
136
137# CHECK: movl	%r17d, (%r16,%rax)
138# CHECK: encoding: [0xd5,0x50,0x89,0x0c,0x00]
139         movl	%r17d, (%r16,%rax)
140
141# CHECK: movl	%r18d, (%r16,%r17)
142# CHECK: encoding: [0xd5,0x70,0x89,0x14,0x08]
143         movl	%r18d, (%r16,%r17)
144
145# CHECK: movb    %bpl, (%r16,%r14)
146# CHECK: encoding: [0xd5,0x12,0x88,0x2c,0x30]
147         movb    %bpl, (%r16,%r14)
148
149## MRMXmCC
150
151# CHECK: sete	(%rax,%r16)
152# CHECK: encoding: [0xd5,0xa0,0x94,0x04,0x00]
153         sete	(%rax,%r16)
154
155# CHECK: sete	(%r16,%rax)
156# CHECK: encoding: [0xd5,0x90,0x94,0x04,0x00]
157         sete	(%r16,%rax)
158
159# CHECK: sete	(%r16,%r17)
160# CHECK: encoding: [0xd5,0xb0,0x94,0x04,0x08]
161         sete	(%r16,%r17)
162
163## MRMXm
164
165# CHECK: nopl	(%rax,%r16)
166# CHECK: encoding: [0xd5,0xa0,0x1f,0x04,0x00]
167         nopl	(%rax,%r16)
168
169# CHECK: nopl	(%r16,%rax)
170# CHECK: encoding: [0xd5,0x90,0x1f,0x04,0x00]
171         nopl	(%r16,%rax)
172
173# CHECK: nopl	(%r16,%r17)
174# CHECK: encoding: [0xd5,0xb0,0x1f,0x04,0x08]
175         nopl	(%r16,%r17)
176
177## MRM0m
178
179# CHECK: incl	(%rax,%r16)
180# CHECK: encoding: [0xd5,0x20,0xff,0x04,0x00]
181         incl	(%rax,%r16)
182
183# CHECK: incl	(%r16,%rax)
184# CHECK: encoding: [0xd5,0x10,0xff,0x04,0x00]
185         incl	(%r16,%rax)
186
187# CHECK: incl	(%r16,%r17)
188# CHECK: encoding: [0xd5,0x30,0xff,0x04,0x08]
189         incl	(%r16,%r17)
190
191## MRM1m
192
193# CHECK: decl	(%rax,%r16)
194# CHECK: encoding: [0xd5,0x20,0xff,0x0c,0x00]
195         decl	(%rax,%r16)
196
197# CHECK: decl	(%r16,%rax)
198# CHECK: encoding: [0xd5,0x10,0xff,0x0c,0x00]
199         decl	(%r16,%rax)
200
201# CHECK: decl	(%r16,%r17)
202# CHECK: encoding: [0xd5,0x30,0xff,0x0c,0x08]
203         decl	(%r16,%r17)
204
205## MRM2m
206
207# CHECK: notl	(%rax,%r16)
208# CHECK: encoding: [0xd5,0x20,0xf7,0x14,0x00]
209         notl	(%rax,%r16)
210
211# CHECK: notl	(%r16,%rax)
212# CHECK: encoding: [0xd5,0x10,0xf7,0x14,0x00]
213         notl	(%r16,%rax)
214
215# CHECK: notl	(%r16,%r17)
216# CHECK: encoding: [0xd5,0x30,0xf7,0x14,0x08]
217         notl	(%r16,%r17)
218
219## MRM3m
220
221# CHECK: negl	(%rax,%r16)
222# CHECK: encoding: [0xd5,0x20,0xf7,0x1c,0x00]
223         negl	(%rax,%r16)
224
225# CHECK: negl	(%r16,%rax)
226# CHECK: encoding: [0xd5,0x10,0xf7,0x1c,0x00]
227         negl	(%r16,%rax)
228
229# CHECK: negl	(%r16,%r17)
230# CHECK: encoding: [0xd5,0x30,0xf7,0x1c,0x08]
231         negl	(%r16,%r17)
232
233## MRM4m
234
235# CHECK: mull	(%rax,%r16)
236# CHECK: encoding: [0xd5,0x20,0xf7,0x24,0x00]
237         mull	(%rax,%r16)
238
239# CHECK: mull	(%r16,%rax)
240# CHECK: encoding: [0xd5,0x10,0xf7,0x24,0x00]
241         mull	(%r16,%rax)
242
243# CHECK: mull	(%r16,%r17)
244# CHECK: encoding: [0xd5,0x30,0xf7,0x24,0x08]
245         mull	(%r16,%r17)
246
247## MRM5m
248
249# CHECK: imull	(%rax,%r16)
250# CHECK: encoding: [0xd5,0x20,0xf7,0x2c,0x00]
251         imull	(%rax,%r16)
252
253# CHECK: imull	(%r16,%rax)
254# CHECK: encoding: [0xd5,0x10,0xf7,0x2c,0x00]
255         imull	(%r16,%rax)
256
257# CHECK: imull	(%r16,%r17)
258# CHECK: encoding: [0xd5,0x30,0xf7,0x2c,0x08]
259         imull	(%r16,%r17)
260
261## MRM6m
262
263# CHECK: divl	(%rax,%r16)
264# CHECK: encoding: [0xd5,0x20,0xf7,0x34,0x00]
265         divl	(%rax,%r16)
266
267# CHECK: divl	(%r16,%rax)
268# CHECK: encoding: [0xd5,0x10,0xf7,0x34,0x00]
269         divl	(%r16,%rax)
270
271# CHECK: divl	(%r16,%r17)
272# CHECK: encoding: [0xd5,0x30,0xf7,0x34,0x08]
273         divl	(%r16,%r17)
274
275## MRM7m
276
277# CHECK: idivl	(%rax,%r16)
278# CHECK: encoding: [0xd5,0x20,0xf7,0x3c,0x00]
279         idivl	(%rax,%r16)
280
281# CHECK: idivl	(%r16,%rax)
282# CHECK: encoding: [0xd5,0x10,0xf7,0x3c,0x00]
283         idivl	(%r16,%rax)
284
285# CHECK: idivl	(%r16,%r17)
286# CHECK: encoding: [0xd5,0x30,0xf7,0x3c,0x08]
287         idivl	(%r16,%r17)
288
289## MRMXrCC
290
291# CHECK: sete	%r16b
292# CHECK: encoding: [0xd5,0x90,0x94,0xc0]
293         sete	%r16b
294
295## MRMXr
296
297# CHECK: nopl	%r16d
298# CHECK: encoding: [0xd5,0x90,0x1f,0xc0]
299         nopl	%r16d
300
301## MRM0r
302
303# CHECK: incl	%r16d
304# CHECK: encoding: [0xd5,0x10,0xff,0xc0]
305         incl	%r16d
306
307## MRM1r
308
309# CHECK: decl	%r16d
310# CHECK: encoding: [0xd5,0x10,0xff,0xc8]
311         decl	%r16d
312
313## MRM2r
314
315# CHECK: notl	%r16d
316# CHECK: encoding: [0xd5,0x10,0xf7,0xd0]
317         notl	%r16d
318
319## MRM3r
320
321# CHECK: negl	%r16d
322# CHECK: encoding: [0xd5,0x10,0xf7,0xd8]
323         negl	%r16d
324
325## MRM4r
326
327# CHECK: mull	%r16d
328# CHECK: encoding: [0xd5,0x10,0xf7,0xe0]
329         mull	%r16d
330
331## MRM5r
332
333# CHECK: imull	%r16d
334# CHECK: encoding: [0xd5,0x10,0xf7,0xe8]
335         imull	%r16d
336
337## MRM6r
338
339# CHECK: divl	%r16d
340# CHECK: encoding: [0xd5,0x10,0xf7,0xf0]
341         divl	%r16d
342
343## MRM7r
344
345# CHECK: idivl	%r16d
346# CHECK: encoding: [0xd5,0x10,0xf7,0xf8]
347         idivl	%r16d
348