xref: /llvm-project/llvm/test/MC/X86/avx_vnni-32-intel.s (revision c394d97ed3c10a8a77742296248e68c654f37c45)
1// RUN: llvm-mc -triple i686-unknown-unknown -mattr=+avxvnni -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
2
3// CHECK: {vex} vpdpbusd ymm6, ymm5, ymm4
4// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0xf4]
5          {vex} vpdpbusd ymm6, ymm5, ymm4
6
7// CHECK: {vex} vpdpbusd xmm6, xmm5, xmm4
8// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0xf4]
9          {vex} vpdpbusd xmm6, xmm5, xmm4
10
11// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
12// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0xb4,0xf4,0x00,0x00,0x00,0x10]
13          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
14
15// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
16// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0xb4,0x87,0x23,0x01,0x00,0x00]
17          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
18
19// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [eax]
20// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0x30]
21          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [eax]
22
23// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [2*ebp - 1024]
24// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0x34,0x6d,0x00,0xfc,0xff,0xff]
25          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [2*ebp - 1024]
26
27// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [ecx + 4064]
28// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0xb1,0xe0,0x0f,0x00,0x00]
29          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [ecx + 4064]
30
31// CHECK: {vex} vpdpbusd ymm6, ymm5, ymmword ptr [edx - 4096]
32// CHECK: encoding: [0xc4,0xe2,0x55,0x50,0xb2,0x00,0xf0,0xff,0xff]
33          {vex} vpdpbusd ymm6, ymm5, ymmword ptr [edx - 4096]
34
35// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
36// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0xb4,0xf4,0x00,0x00,0x00,0x10]
37          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
38
39// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
40// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0xb4,0x87,0x23,0x01,0x00,0x00]
41          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
42
43// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [eax]
44// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0x30]
45          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [eax]
46
47// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [2*ebp - 512]
48// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0x34,0x6d,0x00,0xfe,0xff,0xff]
49          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [2*ebp - 512]
50
51// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [ecx + 2032]
52// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0xb1,0xf0,0x07,0x00,0x00]
53          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [ecx + 2032]
54
55// CHECK: {vex} vpdpbusd xmm6, xmm5, xmmword ptr [edx - 2048]
56// CHECK: encoding: [0xc4,0xe2,0x51,0x50,0xb2,0x00,0xf8,0xff,0xff]
57          {vex} vpdpbusd xmm6, xmm5, xmmword ptr [edx - 2048]
58
59// CHECK: {vex} vpdpbusds ymm6, ymm5, ymm4
60// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0xf4]
61          {vex} vpdpbusds ymm6, ymm5, ymm4
62
63// CHECK: {vex} vpdpbusds xmm6, xmm5, xmm4
64// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0xf4]
65          {vex} vpdpbusds xmm6, xmm5, xmm4
66
67// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
68// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0xb4,0xf4,0x00,0x00,0x00,0x10]
69          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
70
71// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
72// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0xb4,0x87,0x23,0x01,0x00,0x00]
73          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
74
75// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [eax]
76// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0x30]
77          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [eax]
78
79// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [2*ebp - 1024]
80// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0x34,0x6d,0x00,0xfc,0xff,0xff]
81          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [2*ebp - 1024]
82
83// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [ecx + 4064]
84// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0xb1,0xe0,0x0f,0x00,0x00]
85          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [ecx + 4064]
86
87// CHECK: {vex} vpdpbusds ymm6, ymm5, ymmword ptr [edx - 4096]
88// CHECK: encoding: [0xc4,0xe2,0x55,0x51,0xb2,0x00,0xf0,0xff,0xff]
89          {vex} vpdpbusds ymm6, ymm5, ymmword ptr [edx - 4096]
90
91// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
92// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0xb4,0xf4,0x00,0x00,0x00,0x10]
93          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
94
95// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
96// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0xb4,0x87,0x23,0x01,0x00,0x00]
97          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
98
99// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [eax]
100// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0x30]
101          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [eax]
102
103// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [2*ebp - 512]
104// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0x34,0x6d,0x00,0xfe,0xff,0xff]
105          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [2*ebp - 512]
106
107// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [ecx + 2032]
108// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0xb1,0xf0,0x07,0x00,0x00]
109          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [ecx + 2032]
110
111// CHECK: {vex} vpdpbusds xmm6, xmm5, xmmword ptr [edx - 2048]
112// CHECK: encoding: [0xc4,0xe2,0x51,0x51,0xb2,0x00,0xf8,0xff,0xff]
113          {vex} vpdpbusds xmm6, xmm5, xmmword ptr [edx - 2048]
114
115// CHECK: {vex} vpdpwssd ymm6, ymm5, ymm4
116// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0xf4]
117          {vex} vpdpwssd ymm6, ymm5, ymm4
118
119// CHECK: {vex} vpdpwssd xmm6, xmm5, xmm4
120// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0xf4]
121          {vex} vpdpwssd xmm6, xmm5, xmm4
122
123// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
124// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0xb4,0xf4,0x00,0x00,0x00,0x10]
125          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
126
127// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
128// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0xb4,0x87,0x23,0x01,0x00,0x00]
129          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
130
131// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [eax]
132// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0x30]
133          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [eax]
134
135// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [2*ebp - 1024]
136// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0x34,0x6d,0x00,0xfc,0xff,0xff]
137          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [2*ebp - 1024]
138
139// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [ecx + 4064]
140// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0xb1,0xe0,0x0f,0x00,0x00]
141          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [ecx + 4064]
142
143// CHECK: {vex} vpdpwssd ymm6, ymm5, ymmword ptr [edx - 4096]
144// CHECK: encoding: [0xc4,0xe2,0x55,0x52,0xb2,0x00,0xf0,0xff,0xff]
145          {vex} vpdpwssd ymm6, ymm5, ymmword ptr [edx - 4096]
146
147// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
148// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0xb4,0xf4,0x00,0x00,0x00,0x10]
149          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
150
151// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
152// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0xb4,0x87,0x23,0x01,0x00,0x00]
153          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
154
155// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [eax]
156// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0x30]
157          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [eax]
158
159// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [2*ebp - 512]
160// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0x34,0x6d,0x00,0xfe,0xff,0xff]
161          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [2*ebp - 512]
162
163// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [ecx + 2032]
164// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0xb1,0xf0,0x07,0x00,0x00]
165          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [ecx + 2032]
166
167// CHECK: {vex} vpdpwssd xmm6, xmm5, xmmword ptr [edx - 2048]
168// CHECK: encoding: [0xc4,0xe2,0x51,0x52,0xb2,0x00,0xf8,0xff,0xff]
169          {vex} vpdpwssd xmm6, xmm5, xmmword ptr [edx - 2048]
170
171// CHECK: {vex} vpdpwssds ymm6, ymm5, ymm4
172// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0xf4]
173          {vex} vpdpwssds ymm6, ymm5, ymm4
174
175// CHECK: {vex} vpdpwssds xmm6, xmm5, xmm4
176// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0xf4]
177          {vex} vpdpwssds xmm6, xmm5, xmm4
178
179// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
180// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0xb4,0xf4,0x00,0x00,0x00,0x10]
181          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [esp + 8*esi + 268435456]
182
183// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
184// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0xb4,0x87,0x23,0x01,0x00,0x00]
185          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [edi + 4*eax + 291]
186
187// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [eax]
188// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0x30]
189          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [eax]
190
191// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [2*ebp - 1024]
192// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0x34,0x6d,0x00,0xfc,0xff,0xff]
193          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [2*ebp - 1024]
194
195// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [ecx + 4064]
196// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0xb1,0xe0,0x0f,0x00,0x00]
197          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [ecx + 4064]
198
199// CHECK: {vex} vpdpwssds ymm6, ymm5, ymmword ptr [edx - 4096]
200// CHECK: encoding: [0xc4,0xe2,0x55,0x53,0xb2,0x00,0xf0,0xff,0xff]
201          {vex} vpdpwssds ymm6, ymm5, ymmword ptr [edx - 4096]
202
203// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
204// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0xb4,0xf4,0x00,0x00,0x00,0x10]
205          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [esp + 8*esi + 268435456]
206
207// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
208// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0xb4,0x87,0x23,0x01,0x00,0x00]
209          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [edi + 4*eax + 291]
210
211// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [eax]
212// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0x30]
213          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [eax]
214
215// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [2*ebp - 512]
216// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0x34,0x6d,0x00,0xfe,0xff,0xff]
217          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [2*ebp - 512]
218
219// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [ecx + 2032]
220// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0xb1,0xf0,0x07,0x00,0x00]
221          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [ecx + 2032]
222
223// CHECK: {vex} vpdpwssds xmm6, xmm5, xmmword ptr [edx - 2048]
224// CHECK: encoding: [0xc4,0xe2,0x51,0x53,0xb2,0x00,0xf8,0xff,0xff]
225          {vex} vpdpwssds xmm6, xmm5, xmmword ptr [edx - 2048]
226
227