xref: /llvm-project/llvm/test/MC/X86/apx/rol-att.s (revision 5c68c6d70fc204b0efdb2af95dfb328d616129e3)
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
2# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
3
4# ERROR-COUNT-94: error:
5# ERROR-NOT: error:
6# CHECK: {evex}	rolb	$123, %bl
7# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc0,0xc3,0x7b]
8         {evex}	rolb	$123, %bl
9# CHECK: {nf}	rolb	$123, %bl
10# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc0,0xc3,0x7b]
11         {nf}	rolb	$123, %bl
12# CHECK: rolb	$123, %bl, %bl
13# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xc0,0xc3,0x7b]
14         rolb	$123, %bl, %bl
15# CHECK: {nf}	rolb	$123, %bl, %bl
16# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xc0,0xc3,0x7b]
17         {nf}	rolb	$123, %bl, %bl
18# CHECK: {evex}	rolw	$123, %dx
19# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xc1,0xc2,0x7b]
20         {evex}	rolw	$123, %dx
21# CHECK: {nf}	rolw	$123, %dx
22# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xc1,0xc2,0x7b]
23         {nf}	rolw	$123, %dx
24# CHECK: rolw	$123, %dx, %dx
25# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xc1,0xc2,0x7b]
26         rolw	$123, %dx, %dx
27# CHECK: {nf}	rolw	$123, %dx, %dx
28# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xc1,0xc2,0x7b]
29         {nf}	rolw	$123, %dx, %dx
30# CHECK: {evex}	roll	$123, %ecx
31# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xc1,0xc1,0x7b]
32         {evex}	roll	$123, %ecx
33# CHECK: {nf}	roll	$123, %ecx
34# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xc1,0xc1,0x7b]
35         {nf}	roll	$123, %ecx
36# CHECK: roll	$123, %ecx, %ecx
37# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xc1,0xc1,0x7b]
38         roll	$123, %ecx, %ecx
39# CHECK: {nf}	roll	$123, %ecx, %ecx
40# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xc1,0xc1,0x7b]
41         {nf}	roll	$123, %ecx, %ecx
42# CHECK: {evex}	rolq	$123, %r9
43# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0xc1,0x7b]
44         {evex}	rolq	$123, %r9
45# CHECK: {nf}	rolq	$123, %r9
46# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0xc1,0x7b]
47         {nf}	rolq	$123, %r9
48# CHECK: rolq	$123, %r9, %r9
49# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0xc1,0x7b]
50         rolq	$123, %r9, %r9
51# CHECK: {nf}	rolq	$123, %r9, %r9
52# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0xc1,0x7b]
53         {nf}	rolq	$123, %r9, %r9
54# CHECK: {evex}	rolb	$123, 291(%r8,%rax,4)
55# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
56         {evex}	rolb	$123, 291(%r8,%rax,4)
57# CHECK: {nf}	rolb	$123, 291(%r8,%rax,4)
58# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
59         {nf}	rolb	$123, 291(%r8,%rax,4)
60# CHECK: rolb	$123, 291(%r8,%rax,4), %bl
61# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
62         rolb	$123, 291(%r8,%rax,4), %bl
63# CHECK: {nf}	rolb	$123, 291(%r8,%rax,4), %bl
64# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xc0,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
65         {nf}	rolb	$123, 291(%r8,%rax,4), %bl
66# CHECK: {evex}	rolw	$123, 291(%r8,%rax,4)
67# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
68         {evex}	rolw	$123, 291(%r8,%rax,4)
69# CHECK: {nf}	rolw	$123, 291(%r8,%rax,4)
70# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
71         {nf}	rolw	$123, 291(%r8,%rax,4)
72# CHECK: rolw	$123, 291(%r8,%rax,4), %dx
73# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
74         rolw	$123, 291(%r8,%rax,4), %dx
75# CHECK: {nf}	rolw	$123, 291(%r8,%rax,4), %dx
76# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
77         {nf}	rolw	$123, 291(%r8,%rax,4), %dx
78# CHECK: {evex}	roll	$123, 291(%r8,%rax,4)
79# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
80         {evex}	roll	$123, 291(%r8,%rax,4)
81# CHECK: {nf}	roll	$123, 291(%r8,%rax,4)
82# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
83         {nf}	roll	$123, 291(%r8,%rax,4)
84# CHECK: roll	$123, 291(%r8,%rax,4), %ecx
85# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
86         roll	$123, 291(%r8,%rax,4), %ecx
87# CHECK: {nf}	roll	$123, 291(%r8,%rax,4), %ecx
88# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
89         {nf}	roll	$123, 291(%r8,%rax,4), %ecx
90# CHECK: {evex}	rolq	$123, 291(%r8,%rax,4)
91# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
92         {evex}	rolq	$123, 291(%r8,%rax,4)
93# CHECK: {nf}	rolq	$123, 291(%r8,%rax,4)
94# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
95         {nf}	rolq	$123, 291(%r8,%rax,4)
96# CHECK: rolq	$123, 291(%r8,%rax,4), %r9
97# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
98         rolq	$123, 291(%r8,%rax,4), %r9
99# CHECK: {nf}	rolq	$123, 291(%r8,%rax,4), %r9
100# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xc1,0x84,0x80,0x23,0x01,0x00,0x00,0x7b]
101         {nf}	rolq	$123, 291(%r8,%rax,4), %r9
102# CHECK: {evex}	rolb	%bl
103# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd0,0xc3]
104         {evex}	rolb	%bl
105# CHECK: {nf}	rolb	%bl
106# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd0,0xc3]
107         {nf}	rolb	%bl
108# CHECK: {evex}	rolb	%cl, %bl
109# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd2,0xc3]
110         {evex}	rolb	%cl, %bl
111# CHECK: {nf}	rolb	%cl, %bl
112# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd2,0xc3]
113         {nf}	rolb	%cl, %bl
114# CHECK: rolb	%cl, %bl, %bl
115# CHECK: encoding: [0x62,0xf4,0x64,0x18,0xd2,0xc3]
116         rolb	%cl, %bl, %bl
117# CHECK: {nf}	rolb	%cl, %bl, %bl
118# CHECK: encoding: [0x62,0xf4,0x64,0x1c,0xd2,0xc3]
119         {nf}	rolb	%cl, %bl, %bl
120# CHECK: {evex}	rolw	%cl, %dx
121# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd3,0xc2]
122         {evex}	rolw	%cl, %dx
123# CHECK: {nf}	rolw	%cl, %dx
124# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd3,0xc2]
125         {nf}	rolw	%cl, %dx
126# CHECK: rolw	%cl, %dx, %dx
127# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd3,0xc2]
128         rolw	%cl, %dx, %dx
129# CHECK: {nf}	rolw	%cl, %dx, %dx
130# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd3,0xc2]
131         {nf}	rolw	%cl, %dx, %dx
132# CHECK: {evex}	roll	%cl, %ecx
133# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd3,0xc1]
134         {evex}	roll	%cl, %ecx
135# CHECK: {nf}	roll	%cl, %ecx
136# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd3,0xc1]
137         {nf}	roll	%cl, %ecx
138# CHECK: roll	%cl, %ecx, %ecx
139# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd3,0xc1]
140         roll	%cl, %ecx, %ecx
141# CHECK: {nf}	roll	%cl, %ecx, %ecx
142# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd3,0xc1]
143         {nf}	roll	%cl, %ecx, %ecx
144# CHECK: {evex}	rolq	%cl, %r9
145# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0xc1]
146         {evex}	rolq	%cl, %r9
147# CHECK: {nf}	rolq	%cl, %r9
148# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0xc1]
149         {nf}	rolq	%cl, %r9
150# CHECK: rolq	%cl, %r9, %r9
151# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0xc1]
152         rolq	%cl, %r9, %r9
153# CHECK: {nf}	rolq	%cl, %r9, %r9
154# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0xc1]
155         {nf}	rolq	%cl, %r9, %r9
156# CHECK: {evex}	rolb	%cl, 291(%r8,%rax,4)
157# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd2,0x84,0x80,0x23,0x01,0x00,0x00]
158         {evex}	rolb	%cl, 291(%r8,%rax,4)
159# CHECK: {nf}	rolb	%cl, 291(%r8,%rax,4)
160# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00]
161         {nf}	rolb	%cl, 291(%r8,%rax,4)
162# CHECK: rolb	%cl, 291(%r8,%rax,4), %bl
163# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd2,0x84,0x80,0x23,0x01,0x00,0x00]
164         rolb	%cl, 291(%r8,%rax,4), %bl
165# CHECK: {nf}	rolb	%cl, 291(%r8,%rax,4), %bl
166# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd2,0x84,0x80,0x23,0x01,0x00,0x00]
167         {nf}	rolb	%cl, 291(%r8,%rax,4), %bl
168# CHECK: {evex}	rolw	%cl, 291(%r8,%rax,4)
169# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
170         {evex}	rolw	%cl, 291(%r8,%rax,4)
171# CHECK: {nf}	rolw	%cl, 291(%r8,%rax,4)
172# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
173         {nf}	rolw	%cl, 291(%r8,%rax,4)
174# CHECK: rolw	%cl, 291(%r8,%rax,4), %dx
175# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
176         rolw	%cl, 291(%r8,%rax,4), %dx
177# CHECK: {nf}	rolw	%cl, 291(%r8,%rax,4), %dx
178# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
179         {nf}	rolw	%cl, 291(%r8,%rax,4), %dx
180# CHECK: {evex}	roll	%cl, 291(%r8,%rax,4)
181# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
182         {evex}	roll	%cl, 291(%r8,%rax,4)
183# CHECK: {nf}	roll	%cl, 291(%r8,%rax,4)
184# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
185         {nf}	roll	%cl, 291(%r8,%rax,4)
186# CHECK: roll	%cl, 291(%r8,%rax,4), %ecx
187# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
188         roll	%cl, 291(%r8,%rax,4), %ecx
189# CHECK: {nf}	roll	%cl, 291(%r8,%rax,4), %ecx
190# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
191         {nf}	roll	%cl, 291(%r8,%rax,4), %ecx
192# CHECK: {evex}	rolq	%cl, 291(%r8,%rax,4)
193# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
194         {evex}	rolq	%cl, 291(%r8,%rax,4)
195# CHECK: {nf}	rolq	%cl, 291(%r8,%rax,4)
196# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
197         {nf}	rolq	%cl, 291(%r8,%rax,4)
198# CHECK: rolq	%cl, 291(%r8,%rax,4), %r9
199# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
200         rolq	%cl, 291(%r8,%rax,4), %r9
201# CHECK: {nf}	rolq	%cl, 291(%r8,%rax,4), %r9
202# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd3,0x84,0x80,0x23,0x01,0x00,0x00]
203         {nf}	rolq	%cl, 291(%r8,%rax,4), %r9
204# CHECK: {evex}	rolw	%dx
205# CHECK: encoding: [0x62,0xf4,0x7d,0x08,0xd1,0xc2]
206         {evex}	rolw	%dx
207# CHECK: {nf}	rolw	%dx
208# CHECK: encoding: [0x62,0xf4,0x7d,0x0c,0xd1,0xc2]
209         {nf}	rolw	%dx
210# CHECK: rolw	%dx, %dx
211# CHECK: encoding: [0x62,0xf4,0x6d,0x18,0xd1,0xc2]
212         rolw	%dx, %dx
213# CHECK: {nf}	rolw	%dx, %dx
214# CHECK: encoding: [0x62,0xf4,0x6d,0x1c,0xd1,0xc2]
215         {nf}	rolw	%dx, %dx
216# CHECK: {evex}	roll	%ecx
217# CHECK: encoding: [0x62,0xf4,0x7c,0x08,0xd1,0xc1]
218         {evex}	roll	%ecx
219# CHECK: {nf}	roll	%ecx
220# CHECK: encoding: [0x62,0xf4,0x7c,0x0c,0xd1,0xc1]
221         {nf}	roll	%ecx
222# CHECK: roll	%ecx, %ecx
223# CHECK: encoding: [0x62,0xf4,0x74,0x18,0xd1,0xc1]
224         roll	%ecx, %ecx
225# CHECK: {nf}	roll	%ecx, %ecx
226# CHECK: encoding: [0x62,0xf4,0x74,0x1c,0xd1,0xc1]
227         {nf}	roll	%ecx, %ecx
228# CHECK: {evex}	rolq	%r9
229# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0xc1]
230         {evex}	rolq	%r9
231# CHECK: {nf}	rolq	%r9
232# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0xc1]
233         {nf}	rolq	%r9
234# CHECK: rolq	%r9, %r9
235# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0xc1]
236         rolq	%r9, %r9
237# CHECK: {nf}	rolq	%r9, %r9
238# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0xc1]
239         {nf}	rolq	%r9, %r9
240# CHECK: {evex}	rolb	291(%r8,%rax,4)
241# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd0,0x84,0x80,0x23,0x01,0x00,0x00]
242         {evex}	rolb	291(%r8,%rax,4)
243# CHECK: {nf}	rolb	291(%r8,%rax,4)
244# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00]
245         {nf}	rolb	291(%r8,%rax,4)
246# CHECK: rolb	291(%r8,%rax,4), %bl
247# CHECK: encoding: [0x62,0xd4,0x64,0x18,0xd0,0x84,0x80,0x23,0x01,0x00,0x00]
248         rolb	291(%r8,%rax,4), %bl
249# CHECK: {nf}	rolb	291(%r8,%rax,4), %bl
250# CHECK: encoding: [0x62,0xd4,0x64,0x1c,0xd0,0x84,0x80,0x23,0x01,0x00,0x00]
251         {nf}	rolb	291(%r8,%rax,4), %bl
252# CHECK: {evex}	rolw	291(%r8,%rax,4)
253# CHECK: encoding: [0x62,0xd4,0x7d,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
254         {evex}	rolw	291(%r8,%rax,4)
255# CHECK: {nf}	rolw	291(%r8,%rax,4)
256# CHECK: encoding: [0x62,0xd4,0x7d,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
257         {nf}	rolw	291(%r8,%rax,4)
258# CHECK: rolw	291(%r8,%rax,4), %dx
259# CHECK: encoding: [0x62,0xd4,0x6d,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
260         rolw	291(%r8,%rax,4), %dx
261# CHECK: {nf}	rolw	291(%r8,%rax,4), %dx
262# CHECK: encoding: [0x62,0xd4,0x6d,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
263         {nf}	rolw	291(%r8,%rax,4), %dx
264# CHECK: {evex}	roll	291(%r8,%rax,4)
265# CHECK: encoding: [0x62,0xd4,0x7c,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
266         {evex}	roll	291(%r8,%rax,4)
267# CHECK: {nf}	roll	291(%r8,%rax,4)
268# CHECK: encoding: [0x62,0xd4,0x7c,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
269         {nf}	roll	291(%r8,%rax,4)
270# CHECK: roll	291(%r8,%rax,4), %ecx
271# CHECK: encoding: [0x62,0xd4,0x74,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
272         roll	291(%r8,%rax,4), %ecx
273# CHECK: {nf}	roll	291(%r8,%rax,4), %ecx
274# CHECK: encoding: [0x62,0xd4,0x74,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
275         {nf}	roll	291(%r8,%rax,4), %ecx
276# CHECK: {evex}	rolq	291(%r8,%rax,4)
277# CHECK: encoding: [0x62,0xd4,0xfc,0x08,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
278         {evex}	rolq	291(%r8,%rax,4)
279# CHECK: {nf}	rolq	291(%r8,%rax,4)
280# CHECK: encoding: [0x62,0xd4,0xfc,0x0c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
281         {nf}	rolq	291(%r8,%rax,4)
282# CHECK: rolq	291(%r8,%rax,4), %r9
283# CHECK: encoding: [0x62,0xd4,0xb4,0x18,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
284         rolq	291(%r8,%rax,4), %r9
285# CHECK: {nf}	rolq	291(%r8,%rax,4), %r9
286# CHECK: encoding: [0x62,0xd4,0xb4,0x1c,0xd1,0x84,0x80,0x23,0x01,0x00,0x00]
287         {nf}	rolq	291(%r8,%rax,4), %r9
288