1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
2
3// vfmadd
4// CHECK: vfmaddss  (%rcx), %xmm1, %xmm0, %xmm0
5// CHECK: encoding: [0xc4,0xe3,0xf9,0x6a,0x01,0x10]
6          vfmaddss  (%rcx), %xmm1, %xmm0, %xmm0
7
8// CHECK: vfmaddss   %xmm1, (%rcx), %xmm0, %xmm0
9// CHECK: encoding: [0xc4,0xe3,0x79,0x6a,0x01,0x10]
10          vfmaddss   %xmm1, (%rcx),%xmm0, %xmm0
11
12// CHECK: vfmaddss   %xmm2, %xmm1, %xmm0, %xmm0
13// CHECK: encoding: [0xc4,0xe3,0xf9,0x6a,0xc2,0x10]
14          vfmaddss   %xmm2, %xmm1, %xmm0, %xmm0
15
16// CHECK: vfmaddsd  (%rcx), %xmm1, %xmm0, %xmm0
17// CHECK: encoding: [0xc4,0xe3,0xf9,0x6b,0x01,0x10]
18          vfmaddsd  (%rcx), %xmm1, %xmm0, %xmm0
19
20// CHECK: vfmaddsd   %xmm1, (%rcx), %xmm0, %xmm0
21// CHECK: encoding: [0xc4,0xe3,0x79,0x6b,0x01,0x10]
22          vfmaddsd   %xmm1, (%rcx),%xmm0, %xmm0
23
24// CHECK: vfmaddsd   %xmm2, %xmm1, %xmm0, %xmm0
25// CHECK: encoding: [0xc4,0xe3,0xf9,0x6b,0xc2,0x10]
26          vfmaddsd   %xmm2, %xmm1, %xmm0, %xmm0
27
28// CHECK: vfmaddsd   %xmm10, %xmm1, %xmm0, %xmm0
29// CHECK: encoding: [0xc4,0xc3,0xf9,0x6b,0xc2,0x10]
30          vfmaddsd   %xmm10, %xmm1, %xmm0, %xmm0
31
32// CHECK: vfmaddps  (%rcx), %xmm1, %xmm0, %xmm0
33// CHECK: encoding: [0xc4,0xe3,0xf9,0x68,0x01,0x10]
34          vfmaddps  (%rcx), %xmm1, %xmm0, %xmm0
35
36// CHECK: vfmaddps   %xmm1, (%rcx), %xmm0, %xmm0
37// CHECK: encoding: [0xc4,0xe3,0x79,0x68,0x01,0x10]
38          vfmaddps   %xmm1, (%rcx),%xmm0, %xmm0
39
40// CHECK: vfmaddps   %xmm2, %xmm1, %xmm0, %xmm0
41// CHECK: encoding: [0xc4,0xe3,0xf9,0x68,0xc2,0x10]
42          vfmaddps   %xmm2, %xmm1, %xmm0, %xmm0
43
44// CHECK: vfmaddpd  (%rcx), %xmm1, %xmm0, %xmm0
45// CHECK: encoding: [0xc4,0xe3,0xf9,0x69,0x01,0x10]
46          vfmaddpd  (%rcx), %xmm1, %xmm0, %xmm0
47
48// CHECK: vfmaddpd   %xmm1, (%rcx), %xmm0, %xmm0
49// CHECK: encoding: [0xc4,0xe3,0x79,0x69,0x01,0x10]
50          vfmaddpd   %xmm1, (%rcx),%xmm0, %xmm0
51
52// CHECK: vfmaddpd   %xmm2, %xmm1, %xmm0, %xmm0
53// CHECK: encoding: [0xc4,0xe3,0xf9,0x69,0xc2,0x10]
54          vfmaddpd   %xmm2, %xmm1, %xmm0, %xmm0
55
56// CHECK: vfmaddps  (%rcx), %ymm1, %ymm0, %ymm0
57// CHECK: encoding: [0xc4,0xe3,0xfd,0x68,0x01,0x10]
58          vfmaddps  (%rcx), %ymm1, %ymm0, %ymm0
59
60// CHECK: vfmaddps   %ymm1, (%rcx), %ymm0, %ymm0
61// CHECK: encoding: [0xc4,0xe3,0x7d,0x68,0x01,0x10]
62          vfmaddps   %ymm1, (%rcx),%ymm0, %ymm0
63
64// CHECK: vfmaddps   %ymm2, %ymm1, %ymm0, %ymm0
65// CHECK: encoding: [0xc4,0xe3,0xfd,0x68,0xc2,0x10]
66          vfmaddps   %ymm2, %ymm1, %ymm0, %ymm0
67
68// CHECK: vfmaddpd  (%rcx), %ymm1, %ymm0, %ymm0
69// CHECK: encoding: [0xc4,0xe3,0xfd,0x69,0x01,0x10]
70          vfmaddpd  (%rcx), %ymm1, %ymm0, %ymm0
71
72// CHECK: vfmaddpd   %ymm1, (%rcx), %ymm0, %ymm0
73// CHECK: encoding: [0xc4,0xe3,0x7d,0x69,0x01,0x10]
74          vfmaddpd   %ymm1, (%rcx),%ymm0, %ymm0
75
76// CHECK: vfmaddpd   %ymm2, %ymm1, %ymm0, %ymm0
77// CHECK: encoding: [0xc4,0xe3,0xfd,0x69,0xc2,0x10]
78          vfmaddpd   %ymm2, %ymm1, %ymm0, %ymm0
79
80// PR15040
81// CHECK: vfmaddss  foo(%rip), %xmm1, %xmm0, %xmm0
82// CHECK: encoding: [0xc4,0xe3,0xf9,0x6a,0x05,A,A,A,A,0x10]
83// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
84          vfmaddss  foo(%rip), %xmm1, %xmm0, %xmm0
85
86// CHECK: vfmaddss   %xmm1, foo(%rip), %xmm0, %xmm0
87// CHECK: encoding: [0xc4,0xe3,0x79,0x6a,0x05,A,A,A,A,0x10]
88// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
89          vfmaddss   %xmm1, foo(%rip),%xmm0, %xmm0
90
91// CHECK: vfmaddsd  foo(%rip), %xmm1, %xmm0, %xmm0
92// CHECK: encoding: [0xc4,0xe3,0xf9,0x6b,0x05,A,A,A,A,0x10]
93// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
94          vfmaddsd  foo(%rip), %xmm1, %xmm0, %xmm0
95
96// CHECK: vfmaddsd   %xmm1, foo(%rip), %xmm0, %xmm0
97// CHECK: encoding: [0xc4,0xe3,0x79,0x6b,0x05,A,A,A,A,0x10]
98// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
99          vfmaddsd   %xmm1, foo(%rip),%xmm0, %xmm0
100
101// CHECK: vfmaddps  foo(%rip), %xmm1, %xmm0, %xmm0
102// CHECK: encoding: [0xc4,0xe3,0xf9,0x68,0x05,A,A,A,A,0x10]
103// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
104          vfmaddps  foo(%rip), %xmm1, %xmm0, %xmm0
105
106// CHECK: vfmaddps   %xmm1, foo(%rip), %xmm0, %xmm0
107// CHECK: encoding: [0xc4,0xe3,0x79,0x68,0x05,A,A,A,A,0x10]
108// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
109          vfmaddps   %xmm1, foo(%rip),%xmm0, %xmm0
110
111// CHECK: vfmaddpd  foo(%rip), %xmm1, %xmm0, %xmm0
112// CHECK: encoding: [0xc4,0xe3,0xf9,0x69,0x05,A,A,A,A,0x10]
113// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
114          vfmaddpd  foo(%rip), %xmm1, %xmm0, %xmm0
115
116// CHECK: vfmaddpd   %xmm1, foo(%rip), %xmm0, %xmm0
117// CHECK: encoding: [0xc4,0xe3,0x79,0x69,0x05,A,A,A,A,0x10]
118// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
119          vfmaddpd   %xmm1, foo(%rip),%xmm0, %xmm0
120
121// CHECK: vfmaddps  foo(%rip), %ymm1, %ymm0, %ymm0
122// CHECK: encoding: [0xc4,0xe3,0xfd,0x68,0x05,A,A,A,A,0x10]
123// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
124          vfmaddps  foo(%rip), %ymm1, %ymm0, %ymm0
125
126// CHECK: vfmaddps   %ymm1, foo(%rip), %ymm0, %ymm0
127// CHECK: encoding: [0xc4,0xe3,0x7d,0x68,0x05,A,A,A,A,0x10]
128// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
129          vfmaddps   %ymm1, foo(%rip),%ymm0, %ymm0
130
131// CHECK: vfmaddpd  foo(%rip), %ymm1, %ymm0, %ymm0
132// CHECK: encoding: [0xc4,0xe3,0xfd,0x69,0x05,A,A,A,A,0x10]
133// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
134          vfmaddpd  foo(%rip), %ymm1, %ymm0, %ymm0
135
136// CHECK: vfmaddpd   %ymm1, foo(%rip), %ymm0, %ymm0
137// CHECK: encoding: [0xc4,0xe3,0x7d,0x69,0x05,A,A,A,A,0x10]
138// CHECK: fixup A - offset: 5, value: foo-5, kind: reloc_riprel_4byte
139          vfmaddpd   %ymm1, foo(%rip),%ymm0, %ymm0
140
141// vfmsub
142// CHECK: vfmsubss  (%rcx), %xmm1, %xmm0, %xmm0
143// CHECK: encoding: [0xc4,0xe3,0xf9,0x6e,0x01,0x10]
144          vfmsubss  (%rcx), %xmm1, %xmm0, %xmm0
145
146// CHECK: vfmsubss   %xmm1, (%rcx), %xmm0, %xmm0
147// CHECK: encoding: [0xc4,0xe3,0x79,0x6e,0x01,0x10]
148          vfmsubss   %xmm1, (%rcx),%xmm0, %xmm0
149
150// CHECK: vfmsubss   %xmm2, %xmm1, %xmm0, %xmm0
151// CHECK: encoding: [0xc4,0xe3,0xf9,0x6e,0xc2,0x10]
152          vfmsubss   %xmm2, %xmm1, %xmm0, %xmm0
153
154// CHECK: vfmsubsd  (%rcx), %xmm1, %xmm0, %xmm0
155// CHECK: encoding: [0xc4,0xe3,0xf9,0x6f,0x01,0x10]
156          vfmsubsd  (%rcx), %xmm1, %xmm0, %xmm0
157
158// CHECK: vfmsubsd   %xmm1, (%rcx), %xmm0, %xmm0
159// CHECK: encoding: [0xc4,0xe3,0x79,0x6f,0x01,0x10]
160          vfmsubsd   %xmm1, (%rcx),%xmm0, %xmm0
161
162// CHECK: vfmsubsd   %xmm2, %xmm1, %xmm0, %xmm0
163// CHECK: encoding: [0xc4,0xe3,0xf9,0x6f,0xc2,0x10]
164          vfmsubsd   %xmm2, %xmm1, %xmm0, %xmm0
165
166// CHECK: vfmsubps  (%rcx), %xmm1, %xmm0, %xmm0
167// CHECK: encoding: [0xc4,0xe3,0xf9,0x6c,0x01,0x10]
168          vfmsubps  (%rcx), %xmm1, %xmm0, %xmm0
169
170// CHECK: vfmsubps   %xmm1, (%rcx), %xmm0, %xmm0
171// CHECK: encoding: [0xc4,0xe3,0x79,0x6c,0x01,0x10]
172          vfmsubps   %xmm1, (%rcx),%xmm0, %xmm0
173
174// CHECK: vfmsubps   %xmm2, %xmm1, %xmm0, %xmm0
175// CHECK: encoding: [0xc4,0xe3,0xf9,0x6c,0xc2,0x10]
176          vfmsubps   %xmm2, %xmm1, %xmm0, %xmm0
177
178// CHECK: vfmsubpd  (%rcx), %xmm1, %xmm0, %xmm0
179// CHECK: encoding: [0xc4,0xe3,0xf9,0x6d,0x01,0x10]
180          vfmsubpd  (%rcx), %xmm1, %xmm0, %xmm0
181
182// CHECK: vfmsubpd   %xmm1, (%rcx), %xmm0, %xmm0
183// CHECK: encoding: [0xc4,0xe3,0x79,0x6d,0x01,0x10]
184          vfmsubpd   %xmm1, (%rcx),%xmm0, %xmm0
185
186// CHECK: vfmsubpd   %xmm2, %xmm1, %xmm0, %xmm0
187// CHECK: encoding: [0xc4,0xe3,0xf9,0x6d,0xc2,0x10]
188          vfmsubpd   %xmm2, %xmm1, %xmm0, %xmm0
189
190// CHECK: vfmsubps  (%rcx), %ymm1, %ymm0, %ymm0
191// CHECK: encoding: [0xc4,0xe3,0xfd,0x6c,0x01,0x10]
192          vfmsubps  (%rcx), %ymm1, %ymm0, %ymm0
193
194// CHECK: vfmsubps   %ymm1, (%rcx), %ymm0, %ymm0
195// CHECK: encoding: [0xc4,0xe3,0x7d,0x6c,0x01,0x10]
196          vfmsubps   %ymm1, (%rcx),%ymm0, %ymm0
197
198// CHECK: vfmsubps   %ymm2, %ymm1, %ymm0, %ymm0
199// CHECK: encoding: [0xc4,0xe3,0xfd,0x6c,0xc2,0x10]
200          vfmsubps   %ymm2, %ymm1, %ymm0, %ymm0
201
202// CHECK: vfmsubpd  (%rcx), %ymm1, %ymm0, %ymm0
203// CHECK: encoding: [0xc4,0xe3,0xfd,0x6d,0x01,0x10]
204          vfmsubpd  (%rcx), %ymm1, %ymm0, %ymm0
205
206// CHECK: vfmsubpd   %ymm1, (%rcx), %ymm0, %ymm0
207// CHECK: encoding: [0xc4,0xe3,0x7d,0x6d,0x01,0x10]
208          vfmsubpd   %ymm1, (%rcx),%ymm0, %ymm0
209
210// CHECK: vfmsubpd   %ymm2, %ymm1, %ymm0, %ymm0
211// CHECK: encoding: [0xc4,0xe3,0xfd,0x6d,0xc2,0x10]
212          vfmsubpd   %ymm2, %ymm1, %ymm0, %ymm0
213
214// vfnmadd
215// CHECK: vfnmaddss  (%rcx), %xmm1, %xmm0, %xmm0
216// CHECK: encoding: [0xc4,0xe3,0xf9,0x7a,0x01,0x10]
217          vfnmaddss  (%rcx), %xmm1, %xmm0, %xmm0
218
219// CHECK: vfnmaddss   %xmm1, (%rcx), %xmm0, %xmm0
220// CHECK: encoding: [0xc4,0xe3,0x79,0x7a,0x01,0x10]
221          vfnmaddss   %xmm1, (%rcx),%xmm0, %xmm0
222
223// CHECK: vfnmaddss   %xmm2, %xmm1, %xmm0, %xmm0
224// CHECK: encoding: [0xc4,0xe3,0xf9,0x7a,0xc2,0x10]
225          vfnmaddss   %xmm2, %xmm1, %xmm0, %xmm0
226
227// CHECK: vfnmaddsd  (%rcx), %xmm1, %xmm0, %xmm0
228// CHECK: encoding: [0xc4,0xe3,0xf9,0x7b,0x01,0x10]
229          vfnmaddsd  (%rcx), %xmm1, %xmm0, %xmm0
230
231// CHECK: vfnmaddsd   %xmm1, (%rcx), %xmm0, %xmm0
232// CHECK: encoding: [0xc4,0xe3,0x79,0x7b,0x01,0x10]
233          vfnmaddsd   %xmm1, (%rcx),%xmm0, %xmm0
234
235// CHECK: vfnmaddsd   %xmm2, %xmm1, %xmm0, %xmm0
236// CHECK: encoding: [0xc4,0xe3,0xf9,0x7b,0xc2,0x10]
237          vfnmaddsd   %xmm2, %xmm1, %xmm0, %xmm0
238
239// CHECK: vfnmaddps  (%rcx), %xmm1, %xmm0, %xmm0
240// CHECK: encoding: [0xc4,0xe3,0xf9,0x78,0x01,0x10]
241          vfnmaddps  (%rcx), %xmm1, %xmm0, %xmm0
242
243// CHECK: vfnmaddps   %xmm1, (%rcx), %xmm0, %xmm0
244// CHECK: encoding: [0xc4,0xe3,0x79,0x78,0x01,0x10]
245          vfnmaddps   %xmm1, (%rcx),%xmm0, %xmm0
246
247// CHECK: vfnmaddps   %xmm2, %xmm1, %xmm0, %xmm0
248// CHECK: encoding: [0xc4,0xe3,0xf9,0x78,0xc2,0x10]
249          vfnmaddps   %xmm2, %xmm1, %xmm0, %xmm0
250
251// CHECK: vfnmaddpd  (%rcx), %xmm1, %xmm0, %xmm0
252// CHECK: encoding: [0xc4,0xe3,0xf9,0x79,0x01,0x10]
253          vfnmaddpd  (%rcx), %xmm1, %xmm0, %xmm0
254
255// CHECK: vfnmaddpd   %xmm1, (%rcx), %xmm0, %xmm0
256// CHECK: encoding: [0xc4,0xe3,0x79,0x79,0x01,0x10]
257          vfnmaddpd   %xmm1, (%rcx),%xmm0, %xmm0
258
259// CHECK: vfnmaddpd   %xmm2, %xmm1, %xmm0, %xmm0
260// CHECK: encoding: [0xc4,0xe3,0xf9,0x79,0xc2,0x10]
261          vfnmaddpd   %xmm2, %xmm1, %xmm0, %xmm0
262
263// CHECK: vfnmaddps  (%rcx), %ymm1, %ymm0, %ymm0
264// CHECK: encoding: [0xc4,0xe3,0xfd,0x78,0x01,0x10]
265          vfnmaddps  (%rcx), %ymm1, %ymm0, %ymm0
266
267// CHECK: vfnmaddps   %ymm1, (%rcx), %ymm0, %ymm0
268// CHECK: encoding: [0xc4,0xe3,0x7d,0x78,0x01,0x10]
269          vfnmaddps   %ymm1, (%rcx),%ymm0, %ymm0
270
271// CHECK: vfnmaddps   %ymm2, %ymm1, %ymm0, %ymm0
272// CHECK: encoding: [0xc4,0xe3,0xfd,0x78,0xc2,0x10]
273          vfnmaddps   %ymm2, %ymm1, %ymm0, %ymm0
274
275// CHECK: vfnmaddpd  (%rcx), %ymm1, %ymm0, %ymm0
276// CHECK: encoding: [0xc4,0xe3,0xfd,0x79,0x01,0x10]
277          vfnmaddpd  (%rcx), %ymm1, %ymm0, %ymm0
278
279// CHECK: vfnmaddpd   %ymm1, (%rcx), %ymm0, %ymm0
280// CHECK: encoding: [0xc4,0xe3,0x7d,0x79,0x01,0x10]
281          vfnmaddpd   %ymm1, (%rcx),%ymm0, %ymm0
282
283// CHECK: vfnmaddpd   %ymm2, %ymm1, %ymm0, %ymm0
284// CHECK: encoding: [0xc4,0xe3,0xfd,0x79,0xc2,0x10]
285          vfnmaddpd   %ymm2, %ymm1, %ymm0, %ymm0
286
287// vfnmsub
288// CHECK: vfnmsubss  (%rcx), %xmm1, %xmm0, %xmm0
289// CHECK: encoding: [0xc4,0xe3,0xf9,0x7e,0x01,0x10]
290          vfnmsubss  (%rcx), %xmm1, %xmm0, %xmm0
291
292// CHECK: vfnmsubss   %xmm1, (%rcx), %xmm0, %xmm0
293// CHECK: encoding: [0xc4,0xe3,0x79,0x7e,0x01,0x10]
294          vfnmsubss   %xmm1, (%rcx),%xmm0, %xmm0
295
296// CHECK: vfnmsubss   %xmm2, %xmm1, %xmm0, %xmm0
297// CHECK: encoding: [0xc4,0xe3,0xf9,0x7e,0xc2,0x10]
298          vfnmsubss   %xmm2, %xmm1, %xmm0, %xmm0
299
300// CHECK: vfnmsubsd  (%rcx), %xmm1, %xmm0, %xmm0
301// CHECK: encoding: [0xc4,0xe3,0xf9,0x7f,0x01,0x10]
302          vfnmsubsd  (%rcx), %xmm1, %xmm0, %xmm0
303
304// CHECK: vfnmsubsd   %xmm1, (%rcx), %xmm0, %xmm0
305// CHECK: encoding: [0xc4,0xe3,0x79,0x7f,0x01,0x10]
306          vfnmsubsd   %xmm1, (%rcx),%xmm0, %xmm0
307
308// CHECK: vfnmsubsd   %xmm2, %xmm1, %xmm0, %xmm0
309// CHECK: encoding: [0xc4,0xe3,0xf9,0x7f,0xc2,0x10]
310          vfnmsubsd   %xmm2, %xmm1, %xmm0, %xmm0
311
312// CHECK: vfnmsubps  (%rcx), %xmm1, %xmm0, %xmm0
313// CHECK: encoding: [0xc4,0xe3,0xf9,0x7c,0x01,0x10]
314          vfnmsubps  (%rcx), %xmm1, %xmm0, %xmm0
315
316// CHECK: vfnmsubps   %xmm1, (%rcx), %xmm0, %xmm0
317// CHECK: encoding: [0xc4,0xe3,0x79,0x7c,0x01,0x10]
318          vfnmsubps   %xmm1, (%rcx),%xmm0, %xmm0
319
320// CHECK: vfnmsubps   %xmm2, %xmm1, %xmm0, %xmm0
321// CHECK: encoding: [0xc4,0xe3,0xf9,0x7c,0xc2,0x10]
322          vfnmsubps   %xmm2, %xmm1, %xmm0, %xmm0
323
324// CHECK: vfnmsubpd  (%rcx), %xmm1, %xmm0, %xmm0
325// CHECK: encoding: [0xc4,0xe3,0xf9,0x7d,0x01,0x10]
326          vfnmsubpd  (%rcx), %xmm1, %xmm0, %xmm0
327
328// CHECK: vfnmsubpd   %xmm1, (%rcx), %xmm0, %xmm0
329// CHECK: encoding: [0xc4,0xe3,0x79,0x7d,0x01,0x10]
330          vfnmsubpd   %xmm1, (%rcx),%xmm0, %xmm0
331
332// CHECK: vfnmsubpd   %xmm2, %xmm1, %xmm0, %xmm0
333// CHECK: encoding: [0xc4,0xe3,0xf9,0x7d,0xc2,0x10]
334          vfnmsubpd   %xmm2, %xmm1, %xmm0, %xmm0
335
336// CHECK: vfnmsubps  (%rcx), %ymm1, %ymm0, %ymm0
337// CHECK: encoding: [0xc4,0xe3,0xfd,0x7c,0x01,0x10]
338          vfnmsubps  (%rcx), %ymm1, %ymm0, %ymm0
339
340// CHECK: vfnmsubps   %ymm1, (%rcx), %ymm0, %ymm0
341// CHECK: encoding: [0xc4,0xe3,0x7d,0x7c,0x01,0x10]
342          vfnmsubps   %ymm1, (%rcx),%ymm0, %ymm0
343
344// CHECK: vfnmsubps   %ymm2, %ymm1, %ymm0, %ymm0
345// CHECK: encoding: [0xc4,0xe3,0xfd,0x7c,0xc2,0x10]
346          vfnmsubps   %ymm2, %ymm1, %ymm0, %ymm0
347
348// CHECK: vfnmsubpd  (%rcx), %ymm1, %ymm0, %ymm0
349// CHECK: encoding: [0xc4,0xe3,0xfd,0x7d,0x01,0x10]
350          vfnmsubpd  (%rcx), %ymm1, %ymm0, %ymm0
351
352// CHECK: vfnmsubpd   %ymm1, (%rcx), %ymm0, %ymm0
353// CHECK: encoding: [0xc4,0xe3,0x7d,0x7d,0x01,0x10]
354          vfnmsubpd   %ymm1, (%rcx),%ymm0, %ymm0
355
356// CHECK: vfnmsubpd   %ymm2, %ymm1, %ymm0, %ymm0
357// CHECK: encoding: [0xc4,0xe3,0xfd,0x7d,0xc2,0x10]
358          vfnmsubpd   %ymm2, %ymm1, %ymm0, %ymm0
359
360// vfmaddsub
361// CHECK: vfmaddsubps  (%rcx), %xmm1, %xmm0, %xmm0
362// CHECK: encoding: [0xc4,0xe3,0xf9,0x5c,0x01,0x10]
363          vfmaddsubps  (%rcx), %xmm1, %xmm0, %xmm0
364
365// CHECK: vfmaddsubps   %xmm1, (%rcx), %xmm0, %xmm0
366// CHECK: encoding: [0xc4,0xe3,0x79,0x5c,0x01,0x10]
367          vfmaddsubps   %xmm1, (%rcx),%xmm0, %xmm0
368
369// CHECK: vfmaddsubps   %xmm2, %xmm1, %xmm0, %xmm0
370// CHECK: encoding: [0xc4,0xe3,0xf9,0x5c,0xc2,0x10]
371          vfmaddsubps   %xmm2, %xmm1, %xmm0, %xmm0
372
373// CHECK: vfmaddsubpd  (%rcx), %xmm1, %xmm0, %xmm0
374// CHECK: encoding: [0xc4,0xe3,0xf9,0x5d,0x01,0x10]
375          vfmaddsubpd  (%rcx), %xmm1, %xmm0, %xmm0
376
377// CHECK: vfmaddsubpd   %xmm1, (%rcx), %xmm0, %xmm0
378// CHECK: encoding: [0xc4,0xe3,0x79,0x5d,0x01,0x10]
379          vfmaddsubpd   %xmm1, (%rcx),%xmm0, %xmm0
380
381// CHECK: vfmaddsubpd   %xmm2, %xmm1, %xmm0, %xmm0
382// CHECK: encoding: [0xc4,0xe3,0xf9,0x5d,0xc2,0x10]
383          vfmaddsubpd   %xmm2, %xmm1, %xmm0, %xmm0
384
385// CHECK: vfmaddsubps  (%rcx), %ymm1, %ymm0, %ymm0
386// CHECK: encoding: [0xc4,0xe3,0xfd,0x5c,0x01,0x10]
387          vfmaddsubps  (%rcx), %ymm1, %ymm0, %ymm0
388
389// CHECK: vfmaddsubps   %ymm1, (%rcx), %ymm0, %ymm0
390// CHECK: encoding: [0xc4,0xe3,0x7d,0x5c,0x01,0x10]
391          vfmaddsubps   %ymm1, (%rcx),%ymm0, %ymm0
392
393// CHECK: vfmaddsubps   %ymm2, %ymm1, %ymm0, %ymm0
394// CHECK: encoding: [0xc4,0xe3,0xfd,0x5c,0xc2,0x10]
395          vfmaddsubps   %ymm2, %ymm1, %ymm0, %ymm0
396
397// CHECK: vfmaddsubpd  (%rcx), %ymm1, %ymm0, %ymm0
398// CHECK: encoding: [0xc4,0xe3,0xfd,0x5d,0x01,0x10]
399          vfmaddsubpd  (%rcx), %ymm1, %ymm0, %ymm0
400
401// CHECK: vfmaddsubpd   %ymm1, (%rcx), %ymm0, %ymm0
402// CHECK: encoding: [0xc4,0xe3,0x7d,0x5d,0x01,0x10]
403          vfmaddsubpd   %ymm1, (%rcx),%ymm0, %ymm0
404
405// CHECK: vfmaddsubpd   %ymm2, %ymm1, %ymm0, %ymm0
406// CHECK: encoding: [0xc4,0xe3,0xfd,0x5d,0xc2,0x10]
407          vfmaddsubpd   %ymm2, %ymm1, %ymm0, %ymm0
408
409// vfmsubadd
410// CHECK: vfmsubaddps  (%rcx), %xmm1, %xmm0, %xmm0
411// CHECK: encoding: [0xc4,0xe3,0xf9,0x5e,0x01,0x10]
412          vfmsubaddps  (%rcx), %xmm1, %xmm0, %xmm0
413
414// CHECK: vfmsubaddps   %xmm1, (%rcx), %xmm0, %xmm0
415// CHECK: encoding: [0xc4,0xe3,0x79,0x5e,0x01,0x10]
416          vfmsubaddps   %xmm1, (%rcx),%xmm0, %xmm0
417
418// CHECK: vfmsubaddps   %xmm2, %xmm1, %xmm0, %xmm0
419// CHECK: encoding: [0xc4,0xe3,0xf9,0x5e,0xc2,0x10]
420          vfmsubaddps   %xmm2, %xmm1, %xmm0, %xmm0
421
422// CHECK: vfmsubaddpd  (%rcx), %xmm1, %xmm0, %xmm0
423// CHECK: encoding: [0xc4,0xe3,0xf9,0x5f,0x01,0x10]
424          vfmsubaddpd  (%rcx), %xmm1, %xmm0, %xmm0
425
426// CHECK: vfmsubaddpd   %xmm1, (%rcx), %xmm0, %xmm0
427// CHECK: encoding: [0xc4,0xe3,0x79,0x5f,0x01,0x10]
428          vfmsubaddpd   %xmm1, (%rcx),%xmm0, %xmm0
429
430// CHECK: vfmsubaddpd   %xmm2, %xmm1, %xmm0, %xmm0
431// CHECK: encoding: [0xc4,0xe3,0xf9,0x5f,0xc2,0x10]
432          vfmsubaddpd   %xmm2, %xmm1, %xmm0, %xmm0
433
434// CHECK: vfmsubaddps  (%rcx), %ymm1, %ymm0, %ymm0
435// CHECK: encoding: [0xc4,0xe3,0xfd,0x5e,0x01,0x10]
436          vfmsubaddps  (%rcx), %ymm1, %ymm0, %ymm0
437
438// CHECK: vfmsubaddps   %ymm1, (%rcx), %ymm0, %ymm0
439// CHECK: encoding: [0xc4,0xe3,0x7d,0x5e,0x01,0x10]
440          vfmsubaddps   %ymm1, (%rcx),%ymm0, %ymm0
441
442// CHECK: vfmsubaddps   %ymm2, %ymm1, %ymm0, %ymm0
443// CHECK: encoding: [0xc4,0xe3,0xfd,0x5e,0xc2,0x10]
444          vfmsubaddps   %ymm2, %ymm1, %ymm0, %ymm0
445
446// CHECK: vfmsubaddpd  (%rcx), %ymm1, %ymm0, %ymm0
447// CHECK: encoding: [0xc4,0xe3,0xfd,0x5f,0x01,0x10]
448          vfmsubaddpd  (%rcx), %ymm1, %ymm0, %ymm0
449
450// CHECK: vfmsubaddpd   %ymm1, (%rcx), %ymm0, %ymm0
451// CHECK: encoding: [0xc4,0xe3,0x7d,0x5f,0x01,0x10]
452          vfmsubaddpd   %ymm1, (%rcx),%ymm0, %ymm0
453
454// CHECK: vfmsubaddpd   %ymm2, %ymm1, %ymm0, %ymm0
455// CHECK: encoding: [0xc4,0xe3,0xfd,0x5f,0xc2,0x10]
456          vfmsubaddpd   %ymm2, %ymm1, %ymm0, %ymm0
457