1 // RUN
: llvm-mc
-triple x86_64-unknown-unknown
-mattr
=+avxvnni
--show-encoding
< %s | FileCheck
%s
3 // CHECK
: {vex
} vpdpbusd
%ymm4
, %ymm5
, %ymm6
4 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x50,0xf4]
5 {vex
} vpdpbusd
%ymm4
, %ymm5
, %ymm6
7 // CHECK
: {vex
} vpdpbusd
%xmm4
, %xmm5
, %xmm6
8 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x50,0xf4]
9 {vex
} vpdpbusd
%xmm4
, %xmm5
, %xmm6
11 // CHECK
: {vex
} vpdpbusd
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
12 // CHECK
: encoding
: [0xc4,0xa2,0x55,0x50,0xb4,0xf5,0x00,0x00,0x00,0x10]
13 {vex
} vpdpbusd
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
15 // CHECK
: {vex
} vpdpbusd
291(%r8,%rax
,4), %ymm5
, %ymm6
16 // CHECK
: encoding
: [0xc4,0xc2,0x55,0x50,0xb4,0x80,0x23,0x01,0x00,0x00]
17 {vex
} vpdpbusd
291(%r8,%rax
,4), %ymm5
, %ymm6
19 // CHECK
: {vex
} vpdpbusd
(%rip
), %ymm5
, %ymm6
20 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x50,0x35,0x00,0x00,0x00,0x00]
21 {vex
} vpdpbusd
(%rip
), %ymm5
, %ymm6
23 // CHECK
: {vex
} vpdpbusd
-1024(,%rbp
,2), %ymm5
, %ymm6
24 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x50,0x34,0x6d,0x00,0xfc,0xff,0xff]
25 {vex
} vpdpbusd
-1024(,%rbp
,2), %ymm5
, %ymm6
27 // CHECK
: {vex
} vpdpbusd
4064(%rcx
), %ymm5
, %ymm6
28 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x50,0xb1,0xe0,0x0f,0x00,0x00]
29 {vex
} vpdpbusd
4064(%rcx
), %ymm5
, %ymm6
31 // CHECK
: {vex
} vpdpbusd
-4096(%rdx
), %ymm5
, %ymm6
32 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x50,0xb2,0x00,0xf0,0xff,0xff]
33 {vex
} vpdpbusd
-4096(%rdx
), %ymm5
, %ymm6
35 // CHECK
: {vex
} vpdpbusd
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
36 // CHECK
: encoding
: [0xc4,0xa2,0x51,0x50,0xb4,0xf5,0x00,0x00,0x00,0x10]
37 {vex
} vpdpbusd
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
39 // CHECK
: {vex
} vpdpbusd
291(%r8,%rax
,4), %xmm5
, %xmm6
40 // CHECK
: encoding
: [0xc4,0xc2,0x51,0x50,0xb4,0x80,0x23,0x01,0x00,0x00]
41 {vex
} vpdpbusd
291(%r8,%rax
,4), %xmm5
, %xmm6
43 // CHECK
: {vex
} vpdpbusd
(%rip
), %xmm5
, %xmm6
44 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x50,0x35,0x00,0x00,0x00,0x00]
45 {vex
} vpdpbusd
(%rip
), %xmm5
, %xmm6
47 // CHECK
: {vex
} vpdpbusd
-512(,%rbp
,2), %xmm5
, %xmm6
48 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x50,0x34,0x6d,0x00,0xfe,0xff,0xff]
49 {vex
} vpdpbusd
-512(,%rbp
,2), %xmm5
, %xmm6
51 // CHECK
: {vex
} vpdpbusd
2032(%rcx
), %xmm5
, %xmm6
52 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x50,0xb1,0xf0,0x07,0x00,0x00]
53 {vex
} vpdpbusd
2032(%rcx
), %xmm5
, %xmm6
55 // CHECK
: {vex
} vpdpbusd
-2048(%rdx
), %xmm5
, %xmm6
56 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x50,0xb2,0x00,0xf8,0xff,0xff]
57 {vex
} vpdpbusd
-2048(%rdx
), %xmm5
, %xmm6
59 // CHECK
: {vex
} vpdpbusds
%ymm4
, %ymm5
, %ymm6
60 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x51,0xf4]
61 {vex
} vpdpbusds
%ymm4
, %ymm5
, %ymm6
63 // CHECK
: {vex
} vpdpbusds
%xmm4
, %xmm5
, %xmm6
64 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x51,0xf4]
65 {vex
} vpdpbusds
%xmm4
, %xmm5
, %xmm6
67 // CHECK
: {vex
} vpdpbusds
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
68 // CHECK
: encoding
: [0xc4,0xa2,0x55,0x51,0xb4,0xf5,0x00,0x00,0x00,0x10]
69 {vex
} vpdpbusds
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
71 // CHECK
: {vex
} vpdpbusds
291(%r8,%rax
,4), %ymm5
, %ymm6
72 // CHECK
: encoding
: [0xc4,0xc2,0x55,0x51,0xb4,0x80,0x23,0x01,0x00,0x00]
73 {vex
} vpdpbusds
291(%r8,%rax
,4), %ymm5
, %ymm6
75 // CHECK
: {vex
} vpdpbusds
(%rip
), %ymm5
, %ymm6
76 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x51,0x35,0x00,0x00,0x00,0x00]
77 {vex
} vpdpbusds
(%rip
), %ymm5
, %ymm6
79 // CHECK
: {vex
} vpdpbusds
-1024(,%rbp
,2), %ymm5
, %ymm6
80 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x51,0x34,0x6d,0x00,0xfc,0xff,0xff]
81 {vex
} vpdpbusds
-1024(,%rbp
,2), %ymm5
, %ymm6
83 // CHECK
: {vex
} vpdpbusds
4064(%rcx
), %ymm5
, %ymm6
84 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x51,0xb1,0xe0,0x0f,0x00,0x00]
85 {vex
} vpdpbusds
4064(%rcx
), %ymm5
, %ymm6
87 // CHECK
: {vex
} vpdpbusds
-4096(%rdx
), %ymm5
, %ymm6
88 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x51,0xb2,0x00,0xf0,0xff,0xff]
89 {vex
} vpdpbusds
-4096(%rdx
), %ymm5
, %ymm6
91 // CHECK
: {vex
} vpdpbusds
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
92 // CHECK
: encoding
: [0xc4,0xa2,0x51,0x51,0xb4,0xf5,0x00,0x00,0x00,0x10]
93 {vex
} vpdpbusds
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
95 // CHECK
: {vex
} vpdpbusds
291(%r8,%rax
,4), %xmm5
, %xmm6
96 // CHECK
: encoding
: [0xc4,0xc2,0x51,0x51,0xb4,0x80,0x23,0x01,0x00,0x00]
97 {vex
} vpdpbusds
291(%r8,%rax
,4), %xmm5
, %xmm6
99 // CHECK
: {vex
} vpdpbusds
(%rip
), %xmm5
, %xmm6
100 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x51,0x35,0x00,0x00,0x00,0x00]
101 {vex
} vpdpbusds
(%rip
), %xmm5
, %xmm6
103 // CHECK
: {vex
} vpdpbusds
-512(,%rbp
,2), %xmm5
, %xmm6
104 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x51,0x34,0x6d,0x00,0xfe,0xff,0xff]
105 {vex
} vpdpbusds
-512(,%rbp
,2), %xmm5
, %xmm6
107 // CHECK
: {vex
} vpdpbusds
2032(%rcx
), %xmm5
, %xmm6
108 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x51,0xb1,0xf0,0x07,0x00,0x00]
109 {vex
} vpdpbusds
2032(%rcx
), %xmm5
, %xmm6
111 // CHECK
: {vex
} vpdpbusds
-2048(%rdx
), %xmm5
, %xmm6
112 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x51,0xb2,0x00,0xf8,0xff,0xff]
113 {vex
} vpdpbusds
-2048(%rdx
), %xmm5
, %xmm6
115 // CHECK
: {vex
} vpdpwssd
%ymm4
, %ymm5
, %ymm6
116 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x52,0xf4]
117 {vex
} vpdpwssd
%ymm4
, %ymm5
, %ymm6
119 // CHECK
: {vex
} vpdpwssd
%xmm4
, %xmm5
, %xmm6
120 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x52,0xf4]
121 {vex
} vpdpwssd
%xmm4
, %xmm5
, %xmm6
123 // CHECK
: {vex
} vpdpwssd
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
124 // CHECK
: encoding
: [0xc4,0xa2,0x55,0x52,0xb4,0xf5,0x00,0x00,0x00,0x10]
125 {vex
} vpdpwssd
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
127 // CHECK
: {vex
} vpdpwssd
291(%r8,%rax
,4), %ymm5
, %ymm6
128 // CHECK
: encoding
: [0xc4,0xc2,0x55,0x52,0xb4,0x80,0x23,0x01,0x00,0x00]
129 {vex
} vpdpwssd
291(%r8,%rax
,4), %ymm5
, %ymm6
131 // CHECK
: {vex
} vpdpwssd
(%rip
), %ymm5
, %ymm6
132 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x52,0x35,0x00,0x00,0x00,0x00]
133 {vex
} vpdpwssd
(%rip
), %ymm5
, %ymm6
135 // CHECK
: {vex
} vpdpwssd
-1024(,%rbp
,2), %ymm5
, %ymm6
136 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x52,0x34,0x6d,0x00,0xfc,0xff,0xff]
137 {vex
} vpdpwssd
-1024(,%rbp
,2), %ymm5
, %ymm6
139 // CHECK
: {vex
} vpdpwssd
4064(%rcx
), %ymm5
, %ymm6
140 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x52,0xb1,0xe0,0x0f,0x00,0x00]
141 {vex
} vpdpwssd
4064(%rcx
), %ymm5
, %ymm6
143 // CHECK
: {vex
} vpdpwssd
-4096(%rdx
), %ymm5
, %ymm6
144 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x52,0xb2,0x00,0xf0,0xff,0xff]
145 {vex
} vpdpwssd
-4096(%rdx
), %ymm5
, %ymm6
147 // CHECK
: {vex
} vpdpwssd
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
148 // CHECK
: encoding
: [0xc4,0xa2,0x51,0x52,0xb4,0xf5,0x00,0x00,0x00,0x10]
149 {vex
} vpdpwssd
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
151 // CHECK
: {vex
} vpdpwssd
291(%r8,%rax
,4), %xmm5
, %xmm6
152 // CHECK
: encoding
: [0xc4,0xc2,0x51,0x52,0xb4,0x80,0x23,0x01,0x00,0x00]
153 {vex
} vpdpwssd
291(%r8,%rax
,4), %xmm5
, %xmm6
155 // CHECK
: {vex
} vpdpwssd
(%rip
), %xmm5
, %xmm6
156 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x52,0x35,0x00,0x00,0x00,0x00]
157 {vex
} vpdpwssd
(%rip
), %xmm5
, %xmm6
159 // CHECK
: {vex
} vpdpwssd
-512(,%rbp
,2), %xmm5
, %xmm6
160 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x52,0x34,0x6d,0x00,0xfe,0xff,0xff]
161 {vex
} vpdpwssd
-512(,%rbp
,2), %xmm5
, %xmm6
163 // CHECK
: {vex
} vpdpwssd
2032(%rcx
), %xmm5
, %xmm6
164 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x52,0xb1,0xf0,0x07,0x00,0x00]
165 {vex
} vpdpwssd
2032(%rcx
), %xmm5
, %xmm6
167 // CHECK
: {vex
} vpdpwssd
-2048(%rdx
), %xmm5
, %xmm6
168 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x52,0xb2,0x00,0xf8,0xff,0xff]
169 {vex
} vpdpwssd
-2048(%rdx
), %xmm5
, %xmm6
171 // CHECK
: {vex
} vpdpwssds
%ymm4
, %ymm5
, %ymm6
172 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x53,0xf4]
173 {vex
} vpdpwssds
%ymm4
, %ymm5
, %ymm6
175 // CHECK
: {vex
} vpdpwssds
%xmm4
, %xmm5
, %xmm6
176 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x53,0xf4]
177 {vex
} vpdpwssds
%xmm4
, %xmm5
, %xmm6
179 // CHECK
: {vex
} vpdpwssds
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
180 // CHECK
: encoding
: [0xc4,0xa2,0x55,0x53,0xb4,0xf5,0x00,0x00,0x00,0x10]
181 {vex
} vpdpwssds
268435456(%rbp
,%r14,8), %ymm5
, %ymm6
183 // CHECK
: {vex
} vpdpwssds
291(%r8,%rax
,4), %ymm5
, %ymm6
184 // CHECK
: encoding
: [0xc4,0xc2,0x55,0x53,0xb4,0x80,0x23,0x01,0x00,0x00]
185 {vex
} vpdpwssds
291(%r8,%rax
,4), %ymm5
, %ymm6
187 // CHECK
: {vex
} vpdpwssds
(%rip
), %ymm5
, %ymm6
188 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x53,0x35,0x00,0x00,0x00,0x00]
189 {vex
} vpdpwssds
(%rip
), %ymm5
, %ymm6
191 // CHECK
: {vex
} vpdpwssds
-1024(,%rbp
,2), %ymm5
, %ymm6
192 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x53,0x34,0x6d,0x00,0xfc,0xff,0xff]
193 {vex
} vpdpwssds
-1024(,%rbp
,2), %ymm5
, %ymm6
195 // CHECK
: {vex
} vpdpwssds
4064(%rcx
), %ymm5
, %ymm6
196 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x53,0xb1,0xe0,0x0f,0x00,0x00]
197 {vex
} vpdpwssds
4064(%rcx
), %ymm5
, %ymm6
199 // CHECK
: {vex
} vpdpwssds
-4096(%rdx
), %ymm5
, %ymm6
200 // CHECK
: encoding
: [0xc4,0xe2,0x55,0x53,0xb2,0x00,0xf0,0xff,0xff]
201 {vex
} vpdpwssds
-4096(%rdx
), %ymm5
, %ymm6
203 // CHECK
: {vex
} vpdpwssds
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
204 // CHECK
: encoding
: [0xc4,0xa2,0x51,0x53,0xb4,0xf5,0x00,0x00,0x00,0x10]
205 {vex
} vpdpwssds
268435456(%rbp
,%r14,8), %xmm5
, %xmm6
207 // CHECK
: {vex
} vpdpwssds
291(%r8,%rax
,4), %xmm5
, %xmm6
208 // CHECK
: encoding
: [0xc4,0xc2,0x51,0x53,0xb4,0x80,0x23,0x01,0x00,0x00]
209 {vex
} vpdpwssds
291(%r8,%rax
,4), %xmm5
, %xmm6
211 // CHECK
: {vex
} vpdpwssds
(%rip
), %xmm5
, %xmm6
212 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x53,0x35,0x00,0x00,0x00,0x00]
213 {vex
} vpdpwssds
(%rip
), %xmm5
, %xmm6
215 // CHECK
: {vex
} vpdpwssds
-512(,%rbp
,2), %xmm5
, %xmm6
216 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x53,0x34,0x6d,0x00,0xfe,0xff,0xff]
217 {vex
} vpdpwssds
-512(,%rbp
,2), %xmm5
, %xmm6
219 // CHECK
: {vex
} vpdpwssds
2032(%rcx
), %xmm5
, %xmm6
220 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x53,0xb1,0xf0,0x07,0x00,0x00]
221 {vex
} vpdpwssds
2032(%rcx
), %xmm5
, %xmm6
223 // CHECK
: {vex
} vpdpwssds
-2048(%rdx
), %xmm5
, %xmm6
224 // CHECK
: encoding
: [0xc4,0xe2,0x51,0x53,0xb2,0x00,0xf8,0xff,0xff]
225 {vex
} vpdpwssds
-2048(%rdx
), %xmm5
, %xmm6