xref: /llvm-project/llvm/test/MC/X86/apx/rex2-bit-att.s (revision 58bb2d19560471ad94dea505f2283bad9d7c2850)
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-56: error:
5# ERROR-NOT: error:
6## R bit
7
8# CHECK: leal	(%rax), %r16d
9# CHECK: encoding: [0xd5,0x40,0x8d,0x00]
10         leal	(%rax), %r16d
11
12# CHECK: leal	(%rax), %r17d
13# CHECK: encoding: [0xd5,0x40,0x8d,0x08]
14         leal	(%rax), %r17d
15
16# CHECK: leal	(%rax), %r18d
17# CHECK: encoding: [0xd5,0x40,0x8d,0x10]
18         leal	(%rax), %r18d
19
20# CHECK: leal	(%rax), %r19d
21# CHECK: encoding: [0xd5,0x40,0x8d,0x18]
22         leal	(%rax), %r19d
23
24# CHECK: leal	(%rax), %r20d
25# CHECK: encoding: [0xd5,0x40,0x8d,0x20]
26         leal	(%rax), %r20d
27
28# CHECK: leal	(%rax), %r21d
29# CHECK: encoding: [0xd5,0x40,0x8d,0x28]
30         leal	(%rax), %r21d
31
32# CHECK: leal	(%rax), %r22d
33# CHECK: encoding: [0xd5,0x40,0x8d,0x30]
34         leal	(%rax), %r22d
35
36# CHECK: leal	(%rax), %r23d
37# CHECK: encoding: [0xd5,0x40,0x8d,0x38]
38         leal	(%rax), %r23d
39
40# CHECK: leal	(%rax), %r24d
41# CHECK: encoding: [0xd5,0x44,0x8d,0x00]
42         leal	(%rax), %r24d
43
44# CHECK: leal	(%rax), %r25d
45# CHECK: encoding: [0xd5,0x44,0x8d,0x08]
46         leal	(%rax), %r25d
47
48# CHECK: leal	(%rax), %r26d
49# CHECK: encoding: [0xd5,0x44,0x8d,0x10]
50         leal	(%rax), %r26d
51
52# CHECK: leal	(%rax), %r27d
53# CHECK: encoding: [0xd5,0x44,0x8d,0x18]
54         leal	(%rax), %r27d
55
56# CHECK: leal	(%rax), %r28d
57# CHECK: encoding: [0xd5,0x44,0x8d,0x20]
58         leal	(%rax), %r28d
59
60# CHECK: leal	(%rax), %r29d
61# CHECK: encoding: [0xd5,0x44,0x8d,0x28]
62         leal	(%rax), %r29d
63
64# CHECK: leal	(%rax), %r30d
65# CHECK: encoding: [0xd5,0x44,0x8d,0x30]
66         leal	(%rax), %r30d
67
68# CHECK: leal	(%rax), %r31d
69# CHECK: encoding: [0xd5,0x44,0x8d,0x38]
70         leal	(%rax), %r31d
71
72## X bit
73
74# CHECK: leal	(,%r16), %eax
75# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]
76         leal	(,%r16), %eax
77
78# CHECK: leal	(,%r17), %eax
79# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00]
80         leal	(,%r17), %eax
81
82# CHECK: leal	(,%r18), %eax
83# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x15,0x00,0x00,0x00,0x00]
84         leal	(,%r18), %eax
85
86# CHECK: leal	(,%r19), %eax
87# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00]
88         leal	(,%r19), %eax
89
90# CHECK: leal	(,%r20), %eax
91# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x25,0x00,0x00,0x00,0x00]
92         leal	(,%r20), %eax
93
94# CHECK: leal	(,%r21), %eax
95# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00]
96         leal	(,%r21), %eax
97
98# CHECK: leal	(,%r22), %eax
99# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x35,0x00,0x00,0x00,0x00]
100         leal	(,%r22), %eax
101
102# CHECK: leal	(,%r23), %eax
103# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]
104         leal	(,%r23), %eax
105
106# CHECK: leal	(,%r24), %eax
107# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]
108         leal	(,%r24), %eax
109
110# CHECK: leal	(,%r25), %eax
111# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00]
112         leal	(,%r25), %eax
113
114# CHECK: leal	(,%r26), %eax
115# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x15,0x00,0x00,0x00,0x00]
116         leal	(,%r26), %eax
117
118# CHECK: leal	(,%r27), %eax
119# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00]
120         leal	(,%r27), %eax
121
122# CHECK: leal	(,%r28), %eax
123# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x25,0x00,0x00,0x00,0x00]
124         leal	(,%r28), %eax
125
126# CHECK: leal	(,%r29), %eax
127# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00]
128         leal	(,%r29), %eax
129
130# CHECK: leal	(,%r30), %eax
131# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x35,0x00,0x00,0x00,0x00]
132         leal	(,%r30), %eax
133
134# CHECK: leal	(,%r31), %eax
135# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]
136         leal	(,%r31), %eax
137
138## B bit
139
140# CHECK: leal	(%r16), %eax
141# CHECK: encoding: [0xd5,0x10,0x8d,0x00]
142         leal	(%r16), %eax
143
144# CHECK: leal	(%r17), %eax
145# CHECK: encoding: [0xd5,0x10,0x8d,0x01]
146         leal	(%r17), %eax
147
148# CHECK: leal	(%r18), %eax
149# CHECK: encoding: [0xd5,0x10,0x8d,0x02]
150         leal	(%r18), %eax
151
152# CHECK: leal	(%r19), %eax
153# CHECK: encoding: [0xd5,0x10,0x8d,0x03]
154         leal	(%r19), %eax
155
156# CHECK: leal	(%r20), %eax
157# CHECK: encoding: [0xd5,0x10,0x8d,0x04,0x24]
158         leal	(%r20), %eax
159
160# CHECK: leal	(%r21), %eax
161# CHECK: encoding: [0xd5,0x10,0x8d,0x45,0x00]
162         leal	(%r21), %eax
163
164# CHECK: leal	(%r22), %eax
165# CHECK: encoding: [0xd5,0x10,0x8d,0x06]
166         leal	(%r22), %eax
167
168# CHECK: leal	(%r23), %eax
169# CHECK: encoding: [0xd5,0x10,0x8d,0x07]
170         leal	(%r23), %eax
171
172# CHECK: leal	(%r24), %eax
173# CHECK: encoding: [0xd5,0x11,0x8d,0x00]
174         leal	(%r24), %eax
175
176# CHECK: leal	(%r25), %eax
177# CHECK: encoding: [0xd5,0x11,0x8d,0x01]
178         leal	(%r25), %eax
179
180# CHECK: leal	(%r26), %eax
181# CHECK: encoding: [0xd5,0x11,0x8d,0x02]
182         leal	(%r26), %eax
183
184# CHECK: leal	(%r27), %eax
185# CHECK: encoding: [0xd5,0x11,0x8d,0x03]
186         leal	(%r27), %eax
187
188# CHECK: leal	(%r28), %eax
189# CHECK: encoding: [0xd5,0x11,0x8d,0x04,0x24]
190         leal	(%r28), %eax
191
192# CHECK: leal	(%r29), %eax
193# CHECK: encoding: [0xd5,0x11,0x8d,0x45,0x00]
194         leal	(%r29), %eax
195
196# CHECK: leal	(%r30), %eax
197# CHECK: encoding: [0xd5,0x11,0x8d,0x06]
198         leal	(%r30), %eax
199
200# CHECK: leal	(%r31), %eax
201# CHECK: encoding: [0xd5,0x11,0x8d,0x07]
202         leal	(%r31), %eax
203
204## SIB
205
206# CHECK: leal	1(%r20), %eax
207# CHECK: encoding: [0xd5,0x10,0x8d,0x44,0x24,0x01]
208         leal	1(%r20), %eax
209
210# CHECK: leal	1(%r28), %eax
211# CHECK: encoding: [0xd5,0x11,0x8d,0x44,0x24,0x01]
212         leal	1(%r28), %eax
213
214# CHECK: leal	129(%r20), %eax
215# CHECK: encoding: [0xd5,0x10,0x8d,0x84,0x24,0x81,0x00,0x00,0x00]
216         leal	129(%r20), %eax
217
218# CHECK: leal	129(%r28), %eax
219# CHECK: encoding: [0xd5,0x11,0x8d,0x84,0x24,0x81,0x00,0x00,0x00]
220         leal	129(%r28), %eax
221
222## W bit
223
224# CHECK: leaq	(%rax), %r16
225# CHECK: encoding: [0xd5,0x48,0x8d,0x00]
226         leaq	(%rax), %r16
227
228# CHECK: leaq	(%r16), %rax
229# CHECK: encoding: [0xd5,0x18,0x8d,0x00]
230         leaq	(%r16), %rax
231
232# CHECK: leaq	(,%r16), %rax
233# CHECK: encoding: [0xd5,0x28,0x8d,0x04,0x05,0x00,0x00,0x00,0x00]
234         leaq	(,%r16), %rax
235
236## M bit
237
238# CHECK: imull	%eax, %r16d
239# CHECK: encoding: [0xd5,0xc0,0xaf,0xc0]
240         imull	%eax, %r16d
241