1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
2
3  vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
4//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
5//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb4,0xf4]
6
7  vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
8//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
9//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb4,0xf4]
10
11  vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
12//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
13//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb4,0xf4]
14
15  vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
16//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
17//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb4,0xf4]
18
19  vpmadd52luq %xmm28, %xmm29, %xmm30
20//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30
21//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb4,0xf4]
22
23  vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
24//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
25//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb4,0xf4]
26
27  vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
28//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
29//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb4,0xf4]
30
31  vpmadd52luq (%rcx), %xmm29, %xmm30
32//CHECK: vpmadd52luq (%rcx), %xmm29, %xmm30
33//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x31]
34
35  vpmadd52luq 0x123(%rax,%r14,8), %xmm29, %xmm30
36//CHECK: vpmadd52luq 291(%rax,%r14,8), %xmm29, %xmm30
37//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
38
39  vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
40//CHECK: vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
41//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x31]
42
43  vpmadd52luq 0x7f0(%rdx), %xmm29, %xmm30
44//CHECK: vpmadd52luq 2032(%rdx), %xmm29, %xmm30
45//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x7f]
46
47  vpmadd52luq 0x800(%rdx), %xmm29, %xmm30
48//CHECK: vpmadd52luq 2048(%rdx), %xmm29, %xmm30
49//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0x00,0x08,0x00,0x00]
50
51  vpmadd52luq -0x800(%rdx), %xmm29, %xmm30
52//CHECK: vpmadd52luq -2048(%rdx), %xmm29, %xmm30
53//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x80]
54
55  vpmadd52luq -0x810(%rdx), %xmm29, %xmm30
56//CHECK: vpmadd52luq -2064(%rdx), %xmm29, %xmm30
57//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0xf0,0xf7,0xff,0xff]
58
59  vpmadd52luq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
60//CHECK: vpmadd52luq 1016(%rdx){1to2}, %xmm29, %xmm30
61//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x7f]
62
63  vpmadd52luq 0x400(%rdx){1to2}, %xmm29, %xmm30
64//CHECK: vpmadd52luq 1024(%rdx){1to2}, %xmm29, %xmm30
65//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0x00,0x04,0x00,0x00]
66
67  vpmadd52luq -0x400(%rdx){1to2}, %xmm29, %xmm30
68//CHECK: vpmadd52luq -1024(%rdx){1to2}, %xmm29, %xmm30
69//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x80]
70
71  vpmadd52luq -0x408(%rdx){1to2}, %xmm29, %xmm30
72//CHECK: vpmadd52luq -1032(%rdx){1to2}, %xmm29, %xmm30
73//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
74
75  vpmadd52luq %ymm28, %ymm29, %ymm30
76//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30
77//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb4,0xf4]
78
79  vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
80//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
81//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb4,0xf4]
82
83  vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
84//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
85//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb4,0xf4]
86
87  vpmadd52luq (%rcx), %ymm29, %ymm30
88//CHECK: vpmadd52luq (%rcx), %ymm29, %ymm30
89//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x31]
90
91  vpmadd52luq 0x123(%rax,%r14,8), %ymm29, %ymm30
92//CHECK: vpmadd52luq 291(%rax,%r14,8), %ymm29, %ymm30
93//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
94
95  vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
96//CHECK: vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
97//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x31]
98
99  vpmadd52luq 0xfe0(%rdx), %ymm29, %ymm30
100//CHECK: vpmadd52luq 4064(%rdx), %ymm29, %ymm30
101//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x7f]
102
103  vpmadd52luq 0x1000(%rdx), %ymm29, %ymm30
104//CHECK: vpmadd52luq 4096(%rdx), %ymm29, %ymm30
105//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0x00,0x10,0x00,0x00]
106
107  vpmadd52luq -0x1000(%rdx), %ymm29, %ymm30
108//CHECK: vpmadd52luq -4096(%rdx), %ymm29, %ymm30
109//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x80]
110
111  vpmadd52luq -0x1020(%rdx), %ymm29, %ymm30
112//CHECK: vpmadd52luq -4128(%rdx), %ymm29, %ymm30
113//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0xe0,0xef,0xff,0xff]
114
115  vpmadd52luq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
116//CHECK: vpmadd52luq 1016(%rdx){1to4}, %ymm29, %ymm30
117//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x7f]
118
119  vpmadd52luq 0x400(%rdx){1to4}, %ymm29, %ymm30
120//CHECK: vpmadd52luq 1024(%rdx){1to4}, %ymm29, %ymm30
121//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0x00,0x04,0x00,0x00]
122
123  vpmadd52luq -0x400(%rdx){1to4}, %ymm29, %ymm30
124//CHECK: vpmadd52luq -1024(%rdx){1to4}, %ymm29, %ymm30
125//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x80]
126
127  vpmadd52luq -0x408(%rdx){1to4}, %ymm29, %ymm30
128//CHECK: vpmadd52luq -1032(%rdx){1to4}, %ymm29, %ymm30
129//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
130
131  vpmadd52luq 0x1234(%rax,%r14,8), %xmm29, %xmm30
132//CHECK: vpmadd52luq 4660(%rax,%r14,8), %xmm29, %xmm30
133//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
134
135  vpmadd52luq 0x1234(%rax,%r14,8), %ymm29, %ymm30
136//CHECK: vpmadd52luq 4660(%rax,%r14,8), %ymm29, %ymm30
137//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
138
139vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
140//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
141//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb5,0xf4]
142
143  vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
144//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
145//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb5,0xf4]
146
147  vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
148//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
149//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb5,0xf4]
150
151  vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
152//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
153//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb5,0xf4]
154
155  vpmadd52huq %xmm28, %xmm29, %xmm30
156//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30
157//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb5,0xf4]
158
159  vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
160//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
161//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb5,0xf4]
162
163  vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
164//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
165//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb5,0xf4]
166
167  vpmadd52huq (%rcx), %xmm29, %xmm30
168//CHECK: vpmadd52huq (%rcx), %xmm29, %xmm30
169//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x31]
170
171  vpmadd52huq 0x123(%rax,%r14,8), %xmm29, %xmm30
172//CHECK: vpmadd52huq 291(%rax,%r14,8), %xmm29, %xmm30
173//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
174
175  vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
176//CHECK: vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
177//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x31]
178
179  vpmadd52huq 0x7f0(%rdx), %xmm29, %xmm30
180//CHECK: vpmadd52huq 2032(%rdx), %xmm29, %xmm30
181//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x7f]
182
183  vpmadd52huq 0x800(%rdx), %xmm29, %xmm30
184//CHECK: vpmadd52huq 2048(%rdx), %xmm29, %xmm30
185//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0x00,0x08,0x00,0x00]
186
187  vpmadd52huq -0x800(%rdx), %xmm29, %xmm30
188//CHECK: vpmadd52huq -2048(%rdx), %xmm29, %xmm30
189//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x80]
190
191  vpmadd52huq -0x810(%rdx), %xmm29, %xmm30
192//CHECK: vpmadd52huq -2064(%rdx), %xmm29, %xmm30
193//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0xf0,0xf7,0xff,0xff]
194
195  vpmadd52huq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
196//CHECK: vpmadd52huq 1016(%rdx){1to2}, %xmm29, %xmm30
197//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x7f]
198
199  vpmadd52huq 0x400(%rdx){1to2}, %xmm29, %xmm30
200//CHECK: vpmadd52huq 1024(%rdx){1to2}, %xmm29, %xmm30
201//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0x00,0x04,0x00,0x00]
202
203  vpmadd52huq -0x400(%rdx){1to2}, %xmm29, %xmm30
204//CHECK: vpmadd52huq -1024(%rdx){1to2}, %xmm29, %xmm30
205//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x80]
206
207  vpmadd52huq -0x408(%rdx){1to2}, %xmm29, %xmm30
208//CHECK: vpmadd52huq -1032(%rdx){1to2}, %xmm29, %xmm30
209//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
210
211  vpmadd52huq %ymm28, %ymm29, %ymm30
212//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30
213//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb5,0xf4]
214
215  vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
216//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
217//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb5,0xf4]
218
219  vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
220//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
221//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb5,0xf4]
222
223  vpmadd52huq (%rcx), %ymm29, %ymm30
224//CHECK: vpmadd52huq (%rcx), %ymm29, %ymm30
225//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x31]
226
227  vpmadd52huq 0x123(%rax,%r14,8), %ymm29, %ymm30
228//CHECK: vpmadd52huq 291(%rax,%r14,8), %ymm29, %ymm30
229//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
230
231  vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
232//CHECK: vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
233//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x31]
234
235  vpmadd52huq 0xfe0(%rdx), %ymm29, %ymm30
236//CHECK: vpmadd52huq 4064(%rdx), %ymm29, %ymm30
237//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x7f]
238
239  vpmadd52huq 0x1000(%rdx), %ymm29, %ymm30
240//CHECK: vpmadd52huq 4096(%rdx), %ymm29, %ymm30
241//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0x00,0x10,0x00,0x00]
242
243  vpmadd52huq -0x1000(%rdx), %ymm29, %ymm30
244//CHECK: vpmadd52huq -4096(%rdx), %ymm29, %ymm30
245//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x80]
246
247  vpmadd52huq -0x1020(%rdx), %ymm29, %ymm30
248//CHECK: vpmadd52huq -4128(%rdx), %ymm29, %ymm30
249//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0xe0,0xef,0xff,0xff]
250
251  vpmadd52huq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
252//CHECK: vpmadd52huq 1016(%rdx){1to4}, %ymm29, %ymm30
253//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x7f]
254
255  vpmadd52huq 0x400(%rdx){1to4}, %ymm29, %ymm30
256//CHECK: vpmadd52huq 1024(%rdx){1to4}, %ymm29, %ymm30
257//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0x00,0x04,0x00,0x00]
258
259  vpmadd52huq -0x400(%rdx){1to4}, %ymm29, %ymm30
260//CHECK: vpmadd52huq -1024(%rdx){1to4}, %ymm29, %ymm30
261//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x80]
262
263  vpmadd52huq -0x408(%rdx){1to4}, %ymm29, %ymm30
264//CHECK: vpmadd52huq -1032(%rdx){1to4}, %ymm29, %ymm30
265//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
266
267  vpmadd52huq 0x1234(%rax,%r14,8), %xmm29, %xmm30
268//CHECK: vpmadd52huq 4660(%rax,%r14,8), %xmm29, %xmm30
269//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
270
271  vpmadd52huq 0x1234(%rax,%r14,8), %ymm29, %ymm30
272//CHECK: vpmadd52huq 4660(%rax,%r14,8), %ymm29, %ymm30
273//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
274
275