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