1 # RUN: llvm-mc --disassemble %s -triple=i386-unknown-unknown | FileCheck %s --check-prefixes=ATT
2 # RUN: llvm-mc --disassemble %s -triple=i386-unknown-unknown --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
4 # ATT: vpdpwsud %ymm4, %ymm3, %ymm2
5 # INTEL: vpdpwsud ymm2, ymm3, ymm4
6 0xc4,0xe2,0x66,0xd2,0xd4
8 # ATT: vpdpwsud %xmm4, %xmm3, %xmm2
9 # INTEL: vpdpwsud xmm2, xmm3, xmm4
10 0xc4,0xe2,0x62,0xd2,0xd4
12 # ATT: vpdpwsud 268435456(%esp,%esi,8), %ymm3, %ymm2
13 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
14 0xc4,0xe2,0x66,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
16 # ATT: vpdpwsud 291(%edi,%eax,4), %ymm3, %ymm2
17 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
18 0xc4,0xe2,0x66,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
20 # ATT: vpdpwsud (%eax), %ymm3, %ymm2
21 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [eax]
22 0xc4,0xe2,0x66,0xd2,0x10
24 # ATT: vpdpwsud -1024(,%ebp,2), %ymm3, %ymm2
25 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [2*ebp - 1024]
26 0xc4,0xe2,0x66,0xd2,0x14,0x6d,0x00,0xfc,0xff,0xff
28 # ATT: vpdpwsud 4064(%ecx), %ymm3, %ymm2
29 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [ecx + 4064]
30 0xc4,0xe2,0x66,0xd2,0x91,0xe0,0x0f,0x00,0x00
32 # ATT: vpdpwsud -4096(%edx), %ymm3, %ymm2
33 # INTEL: vpdpwsud ymm2, ymm3, ymmword ptr [edx - 4096]
34 0xc4,0xe2,0x66,0xd2,0x92,0x00,0xf0,0xff,0xff
36 # ATT: vpdpwsud 268435456(%esp,%esi,8), %xmm3, %xmm2
37 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
38 0xc4,0xe2,0x62,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
40 # ATT: vpdpwsud 291(%edi,%eax,4), %xmm3, %xmm2
41 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
42 0xc4,0xe2,0x62,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
44 # ATT: vpdpwsud (%eax), %xmm3, %xmm2
45 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [eax]
46 0xc4,0xe2,0x62,0xd2,0x10
48 # ATT: vpdpwsud -512(,%ebp,2), %xmm3, %xmm2
49 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [2*ebp - 512]
50 0xc4,0xe2,0x62,0xd2,0x14,0x6d,0x00,0xfe,0xff,0xff
52 # ATT: vpdpwsud 2032(%ecx), %xmm3, %xmm2
53 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [ecx + 2032]
54 0xc4,0xe2,0x62,0xd2,0x91,0xf0,0x07,0x00,0x00
56 # ATT: vpdpwsud -2048(%edx), %xmm3, %xmm2
57 # INTEL: vpdpwsud xmm2, xmm3, xmmword ptr [edx - 2048]
58 0xc4,0xe2,0x62,0xd2,0x92,0x00,0xf8,0xff,0xff
60 # ATT: vpdpwsuds %ymm4, %ymm3, %ymm2
61 # INTEL: vpdpwsuds ymm2, ymm3, ymm4
62 0xc4,0xe2,0x66,0xd3,0xd4
64 # ATT: vpdpwsuds %xmm4, %xmm3, %xmm2
65 # INTEL: vpdpwsuds xmm2, xmm3, xmm4
66 0xc4,0xe2,0x62,0xd3,0xd4
68 # ATT: vpdpwsuds 268435456(%esp,%esi,8), %ymm3, %ymm2
69 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
70 0xc4,0xe2,0x66,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
72 # ATT: vpdpwsuds 291(%edi,%eax,4), %ymm3, %ymm2
73 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
74 0xc4,0xe2,0x66,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
76 # ATT: vpdpwsuds (%eax), %ymm3, %ymm2
77 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [eax]
78 0xc4,0xe2,0x66,0xd3,0x10
80 # ATT: vpdpwsuds -1024(,%ebp,2), %ymm3, %ymm2
81 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [2*ebp - 1024]
82 0xc4,0xe2,0x66,0xd3,0x14,0x6d,0x00,0xfc,0xff,0xff
84 # ATT: vpdpwsuds 4064(%ecx), %ymm3, %ymm2
85 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [ecx + 4064]
86 0xc4,0xe2,0x66,0xd3,0x91,0xe0,0x0f,0x00,0x00
88 # ATT: vpdpwsuds -4096(%edx), %ymm3, %ymm2
89 # INTEL: vpdpwsuds ymm2, ymm3, ymmword ptr [edx - 4096]
90 0xc4,0xe2,0x66,0xd3,0x92,0x00,0xf0,0xff,0xff
92 # ATT: vpdpwsuds 268435456(%esp,%esi,8), %xmm3, %xmm2
93 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
94 0xc4,0xe2,0x62,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
96 # ATT: vpdpwsuds 291(%edi,%eax,4), %xmm3, %xmm2
97 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
98 0xc4,0xe2,0x62,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
100 # ATT: vpdpwsuds (%eax), %xmm3, %xmm2
101 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [eax]
102 0xc4,0xe2,0x62,0xd3,0x10
104 # ATT: vpdpwsuds -512(,%ebp,2), %xmm3, %xmm2
105 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [2*ebp - 512]
106 0xc4,0xe2,0x62,0xd3,0x14,0x6d,0x00,0xfe,0xff,0xff
108 # ATT: vpdpwsuds 2032(%ecx), %xmm3, %xmm2
109 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [ecx + 2032]
110 0xc4,0xe2,0x62,0xd3,0x91,0xf0,0x07,0x00,0x00
112 # ATT: vpdpwsuds -2048(%edx), %xmm3, %xmm2
113 # INTEL: vpdpwsuds xmm2, xmm3, xmmword ptr [edx - 2048]
114 0xc4,0xe2,0x62,0xd3,0x92,0x00,0xf8,0xff,0xff
116 # ATT: vpdpwusd %ymm4, %ymm3, %ymm2
117 # INTEL: vpdpwusd ymm2, ymm3, ymm4
118 0xc4,0xe2,0x65,0xd2,0xd4
120 # ATT: vpdpwusd %xmm4, %xmm3, %xmm2
121 # INTEL: vpdpwusd xmm2, xmm3, xmm4
122 0xc4,0xe2,0x61,0xd2,0xd4
124 # ATT: vpdpwusd 268435456(%esp,%esi,8), %ymm3, %ymm2
125 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
126 0xc4,0xe2,0x65,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
128 # ATT: vpdpwusd 291(%edi,%eax,4), %ymm3, %ymm2
129 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
130 0xc4,0xe2,0x65,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
132 # ATT: vpdpwusd (%eax), %ymm3, %ymm2
133 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [eax]
134 0xc4,0xe2,0x65,0xd2,0x10
136 # ATT: vpdpwusd -1024(,%ebp,2), %ymm3, %ymm2
137 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [2*ebp - 1024]
138 0xc4,0xe2,0x65,0xd2,0x14,0x6d,0x00,0xfc,0xff,0xff
140 # ATT: vpdpwusd 4064(%ecx), %ymm3, %ymm2
141 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [ecx + 4064]
142 0xc4,0xe2,0x65,0xd2,0x91,0xe0,0x0f,0x00,0x00
144 # ATT: vpdpwusd -4096(%edx), %ymm3, %ymm2
145 # INTEL: vpdpwusd ymm2, ymm3, ymmword ptr [edx - 4096]
146 0xc4,0xe2,0x65,0xd2,0x92,0x00,0xf0,0xff,0xff
148 # ATT: vpdpwusd 268435456(%esp,%esi,8), %xmm3, %xmm2
149 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
150 0xc4,0xe2,0x61,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
152 # ATT: vpdpwusd 291(%edi,%eax,4), %xmm3, %xmm2
153 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
154 0xc4,0xe2,0x61,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
156 # ATT: vpdpwusd (%eax), %xmm3, %xmm2
157 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [eax]
158 0xc4,0xe2,0x61,0xd2,0x10
160 # ATT: vpdpwusd -512(,%ebp,2), %xmm3, %xmm2
161 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [2*ebp - 512]
162 0xc4,0xe2,0x61,0xd2,0x14,0x6d,0x00,0xfe,0xff,0xff
164 # ATT: vpdpwusd 2032(%ecx), %xmm3, %xmm2
165 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [ecx + 2032]
166 0xc4,0xe2,0x61,0xd2,0x91,0xf0,0x07,0x00,0x00
168 # ATT: vpdpwusd -2048(%edx), %xmm3, %xmm2
169 # INTEL: vpdpwusd xmm2, xmm3, xmmword ptr [edx - 2048]
170 0xc4,0xe2,0x61,0xd2,0x92,0x00,0xf8,0xff,0xff
172 # ATT: vpdpwusds %ymm4, %ymm3, %ymm2
173 # INTEL: vpdpwusds ymm2, ymm3, ymm4
174 0xc4,0xe2,0x65,0xd3,0xd4
176 # ATT: vpdpwusds %xmm4, %xmm3, %xmm2
177 # INTEL: vpdpwusds xmm2, xmm3, xmm4
178 0xc4,0xe2,0x61,0xd3,0xd4
180 # ATT: vpdpwusds 268435456(%esp,%esi,8), %ymm3, %ymm2
181 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
182 0xc4,0xe2,0x65,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
184 # ATT: vpdpwusds 291(%edi,%eax,4), %ymm3, %ymm2
185 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
186 0xc4,0xe2,0x65,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
188 # ATT: vpdpwusds (%eax), %ymm3, %ymm2
189 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [eax]
190 0xc4,0xe2,0x65,0xd3,0x10
192 # ATT: vpdpwusds -1024(,%ebp,2), %ymm3, %ymm2
193 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [2*ebp - 1024]
194 0xc4,0xe2,0x65,0xd3,0x14,0x6d,0x00,0xfc,0xff,0xff
196 # ATT: vpdpwusds 4064(%ecx), %ymm3, %ymm2
197 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [ecx + 4064]
198 0xc4,0xe2,0x65,0xd3,0x91,0xe0,0x0f,0x00,0x00
200 # ATT: vpdpwusds -4096(%edx), %ymm3, %ymm2
201 # INTEL: vpdpwusds ymm2, ymm3, ymmword ptr [edx - 4096]
202 0xc4,0xe2,0x65,0xd3,0x92,0x00,0xf0,0xff,0xff
204 # ATT: vpdpwusds 268435456(%esp,%esi,8), %xmm3, %xmm2
205 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
206 0xc4,0xe2,0x61,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
208 # ATT: vpdpwusds 291(%edi,%eax,4), %xmm3, %xmm2
209 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
210 0xc4,0xe2,0x61,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
212 # ATT: vpdpwusds (%eax), %xmm3, %xmm2
213 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [eax]
214 0xc4,0xe2,0x61,0xd3,0x10
216 # ATT: vpdpwusds -512(,%ebp,2), %xmm3, %xmm2
217 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [2*ebp - 512]
218 0xc4,0xe2,0x61,0xd3,0x14,0x6d,0x00,0xfe,0xff,0xff
220 # ATT: vpdpwusds 2032(%ecx), %xmm3, %xmm2
221 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [ecx + 2032]
222 0xc4,0xe2,0x61,0xd3,0x91,0xf0,0x07,0x00,0x00
224 # ATT: vpdpwusds -2048(%edx), %xmm3, %xmm2
225 # INTEL: vpdpwusds xmm2, xmm3, xmmword ptr [edx - 2048]
226 0xc4,0xe2,0x61,0xd3,0x92,0x00,0xf8,0xff,0xff
228 # ATT: vpdpwuud %ymm4, %ymm3, %ymm2
229 # INTEL: vpdpwuud ymm2, ymm3, ymm4
230 0xc4,0xe2,0x64,0xd2,0xd4
232 # ATT: vpdpwuud %xmm4, %xmm3, %xmm2
233 # INTEL: vpdpwuud xmm2, xmm3, xmm4
234 0xc4,0xe2,0x60,0xd2,0xd4
236 # ATT: vpdpwuud 268435456(%esp,%esi,8), %ymm3, %ymm2
237 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
238 0xc4,0xe2,0x64,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
240 # ATT: vpdpwuud 291(%edi,%eax,4), %ymm3, %ymm2
241 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
242 0xc4,0xe2,0x64,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
244 # ATT: vpdpwuud (%eax), %ymm3, %ymm2
245 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [eax]
246 0xc4,0xe2,0x64,0xd2,0x10
248 # ATT: vpdpwuud -1024(,%ebp,2), %ymm3, %ymm2
249 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [2*ebp - 1024]
250 0xc4,0xe2,0x64,0xd2,0x14,0x6d,0x00,0xfc,0xff,0xff
252 # ATT: vpdpwuud 4064(%ecx), %ymm3, %ymm2
253 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [ecx + 4064]
254 0xc4,0xe2,0x64,0xd2,0x91,0xe0,0x0f,0x00,0x00
256 # ATT: vpdpwuud -4096(%edx), %ymm3, %ymm2
257 # INTEL: vpdpwuud ymm2, ymm3, ymmword ptr [edx - 4096]
258 0xc4,0xe2,0x64,0xd2,0x92,0x00,0xf0,0xff,0xff
260 # ATT: vpdpwuud 268435456(%esp,%esi,8), %xmm3, %xmm2
261 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
262 0xc4,0xe2,0x60,0xd2,0x94,0xf4,0x00,0x00,0x00,0x10
264 # ATT: vpdpwuud 291(%edi,%eax,4), %xmm3, %xmm2
265 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
266 0xc4,0xe2,0x60,0xd2,0x94,0x87,0x23,0x01,0x00,0x00
268 # ATT: vpdpwuud (%eax), %xmm3, %xmm2
269 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [eax]
270 0xc4,0xe2,0x60,0xd2,0x10
272 # ATT: vpdpwuud -512(,%ebp,2), %xmm3, %xmm2
273 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [2*ebp - 512]
274 0xc4,0xe2,0x60,0xd2,0x14,0x6d,0x00,0xfe,0xff,0xff
276 # ATT: vpdpwuud 2032(%ecx), %xmm3, %xmm2
277 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [ecx + 2032]
278 0xc4,0xe2,0x60,0xd2,0x91,0xf0,0x07,0x00,0x00
280 # ATT: vpdpwuud -2048(%edx), %xmm3, %xmm2
281 # INTEL: vpdpwuud xmm2, xmm3, xmmword ptr [edx - 2048]
282 0xc4,0xe2,0x60,0xd2,0x92,0x00,0xf8,0xff,0xff
284 # ATT: vpdpwuuds %ymm4, %ymm3, %ymm2
285 # INTEL: vpdpwuuds ymm2, ymm3, ymm4
286 0xc4,0xe2,0x64,0xd3,0xd4
288 # ATT: vpdpwuuds %xmm4, %xmm3, %xmm2
289 # INTEL: vpdpwuuds xmm2, xmm3, xmm4
290 0xc4,0xe2,0x60,0xd3,0xd4
292 # ATT: vpdpwuuds 268435456(%esp,%esi,8), %ymm3, %ymm2
293 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [esp + 8*esi + 268435456]
294 0xc4,0xe2,0x64,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
296 # ATT: vpdpwuuds 291(%edi,%eax,4), %ymm3, %ymm2
297 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [edi + 4*eax + 291]
298 0xc4,0xe2,0x64,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
300 # ATT: vpdpwuuds (%eax), %ymm3, %ymm2
301 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [eax]
302 0xc4,0xe2,0x64,0xd3,0x10
304 # ATT: vpdpwuuds -1024(,%ebp,2), %ymm3, %ymm2
305 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [2*ebp - 1024]
306 0xc4,0xe2,0x64,0xd3,0x14,0x6d,0x00,0xfc,0xff,0xff
308 # ATT: vpdpwuuds 4064(%ecx), %ymm3, %ymm2
309 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [ecx + 4064]
310 0xc4,0xe2,0x64,0xd3,0x91,0xe0,0x0f,0x00,0x00
312 # ATT: vpdpwuuds -4096(%edx), %ymm3, %ymm2
313 # INTEL: vpdpwuuds ymm2, ymm3, ymmword ptr [edx - 4096]
314 0xc4,0xe2,0x64,0xd3,0x92,0x00,0xf0,0xff,0xff
316 # ATT: vpdpwuuds 268435456(%esp,%esi,8), %xmm3, %xmm2
317 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [esp + 8*esi + 268435456]
318 0xc4,0xe2,0x60,0xd3,0x94,0xf4,0x00,0x00,0x00,0x10
320 # ATT: vpdpwuuds 291(%edi,%eax,4), %xmm3, %xmm2
321 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [edi + 4*eax + 291]
322 0xc4,0xe2,0x60,0xd3,0x94,0x87,0x23,0x01,0x00,0x00
324 # ATT: vpdpwuuds (%eax), %xmm3, %xmm2
325 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [eax]
326 0xc4,0xe2,0x60,0xd3,0x10
328 # ATT: vpdpwuuds -512(,%ebp,2), %xmm3, %xmm2
329 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [2*ebp - 512]
330 0xc4,0xe2,0x60,0xd3,0x14,0x6d,0x00,0xfe,0xff,0xff
332 # ATT: vpdpwuuds 2032(%ecx), %xmm3, %xmm2
333 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [ecx + 2032]
334 0xc4,0xe2,0x60,0xd3,0x91,0xf0,0x07,0x00,0x00
336 # ATT: vpdpwuuds -2048(%edx), %xmm3, %xmm2
337 # INTEL: vpdpwuuds xmm2, xmm3, xmmword ptr [edx - 2048]
338 0xc4,0xe2,0x60,0xd3,0x92,0x00,0xf8,0xff,0xff