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