Lines Matching +full:0 +full:xc2
10 ; CHECK-FMA: # %bb.0: # %entry
11 ; CHECK-FMA-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xa8,0xc2]
13 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
16 ; CHECK-AVX512VL: # %bb.0: # %entry
17 …: vfmadd213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xa8,0xc2]
19 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
22 ; CHECK-FMA-WIN: # %bb.0: # %entry
23 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
24 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
25 ; CHECK-FMA-WIN-NEXT: vfmadd213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xa8,0x00]
27 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
29 %0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c) #2
30 ret <4 x float> %0
35 ; CHECK-FMA: # %bb.0: # %entry
36 ; CHECK-FMA-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xa8,0xc2]
38 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
41 ; CHECK-AVX512VL: # %bb.0: # %entry
42 …: vfmadd213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xa8,0xc2]
44 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
47 ; CHECK-FMA-WIN: # %bb.0: # %entry
48 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
49 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
50 ; CHECK-FMA-WIN-NEXT: vfmadd213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xa8,0x00]
52 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
54 %0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c) #2
55 ret <2 x double> %0
60 ; CHECK-FMA: # %bb.0: # %entry
61 ; CHECK-FMA-NEXT: vfmadd213ss %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xa9,0xc2]
63 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
66 ; CHECK-AVX512VL: # %bb.0: # %entry
67 …: vfmadd213ss %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xa9,0xc2]
69 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
72 ; CHECK-FMA-WIN: # %bb.0: # %entry
73 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x01]
74 ; CHECK-FMA-WIN-NEXT: vmovss (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7a,0x10,0x08]
75 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero,zero,zero
76 ; CHECK-FMA-WIN-NEXT: vfmadd132ss (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0x99,0x02]
78 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
80 %0 = extractelement <4 x float> %a, i64 0
81 %1 = extractelement <4 x float> %b, i64 0
82 %2 = extractelement <4 x float> %c, i64 0
83 %3 = tail call float @llvm.fma.f32(float %0, float %1, float %2) #2
84 %4 = insertelement <4 x float> %a, float %3, i64 0
90 ; CHECK-FMA: # %bb.0: # %entry
91 ; CHECK-FMA-NEXT: vfmadd213sd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xa9,0xc2]
93 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
96 ; CHECK-AVX512VL: # %bb.0: # %entry
97 …: vfmadd213sd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xa9,0xc2]
99 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
102 ; CHECK-FMA-WIN: # %bb.0: # %entry
103 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x01]
104 ; CHECK-FMA-WIN-NEXT: vmovsd (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7b,0x10,0x08]
105 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero
106 ; CHECK-FMA-WIN-NEXT: vfmadd132sd (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0x99,0x02]
108 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
110 %0 = extractelement <2 x double> %a, i64 0
111 %1 = extractelement <2 x double> %b, i64 0
112 %2 = extractelement <2 x double> %c, i64 0
113 %3 = tail call double @llvm.fma.f64(double %0, double %1, double %2) #2
114 %4 = insertelement <2 x double> %a, double %3, i64 0
120 ; CHECK-FMA: # %bb.0: # %entry
121 ; CHECK-FMA-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xaa,0xc2]
123 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
126 ; CHECK-AVX512VL: # %bb.0: # %entry
127 …: vfmsub213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xaa,0xc2]
129 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
132 ; CHECK-FMA-WIN: # %bb.0: # %entry
133 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
134 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
135 ; CHECK-FMA-WIN-NEXT: vfmsub213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xaa,0x00]
137 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
140 %0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %sub.i) #2
141 ret <4 x float> %0
146 ; CHECK-FMA: # %bb.0: # %entry
147 ; CHECK-FMA-NEXT: vfmsub213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xaa,0xc2]
149 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
152 ; CHECK-AVX512VL: # %bb.0: # %entry
153 …: vfmsub213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xaa,0xc2]
155 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
158 ; CHECK-FMA-WIN: # %bb.0: # %entry
159 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
160 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
161 ; CHECK-FMA-WIN-NEXT: vfmsub213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xaa,0x00]
163 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
166 …%0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %sub.i)…
167 ret <2 x double> %0
172 ; CHECK-FMA: # %bb.0: # %entry
173 ; CHECK-FMA-NEXT: vfmsub213ss %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xab,0xc2]
175 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
178 ; CHECK-AVX512VL: # %bb.0: # %entry
179 …: vfmsub213ss %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xab,0xc2]
181 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
184 ; CHECK-FMA-WIN: # %bb.0: # %entry
185 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x01]
186 ; CHECK-FMA-WIN-NEXT: vmovss (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7a,0x10,0x08]
187 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero,zero,zero
188 ; CHECK-FMA-WIN-NEXT: vfmsub132ss (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0x9b,0x02]
190 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
192 %0 = extractelement <4 x float> %a, i64 0
193 %1 = extractelement <4 x float> %b, i64 0
194 %.rhs.i = extractelement <4 x float> %c, i64 0
196 %3 = tail call float @llvm.fma.f32(float %0, float %1, float %2) #2
197 %4 = insertelement <4 x float> %a, float %3, i64 0
203 ; CHECK-FMA: # %bb.0: # %entry
204 ; CHECK-FMA-NEXT: vfmsub213sd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xab,0xc2]
206 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
209 ; CHECK-AVX512VL: # %bb.0: # %entry
210 …: vfmsub213sd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xab,0xc2]
212 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
215 ; CHECK-FMA-WIN: # %bb.0: # %entry
216 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x01]
217 ; CHECK-FMA-WIN-NEXT: vmovsd (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7b,0x10,0x08]
218 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero
219 ; CHECK-FMA-WIN-NEXT: vfmsub132sd (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0x9b,0x02]
221 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
223 %0 = extractelement <2 x double> %a, i64 0
224 %1 = extractelement <2 x double> %b, i64 0
225 %.rhs.i = extractelement <2 x double> %c, i64 0
227 %3 = tail call double @llvm.fma.f64(double %0, double %1, double %2) #2
228 %4 = insertelement <2 x double> %a, double %3, i64 0
234 ; CHECK-FMA: # %bb.0: # %entry
235 ; CHECK-FMA-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xac,0xc2]
237 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
240 ; CHECK-AVX512VL: # %bb.0: # %entry
241 … vfnmadd213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xac,0xc2]
243 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
246 ; CHECK-FMA-WIN: # %bb.0: # %entry
247 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
248 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
249 ; CHECK-FMA-WIN-NEXT: vfnmadd213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xac,0x00]
251 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
254 %0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %sub.i, <4 x float> %b, <4 x float> %c) #2
255 ret <4 x float> %0
260 ; CHECK-FMA: # %bb.0: # %entry
261 ; CHECK-FMA-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xac,0xc2]
263 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
266 ; CHECK-AVX512VL: # %bb.0: # %entry
267 … vfnmadd213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xac,0xc2]
269 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
272 ; CHECK-FMA-WIN: # %bb.0: # %entry
273 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
274 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
275 ; CHECK-FMA-WIN-NEXT: vfnmadd213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xac,0x00]
277 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
280 …%0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %sub.i, <2 x double> %b, <2 x double> %c)…
281 ret <2 x double> %0
286 ; CHECK-FMA: # %bb.0: # %entry
287 ; CHECK-FMA-NEXT: vfnmadd213ss %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xad,0xc2]
289 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
292 ; CHECK-AVX512VL: # %bb.0: # %entry
293 … vfnmadd213ss %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xad,0xc2]
295 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
298 ; CHECK-FMA-WIN: # %bb.0: # %entry
299 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x01]
300 ; CHECK-FMA-WIN-NEXT: vmovss (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7a,0x10,0x08]
301 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero,zero,zero
302 ; CHECK-FMA-WIN-NEXT: vfnmadd132ss (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0x9d,0x02]
304 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
306 %0 = extractelement <4 x float> %a, i64 0
307 %.rhs.i = extractelement <4 x float> %b, i64 0
309 %2 = extractelement <4 x float> %c, i64 0
310 %3 = tail call float @llvm.fma.f32(float %0, float %1, float %2) #2
311 %4 = insertelement <4 x float> %a, float %3, i64 0
317 ; CHECK-FMA: # %bb.0: # %entry
318 ; CHECK-FMA-NEXT: vfnmadd213sd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xad,0xc2]
320 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
323 ; CHECK-AVX512VL: # %bb.0: # %entry
324 … vfnmadd213sd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xad,0xc2]
326 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
329 ; CHECK-FMA-WIN: # %bb.0: # %entry
330 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x01]
331 ; CHECK-FMA-WIN-NEXT: vmovsd (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7b,0x10,0x08]
332 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero
333 ; CHECK-FMA-WIN-NEXT: vfnmadd132sd (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0x9d,0x02]
335 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
337 %0 = extractelement <2 x double> %a, i64 0
338 %.rhs.i = extractelement <2 x double> %b, i64 0
340 %2 = extractelement <2 x double> %c, i64 0
341 %3 = tail call double @llvm.fma.f64(double %0, double %1, double %2) #2
342 %4 = insertelement <2 x double> %a, double %3, i64 0
348 ; CHECK-FMA: # %bb.0: # %entry
349 ; CHECK-FMA-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xae,0xc2]
351 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
354 ; CHECK-AVX512VL: # %bb.0: # %entry
355 … vfnmsub213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xae,0xc2]
357 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
360 ; CHECK-FMA-WIN: # %bb.0: # %entry
361 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
362 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
363 ; CHECK-FMA-WIN-NEXT: vfnmsub213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xae,0x00]
365 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
369 …%0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %sub.i, <4 x float> %b, <4 x float> %sub1.i…
370 ret <4 x float> %0
375 ; CHECK-FMA: # %bb.0: # %entry
376 ; CHECK-FMA-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xae,0xc2]
378 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
381 ; CHECK-AVX512VL: # %bb.0: # %entry
382 … vfnmsub213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xae,0xc2]
384 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
387 ; CHECK-FMA-WIN: # %bb.0: # %entry
388 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
389 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
390 ; CHECK-FMA-WIN-NEXT: vfnmsub213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xae,0x00]
392 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
396 …%0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %sub.i, <2 x double> %b, <2 x double> %su…
397 ret <2 x double> %0
402 ; CHECK-FMA: # %bb.0: # %entry
403 ; CHECK-FMA-NEXT: vfnmsub213ss %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xaf,0xc2]
405 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
408 ; CHECK-AVX512VL: # %bb.0: # %entry
409 … vfnmsub213ss %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xaf,0xc2]
411 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
414 ; CHECK-FMA-WIN: # %bb.0: # %entry
415 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x01]
416 ; CHECK-FMA-WIN-NEXT: vmovss (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7a,0x10,0x08]
417 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero,zero,zero
418 ; CHECK-FMA-WIN-NEXT: vfnmsub132ss (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0x9f,0x02]
420 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
422 %0 = extractelement <4 x float> %a, i64 0
423 %.rhs.i = extractelement <4 x float> %b, i64 0
425 %.rhs2.i = extractelement <4 x float> %c, i64 0
427 %3 = tail call float @llvm.fma.f32(float %0, float %1, float %2) #2
428 %4 = insertelement <4 x float> %a, float %3, i64 0
434 ; CHECK-FMA: # %bb.0: # %entry
435 ; CHECK-FMA-NEXT: vfnmsub213sd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xaf,0xc2]
437 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
440 ; CHECK-AVX512VL: # %bb.0: # %entry
441 … vfnmsub213sd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xaf,0xc2]
443 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
446 ; CHECK-FMA-WIN: # %bb.0: # %entry
447 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x01]
448 ; CHECK-FMA-WIN-NEXT: vmovsd (%r8), %xmm1 # encoding: [0xc4,0xc1,0x7b,0x10,0x08]
449 ; CHECK-FMA-WIN-NEXT: # xmm1 = mem[0],zero
450 ; CHECK-FMA-WIN-NEXT: vfnmsub132sd (%rdx), %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0x9f,0x02]
452 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
454 %0 = extractelement <2 x double> %a, i64 0
455 %.rhs.i = extractelement <2 x double> %b, i64 0
457 %.rhs2.i = extractelement <2 x double> %c, i64 0
459 %3 = tail call double @llvm.fma.f64(double %0, double %1, double %2) #2
460 %4 = insertelement <2 x double> %a, double %3, i64 0
466 ; CHECK-FMA: # %bb.0: # %entry
467 ; CHECK-FMA-NEXT: vfmaddsub213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xa6,0xc2]
469 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
472 ; CHECK-AVX512VL: # %bb.0: # %entry
473 … vfmaddsub213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xa6,0xc2]
475 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
478 ; CHECK-FMA-WIN: # %bb.0: # %entry
479 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
480 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
481 ; CHECK-FMA-WIN-NEXT: vfmaddsub213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xa6,0x00]
483 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
485 %0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c) #2
488 %3 = shufflevector <4 x float> %2, <4 x float> %0, <4 x i32> <i32 0, i32 5, i32 2, i32 7>
494 ; CHECK-FMA: # %bb.0: # %entry
495 ; CHECK-FMA-NEXT: vfmaddsub213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xa6,0xc2]
497 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
500 ; CHECK-AVX512VL: # %bb.0: # %entry
501 … vfmaddsub213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xa6,0xc2]
503 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
506 ; CHECK-FMA-WIN: # %bb.0: # %entry
507 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
508 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
509 ; CHECK-FMA-WIN-NEXT: vfmaddsub213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xa6,0x00]
511 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
513 %0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c) #2
516 %3 = shufflevector <2 x double> %2, <2 x double> %0, <2 x i32> <i32 0, i32 3>
522 ; CHECK-FMA: # %bb.0: # %entry
523 ; CHECK-FMA-NEXT: vfmsubadd213ps %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x71,0xa7,0xc2]
525 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
528 ; CHECK-AVX512VL: # %bb.0: # %entry
529 … vfmsubadd213ps %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0xa7,0xc2]
531 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
534 ; CHECK-FMA-WIN: # %bb.0: # %entry
535 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %xmm1 # encoding: [0xc5,0xf8,0x28,0x09]
536 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %xmm0 # encoding: [0xc5,0xf8,0x28,0x02]
537 ; CHECK-FMA-WIN-NEXT: vfmsubadd213ps (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0x71,0xa7,0x00]
539 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
542 %0 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %sub.i) #2
544 %2 = shufflevector <4 x float> %1, <4 x float> %0, <4 x i32> <i32 0, i32 5, i32 2, i32 7>
550 ; CHECK-FMA: # %bb.0: # %entry
551 ; CHECK-FMA-NEXT: vfmsubadd213pd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0xf1,0xa7,0xc2]
553 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
556 ; CHECK-AVX512VL: # %bb.0: # %entry
557 … vfmsubadd213pd %xmm2, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf1,0xa7,0xc2]
559 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
562 ; CHECK-FMA-WIN: # %bb.0: # %entry
563 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %xmm1 # encoding: [0xc5,0xf9,0x28,0x09]
564 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %xmm0 # encoding: [0xc5,0xf9,0x28,0x02]
565 ; CHECK-FMA-WIN-NEXT: vfmsubadd213pd (%r8), %xmm1, %xmm0 # encoding: [0xc4,0xc2,0xf1,0xa7,0x00]
567 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
570 …%0 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %sub.i)…
572 %2 = shufflevector <2 x double> %1, <2 x double> %0, <2 x i32> <i32 0, i32 3>
578 ; CHECK-FMA: # %bb.0: # %entry
579 ; CHECK-FMA-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xa8,0xc2]
581 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
584 ; CHECK-AVX512VL: # %bb.0: # %entry
585 …: vfmadd213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xa8,0xc2]
587 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
590 ; CHECK-FMA-WIN: # %bb.0: # %entry
591 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
592 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
593 ; CHECK-FMA-WIN-NEXT: vfmadd213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xa8,0x00]
595 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
597 %0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c) #2
598 ret <8 x float> %0
603 ; CHECK-FMA: # %bb.0: # %entry
604 ; CHECK-FMA-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xa8,0xc2]
606 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
609 ; CHECK-AVX512VL: # %bb.0: # %entry
610 …: vfmadd213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xa8,0xc2]
612 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
615 ; CHECK-FMA-WIN: # %bb.0: # %entry
616 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
617 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
618 ; CHECK-FMA-WIN-NEXT: vfmadd213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xa8,0x00]
620 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
622 %0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c) #2
623 ret <4 x double> %0
628 ; CHECK-FMA: # %bb.0: # %entry
629 ; CHECK-FMA-NEXT: vfmsub213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xaa,0xc2]
631 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
634 ; CHECK-AVX512VL: # %bb.0: # %entry
635 …: vfmsub213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xaa,0xc2]
637 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
640 ; CHECK-FMA-WIN: # %bb.0: # %entry
641 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
642 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
643 ; CHECK-FMA-WIN-NEXT: vfmsub213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xaa,0x00]
645 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
648 %0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %sub.i) #2
649 ret <8 x float> %0
654 ; CHECK-FMA: # %bb.0: # %entry
655 ; CHECK-FMA-NEXT: vfmsub213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xaa,0xc2]
657 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
660 ; CHECK-AVX512VL: # %bb.0: # %entry
661 …: vfmsub213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xaa,0xc2]
663 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
666 ; CHECK-FMA-WIN: # %bb.0: # %entry
667 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
668 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
669 ; CHECK-FMA-WIN-NEXT: vfmsub213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xaa,0x00]
671 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
674 …%0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %sub.i)…
675 ret <4 x double> %0
680 ; CHECK-FMA: # %bb.0: # %entry
681 ; CHECK-FMA-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xac,0xc2]
683 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
686 ; CHECK-AVX512VL: # %bb.0: # %entry
687 … vfnmadd213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xac,0xc2]
689 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
692 ; CHECK-FMA-WIN: # %bb.0: # %entry
693 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
694 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
695 ; CHECK-FMA-WIN-NEXT: vfnmadd213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xac,0x00]
697 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
700 %0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %sub.i, <8 x float> %b, <8 x float> %c) #2
701 ret <8 x float> %0
706 ; CHECK-FMA: # %bb.0: # %entry
707 ; CHECK-FMA-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xac,0xc2]
709 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
712 ; CHECK-AVX512VL: # %bb.0: # %entry
713 … vfnmadd213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xac,0xc2]
715 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
718 ; CHECK-FMA-WIN: # %bb.0: # %entry
719 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
720 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
721 ; CHECK-FMA-WIN-NEXT: vfnmadd213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xac,0x00]
723 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
726 …%0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %sub.i, <4 x double> %b, <4 x double> %c)…
727 ret <4 x double> %0
732 ; CHECK-FMA: # %bb.0: # %entry
733 ; CHECK-FMA-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xae,0xc2]
735 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
738 ; CHECK-AVX512VL: # %bb.0: # %entry
739 … vfnmsub213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xae,0xc2]
741 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
744 ; CHECK-FMA-WIN: # %bb.0: # %entry
745 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
746 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
747 ; CHECK-FMA-WIN-NEXT: vfnmsub213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xae,0x00]
749 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
753 …%0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %sub.i, <8 x float> %b, <8 x float> %sub1.i…
754 ret <8 x float> %0
759 ; CHECK-FMA: # %bb.0: # %entry
760 ; CHECK-FMA-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xae,0xc2]
762 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
765 ; CHECK-AVX512VL: # %bb.0: # %entry
766 … vfnmsub213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xae,0xc2]
768 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
771 ; CHECK-FMA-WIN: # %bb.0: # %entry
772 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
773 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
774 ; CHECK-FMA-WIN-NEXT: vfnmsub213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xae,0x00]
776 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
780 …%0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %sub.i, <4 x double> %b, <4 x double> %su…
781 ret <4 x double> %0
786 ; CHECK-FMA: # %bb.0: # %entry
787 ; CHECK-FMA-NEXT: vfmaddsub213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xa6,0xc2]
789 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
792 ; CHECK-AVX512VL: # %bb.0: # %entry
793 … vfmaddsub213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xa6,0xc2]
795 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
798 ; CHECK-FMA-WIN: # %bb.0: # %entry
799 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
800 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
801 ; CHECK-FMA-WIN-NEXT: vfmaddsub213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xa6,0x00]
803 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
805 %0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c) #2
808 …%3 = shufflevector <8 x float> %2, <8 x float> %0, <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, …
814 ; CHECK-FMA: # %bb.0: # %entry
815 ; CHECK-FMA-NEXT: vfmaddsub213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xa6,0xc2]
817 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
820 ; CHECK-AVX512VL: # %bb.0: # %entry
821 … vfmaddsub213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xa6,0xc2]
823 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
826 ; CHECK-FMA-WIN: # %bb.0: # %entry
827 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
828 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
829 ; CHECK-FMA-WIN-NEXT: vfmaddsub213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xa6,0x00]
831 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
833 %0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c) #2
836 %3 = shufflevector <4 x double> %2, <4 x double> %0, <4 x i32> <i32 0, i32 5, i32 2, i32 7>
842 ; CHECK-FMA: # %bb.0: # %entry
843 ; CHECK-FMA-NEXT: vfmsubadd213ps %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x75,0xa7,0xc2]
845 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
848 ; CHECK-AVX512VL: # %bb.0: # %entry
849 … vfmsubadd213ps %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0xa7,0xc2]
851 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
854 ; CHECK-FMA-WIN: # %bb.0: # %entry
855 ; CHECK-FMA-WIN-NEXT: vmovaps (%rcx), %ymm1 # encoding: [0xc5,0xfc,0x28,0x09]
856 ; CHECK-FMA-WIN-NEXT: vmovaps (%rdx), %ymm0 # encoding: [0xc5,0xfc,0x28,0x02]
857 ; CHECK-FMA-WIN-NEXT: vfmsubadd213ps (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0x75,0xa7,0x00]
859 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
862 %0 = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %sub.i) #2
864 …%2 = shufflevector <8 x float> %1, <8 x float> %0, <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, …
870 ; CHECK-FMA: # %bb.0: # %entry
871 ; CHECK-FMA-NEXT: vfmsubadd213pd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0xf5,0xa7,0xc2]
873 ; CHECK-FMA-NEXT: retq # encoding: [0xc3]
876 ; CHECK-AVX512VL: # %bb.0: # %entry
877 … vfmsubadd213pd %ymm2, %ymm1, %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf5,0xa7,0xc2]
879 ; CHECK-AVX512VL-NEXT: retq # encoding: [0xc3]
882 ; CHECK-FMA-WIN: # %bb.0: # %entry
883 ; CHECK-FMA-WIN-NEXT: vmovapd (%rcx), %ymm1 # encoding: [0xc5,0xfd,0x28,0x09]
884 ; CHECK-FMA-WIN-NEXT: vmovapd (%rdx), %ymm0 # encoding: [0xc5,0xfd,0x28,0x02]
885 ; CHECK-FMA-WIN-NEXT: vfmsubadd213pd (%r8), %ymm1, %ymm0 # encoding: [0xc4,0xc2,0xf5,0xa7,0x00]
887 ; CHECK-FMA-WIN-NEXT: retq # encoding: [0xc3]
890 …%0 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %sub.i)…
892 %2 = shufflevector <4 x double> %1, <4 x double> %0, <4 x i32> <i32 0, i32 5, i32 2, i32 7>