Merging r261365:
[oota-llvm.git] / test / MC / X86 / x86_64-fma4-encoding.s
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