xref: /llvm-project/llvm/test/MC/Disassembler/X86/apx/bmi2.txt (revision d124b0224241f58847f06eb588685dc88bb627a0)
1# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
2# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
3
4## mulx
5
6# ATT:   mulxl	%ecx, %edx, %r10d
7# INTEL: mulx	r10d, edx, ecx
80x62,0x72,0x6f,0x08,0xf6,0xd1
9
10# ATT:   mulxq	%r9, %r15, %r11
11# INTEL: mulx	r11, r15, r9
120x62,0x52,0x87,0x08,0xf6,0xd9
13
14# ATT:   mulxl	123(%rax,%rbx,4), %ecx, %edx
15# INTEL: mulx	edx, ecx, dword ptr [rax + 4*rbx + 123]
160x62,0xf2,0x77,0x08,0xf6,0x54,0x98,0x7b
17
18# ATT:   mulxq	123(%rax,%rbx,4), %r9, %r15
19# INTEL: mulx	r15, r9, qword ptr [rax + 4*rbx + 123]
200x62,0x72,0xb7,0x08,0xf6,0x7c,0x98,0x7b
21
22# ATT:   mulxl	%r18d, %r22d, %r26d
23# INTEL: mulx	r26d, r22d, r18d
240x62,0x6a,0x4f,0x00,0xf6,0xd2
25
26# ATT:   mulxq	%r19, %r23, %r27
27# INTEL: mulx	r27, r23, r19
280x62,0x6a,0xc7,0x00,0xf6,0xdb
29
30# ATT:   mulxl	291(%r28,%r29,4), %r18d, %r22d
31# INTEL: mulx	r22d, r18d, dword ptr [r28 + 4*r29 + 291]
320x62,0x8a,0x6b,0x00,0xf6,0xb4,0xac,0x23,0x01,0x00,0x00
33
34# ATT:   mulxq	291(%r28,%r29,4), %r19, %r23
35# INTEL: mulx	r23, r19, qword ptr [r28 + 4*r29 + 291]
360x62,0x8a,0xe3,0x00,0xf6,0xbc,0xac,0x23,0x01,0x00,0x00
37
38## pdep
39
40# ATT:   pdepl	%ecx, %edx, %r10d
41# INTEL: pdep	r10d, edx, ecx
420x62,0x72,0x6f,0x08,0xf5,0xd1
43
44# ATT:   pdepq	%r9, %r15, %r11
45# INTEL: pdep	r11, r15, r9
460x62,0x52,0x87,0x08,0xf5,0xd9
47
48# ATT:   pdepl	123(%rax,%rbx,4), %ecx, %edx
49# INTEL: pdep	edx, ecx, dword ptr [rax + 4*rbx + 123]
500x62,0xf2,0x77,0x08,0xf5,0x54,0x98,0x7b
51
52# ATT:   pdepq	123(%rax,%rbx,4), %r9, %r15
53# INTEL: pdep	r15, r9, qword ptr [rax + 4*rbx + 123]
540x62,0x72,0xb7,0x08,0xf5,0x7c,0x98,0x7b
55
56# ATT:   pdepl	%r18d, %r22d, %r26d
57# INTEL: pdep	r26d, r22d, r18d
580x62,0x6a,0x4f,0x00,0xf5,0xd2
59
60# ATT:   pdepq	%r19, %r23, %r27
61# INTEL: pdep	r27, r23, r19
620x62,0x6a,0xc7,0x00,0xf5,0xdb
63
64# ATT:   pdepl	291(%r28,%r29,4), %r18d, %r22d
65# INTEL: pdep	r22d, r18d, dword ptr [r28 + 4*r29 + 291]
660x62,0x8a,0x6b,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00
67
68# ATT:   pdepq	291(%r28,%r29,4), %r19, %r23
69# INTEL: pdep	r23, r19, qword ptr [r28 + 4*r29 + 291]
700x62,0x8a,0xe3,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00
71
72## pext
73
74# ATT:   pextl	%ecx, %edx, %r10d
75# INTEL: pext	r10d, edx, ecx
760x62,0x72,0x6e,0x08,0xf5,0xd1
77
78# ATT:   pextq	%r9, %r15, %r11
79# INTEL: pext	r11, r15, r9
800x62,0x52,0x86,0x08,0xf5,0xd9
81
82# ATT:   pextl	123(%rax,%rbx,4), %ecx, %edx
83# INTEL: pext	edx, ecx, dword ptr [rax + 4*rbx + 123]
840x62,0xf2,0x76,0x08,0xf5,0x54,0x98,0x7b
85
86# ATT:   pextq	123(%rax,%rbx,4), %r9, %r15
87# INTEL: pext	r15, r9, qword ptr [rax + 4*rbx + 123]
880x62,0x72,0xb6,0x08,0xf5,0x7c,0x98,0x7b
89
90# ATT:   pextl	%r18d, %r22d, %r26d
91# INTEL: pext	r26d, r22d, r18d
920x62,0x6a,0x4e,0x00,0xf5,0xd2
93
94# ATT:   pextq	%r19, %r23, %r27
95# INTEL: pext	r27, r23, r19
960x62,0x6a,0xc6,0x00,0xf5,0xdb
97
98# ATT:   pextl	291(%r28,%r29,4), %r18d, %r22d
99# INTEL: pext	r22d, r18d, dword ptr [r28 + 4*r29 + 291]
1000x62,0x8a,0x6a,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00
101
102# ATT:   pextq	291(%r28,%r29,4), %r19, %r23
103# INTEL: pext	r23, r19, qword ptr [r28 + 4*r29 + 291]
1040x62,0x8a,0xe2,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00
105
106## rorx
107
108# ATT:   rorxl	$123, %ecx, %edx
109# INTEL: rorx	edx, ecx, 123
1100x62,0xf3,0x7f,0x08,0xf0,0xd1,0x7b
111
112# ATT:   rorxq	$123, %r9, %r15
113# INTEL: rorx	r15, r9, 123
1140x62,0x53,0xff,0x08,0xf0,0xf9,0x7b
115
116# ATT:   rorxl	$123, 123(%rax,%rbx,4), %ecx
117# INTEL: rorx	ecx, dword ptr [rax + 4*rbx + 123], 123
1180x62,0xf3,0x7f,0x08,0xf0,0x4c,0x98,0x7b,0x7b
119
120# ATT:   rorxq	$123, 123(%rax,%rbx,4), %r9
121# INTEL: rorx	r9, qword ptr [rax + 4*rbx + 123], 123
1220x62,0x73,0xff,0x08,0xf0,0x4c,0x98,0x7b,0x7b
123
124# ATT:   rorxl	$123, %r18d, %r22d
125# INTEL: rorx	r22d, r18d, 123
1260x62,0xeb,0x7f,0x08,0xf0,0xf2,0x7b
127
128# ATT:   rorxq	$123, %r19, %r23
129# INTEL: rorx	r23, r19, 123
1300x62,0xeb,0xff,0x08,0xf0,0xfb,0x7b
131
132# ATT:   rorxl	$123, 291(%r28,%r29,4), %r18d
133# INTEL: rorx	r18d, dword ptr [r28 + 4*r29 + 291], 123
1340x62,0x8b,0x7b,0x08,0xf0,0x94,0xac,0x23,0x01,0x00,0x00,0x7b
135
136# ATT:   rorxq	$123, 291(%r28,%r29,4), %r19
137# INTEL: rorx	r19, qword ptr [r28 + 4*r29 + 291], 123
1380x62,0x8b,0xfb,0x08,0xf0,0x9c,0xac,0x23,0x01,0x00,0x00,0x7b
139
140## sarx
141
142# ATT:   sarxl	%ecx, %edx, %r10d
143# INTEL: sarx	r10d, edx, ecx
1440x62,0x72,0x76,0x08,0xf7,0xd2
145
146# ATT:   sarxl	%ecx, 123(%rax,%rbx,4), %edx
147# INTEL: sarx	edx, dword ptr [rax + 4*rbx + 123], ecx
1480x62,0xf2,0x76,0x08,0xf7,0x54,0x98,0x7b
149
150# ATT:   sarxq	%r9, %r15, %r11
151# INTEL: sarx	r11, r15, r9
1520x62,0x52,0xb6,0x08,0xf7,0xdf
153
154# ATT:   sarxq	%r9, 123(%rax,%rbx,4), %r15
155# INTEL: sarx	r15, qword ptr [rax + 4*rbx + 123], r9
1560x62,0x72,0xb6,0x08,0xf7,0x7c,0x98,0x7b
157
158# ATT:   sarxl	%r18d, %r22d, %r26d
159# INTEL: sarx	r26d, r22d, r18d
1600x62,0x6a,0x6e,0x00,0xf7,0xd6
161
162# ATT:   sarxl	%r18d, 291(%r28,%r29,4), %r22d
163# INTEL: sarx	r22d, dword ptr [r28 + 4*r29 + 291], r18d
1640x62,0x8a,0x6a,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00
165
166# ATT:   sarxq	%r19, %r23, %r27
167# INTEL: sarx	r27, r23, r19
1680x62,0x6a,0xe6,0x00,0xf7,0xdf
169
170# ATT:   sarxq	%r19, 291(%r28,%r29,4), %r23
171# INTEL: sarx	r23, qword ptr [r28 + 4*r29 + 291], r19
1720x62,0x8a,0xe2,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00
173
174## shlx
175
176# ATT:   shlxl	%ecx, %edx, %r10d
177# INTEL: shlx	r10d, edx, ecx
1780x62,0x72,0x75,0x08,0xf7,0xd2
179
180# ATT:   shlxl	%ecx, 123(%rax,%rbx,4), %edx
181# INTEL: shlx	edx, dword ptr [rax + 4*rbx + 123], ecx
1820x62,0xf2,0x75,0x08,0xf7,0x54,0x98,0x7b
183
184# ATT:   shlxq	%r9, %r15, %r11
185# INTEL: shlx	r11, r15, r9
1860x62,0x52,0xb5,0x08,0xf7,0xdf
187
188# ATT:   shlxq	%r9, 123(%rax,%rbx,4), %r15
189# INTEL: shlx	r15, qword ptr [rax + 4*rbx + 123], r9
1900x62,0x72,0xb5,0x08,0xf7,0x7c,0x98,0x7b
191
192# ATT:   shlxl	%r18d, %r22d, %r26d
193# INTEL: shlx	r26d, r22d, r18d
1940x62,0x6a,0x6d,0x00,0xf7,0xd6
195
196# ATT:   shlxl	%r18d, 291(%r28,%r29,4), %r22d
197# INTEL: shlx	r22d, dword ptr [r28 + 4*r29 + 291], r18d
1980x62,0x8a,0x69,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00
199
200# ATT:   shlxq	%r19, %r23, %r27
201# INTEL: shlx	r27, r23, r19
2020x62,0x6a,0xe5,0x00,0xf7,0xdf
203
204# ATT:   shlxq	%r19, 291(%r28,%r29,4), %r23
205# INTEL: shlx	r23, qword ptr [r28 + 4*r29 + 291], r19
2060x62,0x8a,0xe1,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00
207
208## shrx
209
210# ATT:   shrxl	%ecx, %edx, %r10d
211# INTEL: shrx	r10d, edx, ecx
2120x62,0x72,0x77,0x08,0xf7,0xd2
213
214# ATT:   shrxl	%ecx, 123(%rax,%rbx,4), %edx
215# INTEL: shrx	edx, dword ptr [rax + 4*rbx + 123], ecx
2160x62,0xf2,0x77,0x08,0xf7,0x54,0x98,0x7b
217
218# ATT:   shrxq	%r9, %r15, %r11
219# INTEL: shrx	r11, r15, r9
2200x62,0x52,0xb7,0x08,0xf7,0xdf
221
222# ATT:   shrxq	%r9, 123(%rax,%rbx,4), %r15
223# INTEL: shrx	r15, qword ptr [rax + 4*rbx + 123], r9
2240x62,0x72,0xb7,0x08,0xf7,0x7c,0x98,0x7b
225
226# ATT:   shrxl	%r18d, %r22d, %r26d
227# INTEL: shrx	r26d, r22d, r18d
2280x62,0x6a,0x6f,0x00,0xf7,0xd6
229
230# ATT:   shrxl	%r18d, 291(%r28,%r29,4), %r22d
231# INTEL: shrx	r22d, dword ptr [r28 + 4*r29 + 291], r18d
2320x62,0x8a,0x6b,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00
233
234# ATT:   shrxq	%r19, %r23, %r27
235# INTEL: shrx	r27, r23, r19
2360x62,0x6a,0xe7,0x00,0xf7,0xdf
237
238# ATT:   shrxq	%r19, 291(%r28,%r29,4), %r23
239# INTEL: shrx	r23, qword ptr [r28 + 4*r29 + 291], r19
2400x62,0x8a,0xe3,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00
241