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