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