xref: /llvm-project/llvm/test/MC/X86/avx512fp16-complex-fma.s (revision ab40dbfe03d50a2e4a12168beb0ad9ae660916cf)
1// RUN: llvm-mc -triple x86_64-unknown-unknown %s > %t 2> %t.err
2// RUN: FileCheck < %t %s
3// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
4
5// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24
6// CHECK-STDERR: warning: Destination register should be distinct from source registers
7          vfcmaddcph %zmm24, %zmm23, %zmm24
8
9// CHECK: vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
10// CHECK-STDERR: warning: Destination register should be distinct from source registers
11          vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
12
13// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7}
14// CHECK-STDERR: warning: Destination register should be distinct from source registers
15          vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7}
16
17// CHECK: vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
18// CHECK-STDERR: warning: Destination register should be distinct from source registers
19          vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
20
21// CHECK: vfcmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
22// CHECK-STDERR: warning: Destination register should be distinct from source registers
23          vfcmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
24
25// CHECK: vfcmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
26// CHECK-STDERR: warning: Destination register should be distinct from source registers
27          vfcmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
28
29// CHECK: vfcmaddcph  (%rip){1to16}, %zmm23, %zmm23
30// CHECK-STDERR: warning: Destination register should be distinct from source registers
31          vfcmaddcph  (%rip){1to16}, %zmm23, %zmm23
32
33// CHECK: vfcmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
34// CHECK-STDERR: warning: Destination register should be distinct from source registers
35          vfcmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
36
37// CHECK: vfcmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
38// CHECK-STDERR: warning: Destination register should be distinct from source registers
39          vfcmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
40
41// CHECK: vfcmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
42// CHECK-STDERR: warning: Destination register should be distinct from source registers
43          vfcmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
44
45// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24
46// CHECK-STDERR: warning: Destination register should be distinct from source registers
47          vfcmaddcsh %xmm24, %xmm23, %xmm24
48
49// CHECK: vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
50// CHECK-STDERR: warning: Destination register should be distinct from source registers
51          vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
52
53// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
54// CHECK-STDERR: warning: Destination register should be distinct from source registers
55          vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
56
57// CHECK: vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
58// CHECK-STDERR: warning: Destination register should be distinct from source registers
59          vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
60
61// CHECK: vfcmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
62// CHECK-STDERR: warning: Destination register should be distinct from source registers
63          vfcmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
64
65// CHECK: vfcmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
66// CHECK-STDERR: warning: Destination register should be distinct from source registers
67          vfcmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
68
69// CHECK: vfcmaddcsh  (%rip), %xmm23, %xmm23
70// CHECK-STDERR: warning: Destination register should be distinct from source registers
71          vfcmaddcsh  (%rip), %xmm23, %xmm23
72
73// CHECK: vfcmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
74// CHECK-STDERR: warning: Destination register should be distinct from source registers
75          vfcmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
76
77// CHECK: vfcmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
78// CHECK-STDERR: warning: Destination register should be distinct from source registers
79          vfcmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
80
81// CHECK: vfcmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
82// CHECK-STDERR: warning: Destination register should be distinct from source registers
83          vfcmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
84
85// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24
86// CHECK-STDERR: warning: Destination register should be distinct from source registers
87          vfcmulcph %zmm24, %zmm23, %zmm24
88
89// CHECK: vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
90// CHECK-STDERR: warning: Destination register should be distinct from source registers
91          vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
92
93// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24 {%k7}
94// CHECK-STDERR: warning: Destination register should be distinct from source registers
95          vfcmulcph %zmm24, %zmm23, %zmm24 {%k7}
96
97// CHECK: vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
98// CHECK-STDERR: warning: Destination register should be distinct from source registers
99          vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
100
101// CHECK: vfcmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
102// CHECK-STDERR: warning: Destination register should be distinct from source registers
103          vfcmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
104
105// CHECK: vfcmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
106// CHECK-STDERR: warning: Destination register should be distinct from source registers
107          vfcmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
108
109// CHECK: vfcmulcph  (%rip){1to16}, %zmm23, %zmm23
110// CHECK-STDERR: warning: Destination register should be distinct from source registers
111          vfcmulcph  (%rip){1to16}, %zmm23, %zmm23
112
113// CHECK: vfcmulcph  -2048(,%rbp,2), %zmm23, %zmm23
114// CHECK-STDERR: warning: Destination register should be distinct from source registers
115          vfcmulcph  -2048(,%rbp,2), %zmm23, %zmm23
116
117// CHECK: vfcmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
118// CHECK-STDERR: warning: Destination register should be distinct from source registers
119          vfcmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
120
121// CHECK: vfcmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
122// CHECK-STDERR: warning: Destination register should be distinct from source registers
123          vfcmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
124
125// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24
126// CHECK-STDERR: warning: Destination register should be distinct from source registers
127          vfcmulcsh %xmm24, %xmm23, %xmm24
128
129// CHECK: vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
130// CHECK-STDERR: warning: Destination register should be distinct from source registers
131          vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
132
133// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7}
134// CHECK-STDERR: warning: Destination register should be distinct from source registers
135          vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7}
136
137// CHECK: vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
138// CHECK-STDERR: warning: Destination register should be distinct from source registers
139          vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
140
141// CHECK: vfcmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
142// CHECK-STDERR: warning: Destination register should be distinct from source registers
143          vfcmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
144
145// CHECK: vfcmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
146// CHECK-STDERR: warning: Destination register should be distinct from source registers
147          vfcmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
148
149// CHECK: vfcmulcsh  (%rip), %xmm23, %xmm23
150// CHECK-STDERR: warning: Destination register should be distinct from source registers
151          vfcmulcsh  (%rip), %xmm23, %xmm23
152
153// CHECK: vfcmulcsh  -128(,%rbp,2), %xmm23, %xmm23
154// CHECK-STDERR: warning: Destination register should be distinct from source registers
155          vfcmulcsh  -128(,%rbp,2), %xmm23, %xmm23
156
157// CHECK: vfcmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
158// CHECK-STDERR: warning: Destination register should be distinct from source registers
159          vfcmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
160
161// CHECK: vfcmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
162// CHECK-STDERR: warning: Destination register should be distinct from source registers
163          vfcmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
164
165// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24
166// CHECK-STDERR: warning: Destination register should be distinct from source registers
167          vfmaddcph %zmm24, %zmm23, %zmm24
168
169// CHECK: vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
170// CHECK-STDERR: warning: Destination register should be distinct from source registers
171          vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
172
173// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24 {%k7}
174// CHECK-STDERR: warning: Destination register should be distinct from source registers
175          vfmaddcph %zmm24, %zmm23, %zmm24 {%k7}
176
177// CHECK: vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
178// CHECK-STDERR: warning: Destination register should be distinct from source registers
179          vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
180
181// CHECK: vfmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
182// CHECK-STDERR: warning: Destination register should be distinct from source registers
183          vfmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
184
185// CHECK: vfmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
186// CHECK-STDERR: warning: Destination register should be distinct from source registers
187          vfmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
188
189// CHECK: vfmaddcph  (%rip){1to16}, %zmm23, %zmm23
190// CHECK-STDERR: warning: Destination register should be distinct from source registers
191          vfmaddcph  (%rip){1to16}, %zmm23, %zmm23
192
193// CHECK: vfmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
194// CHECK-STDERR: warning: Destination register should be distinct from source registers
195          vfmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
196
197// CHECK: vfmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
198// CHECK-STDERR: warning: Destination register should be distinct from source registers
199          vfmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
200
201// CHECK: vfmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
202// CHECK-STDERR: warning: Destination register should be distinct from source registers
203          vfmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
204
205// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24
206// CHECK-STDERR: warning: Destination register should be distinct from source registers
207          vfmaddcsh %xmm24, %xmm23, %xmm24
208
209// CHECK: vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
210// CHECK-STDERR: warning: Destination register should be distinct from source registers
211          vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
212
213// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
214// CHECK-STDERR: warning: Destination register should be distinct from source registers
215          vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
216
217// CHECK: vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
218// CHECK-STDERR: warning: Destination register should be distinct from source registers
219          vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
220
221// CHECK: vfmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
222// CHECK-STDERR: warning: Destination register should be distinct from source registers
223          vfmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
224
225// CHECK: vfmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
226// CHECK-STDERR: warning: Destination register should be distinct from source registers
227          vfmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
228
229// CHECK: vfmaddcsh  (%rip), %xmm23, %xmm23
230// CHECK-STDERR: warning: Destination register should be distinct from source registers
231          vfmaddcsh  (%rip), %xmm23, %xmm23
232
233// CHECK: vfmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
234// CHECK-STDERR: warning: Destination register should be distinct from source registers
235          vfmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
236
237// CHECK: vfmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
238// CHECK-STDERR: warning: Destination register should be distinct from source registers
239          vfmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
240
241// CHECK: vfmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
242// CHECK-STDERR: warning: Destination register should be distinct from source registers
243          vfmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
244
245// CHECK: vfmulcph %zmm24, %zmm23, %zmm24
246// CHECK-STDERR: warning: Destination register should be distinct from source registers
247          vfmulcph %zmm24, %zmm23, %zmm24
248
249// CHECK: vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
250// CHECK-STDERR: warning: Destination register should be distinct from source registers
251          vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
252
253// CHECK: vfmulcph %zmm24, %zmm23, %zmm24 {%k7}
254// CHECK-STDERR: warning: Destination register should be distinct from source registers
255          vfmulcph %zmm24, %zmm23, %zmm24 {%k7}
256
257// CHECK: vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
258// CHECK-STDERR: warning: Destination register should be distinct from source registers
259          vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
260
261// CHECK: vfmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
262// CHECK-STDERR: warning: Destination register should be distinct from source registers
263          vfmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
264
265// CHECK: vfmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
266// CHECK-STDERR: warning: Destination register should be distinct from source registers
267          vfmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
268
269// CHECK: vfmulcph  (%rip){1to16}, %zmm23, %zmm23
270// CHECK-STDERR: warning: Destination register should be distinct from source registers
271          vfmulcph  (%rip){1to16}, %zmm23, %zmm23
272
273// CHECK: vfmulcph  -2048(,%rbp,2), %zmm23, %zmm23
274// CHECK-STDERR: warning: Destination register should be distinct from source registers
275          vfmulcph  -2048(,%rbp,2), %zmm23, %zmm23
276
277// CHECK: vfmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
278// CHECK-STDERR: warning: Destination register should be distinct from source registers
279          vfmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
280
281// CHECK: vfmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
282// CHECK-STDERR: warning: Destination register should be distinct from source registers
283          vfmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
284
285// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24
286// CHECK-STDERR: warning: Destination register should be distinct from source registers
287          vfmulcsh %xmm24, %xmm23, %xmm24
288
289// CHECK: vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
290// CHECK-STDERR: warning: Destination register should be distinct from source registers
291          vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
292
293// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24 {%k7}
294// CHECK-STDERR: warning: Destination register should be distinct from source registers
295          vfmulcsh %xmm24, %xmm23, %xmm24 {%k7}
296
297// CHECK: vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
298// CHECK-STDERR: warning: Destination register should be distinct from source registers
299          vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
300
301// CHECK: vfmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
302// CHECK-STDERR: warning: Destination register should be distinct from source registers
303          vfmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
304
305// CHECK: vfmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
306// CHECK-STDERR: warning: Destination register should be distinct from source registers
307          vfmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
308
309// CHECK: vfmulcsh  (%rip), %xmm23, %xmm23
310// CHECK-STDERR: warning: Destination register should be distinct from source registers
311          vfmulcsh  (%rip), %xmm23, %xmm23
312
313// CHECK: vfmulcsh  -128(,%rbp,2), %xmm23, %xmm23
314// CHECK-STDERR: warning: Destination register should be distinct from source registers
315          vfmulcsh  -128(,%rbp,2), %xmm23, %xmm23
316
317// CHECK: vfmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
318// CHECK-STDERR: warning: Destination register should be distinct from source registers
319          vfmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
320
321// CHECK: vfmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
322// CHECK-STDERR: warning: Destination register should be distinct from source registers
323          vfmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
324
325