Lines Matching refs:FMA4

3 …mattr=+avx,+fma4,+fma -fp-contract=fast | FileCheck %s --check-prefix=FMA4 --check-prefix=FMA4-INFS
4 …own -mattr=+avx,+fma4 -fp-contract=fast | FileCheck %s --check-prefix=FMA4 --check-prefix=FMA4-INFS
7 …contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=FMA4 --check-prefix=FMA4-NOINFS
8 …contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=FMA4 --check-prefix=FMA4-NOINFS
22 ; FMA4-LABEL: test_16f32_fmadd:
23 ; FMA4: # %bb.0:
24 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm4
25 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm5
26 ; FMA4-NEXT: retq
44 ; FMA4-LABEL: test_8f64_fmadd:
45 ; FMA4: # %bb.0:
46 ; FMA4-NEXT: vfmaddpd {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm4
47 ; FMA4-NEXT: vfmaddpd {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm5
48 ; FMA4-NEXT: retq
70 ; FMA4-LABEL: test_16f32_fmsub:
71 ; FMA4: # %bb.0:
72 ; FMA4-NEXT: vfmsubps {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm4
73 ; FMA4-NEXT: vfmsubps {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm5
74 ; FMA4-NEXT: retq
92 ; FMA4-LABEL: test_8f64_fmsub:
93 ; FMA4: # %bb.0:
94 ; FMA4-NEXT: vfmsubpd {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm4
95 ; FMA4-NEXT: vfmsubpd {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm5
96 ; FMA4-NEXT: retq
118 ; FMA4-LABEL: test_16f32_fnmadd:
119 ; FMA4: # %bb.0:
120 ; FMA4-NEXT: vfnmaddps {{.*#+}} ymm0 = -(ymm0 * ymm2) + ymm4
121 ; FMA4-NEXT: vfnmaddps {{.*#+}} ymm1 = -(ymm1 * ymm3) + ymm5
122 ; FMA4-NEXT: retq
140 ; FMA4-LABEL: test_8f64_fnmadd:
141 ; FMA4: # %bb.0:
142 ; FMA4-NEXT: vfnmaddpd {{.*#+}} ymm0 = -(ymm0 * ymm2) + ymm4
143 ; FMA4-NEXT: vfnmaddpd {{.*#+}} ymm1 = -(ymm1 * ymm3) + ymm5
144 ; FMA4-NEXT: retq
166 ; FMA4-LABEL: test_16f32_fnmsub:
167 ; FMA4: # %bb.0:
168 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm4
169 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm5
170 ; FMA4-NEXT: retq
189 ; FMA4-LABEL: test_8f64_fnmsub:
190 ; FMA4: # %bb.0:
191 ; FMA4-NEXT: vfnmsubpd {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm4
192 ; FMA4-NEXT: vfnmsubpd {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm5
193 ; FMA4-NEXT: retq
216 ; FMA4-LABEL: test_16f32_fmadd_load:
217 ; FMA4: # %bb.0:
218 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * mem) + ymm2
219 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * mem) + ymm3
220 ; FMA4-NEXT: retq
239 ; FMA4-LABEL: test_8f64_fmsub_load:
240 ; FMA4: # %bb.0:
241 ; FMA4-NEXT: vfmsubpd {{.*#+}} ymm0 = (ymm0 * mem) - ymm2
242 ; FMA4-NEXT: vfmsubpd {{.*#+}} ymm1 = (ymm1 * mem) - ymm3
243 ; FMA4-NEXT: retq
269 ; FMA4-INFS-LABEL: test_v16f32_mul_add_x_one_y:
270 ; FMA4-INFS: # %bb.0:
271 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E…
272 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm1, %ymm1
273 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm0, %ymm0
274 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
275 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
276 ; FMA4-INFS-NEXT: retq
290 ; FMA4-NOINFS-LABEL: test_v16f32_mul_add_x_one_y:
291 ; FMA4-NOINFS: # %bb.0:
292 ; FMA4-NOINFS-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm2
293 ; FMA4-NOINFS-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm3
294 ; FMA4-NOINFS-NEXT: retq
315 ; FMA4-INFS-LABEL: test_v8f64_mul_y_add_x_one:
316 ; FMA4-INFS: # %bb.0:
317 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
318 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm1, %ymm1
319 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm0, %ymm0
320 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
321 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
322 ; FMA4-INFS-NEXT: retq
336 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_add_x_one:
337 ; FMA4-NOINFS: # %bb.0:
338 ; FMA4-NOINFS-NEXT: vfmaddpd {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm2
339 ; FMA4-NOINFS-NEXT: vfmaddpd {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm3
340 ; FMA4-NOINFS-NEXT: retq
361 ; FMA4-INFS-LABEL: test_v16f32_mul_add_x_negone_y:
362 ; FMA4-INFS: # %bb.0:
363 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E…
364 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm1, %ymm1
365 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm0, %ymm0
366 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
367 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
368 ; FMA4-INFS-NEXT: retq
382 ; FMA4-NOINFS-LABEL: test_v16f32_mul_add_x_negone_y:
383 ; FMA4-NOINFS: # %bb.0:
384 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm2
385 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm3
386 ; FMA4-NOINFS-NEXT: retq
407 ; FMA4-INFS-LABEL: test_v8f64_mul_y_add_x_negone:
408 ; FMA4-INFS: # %bb.0:
409 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0]
410 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm1, %ymm1
411 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm0, %ymm0
412 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
413 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
414 ; FMA4-INFS-NEXT: retq
428 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_add_x_negone:
429 ; FMA4-NOINFS: # %bb.0:
430 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm2
431 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm3
432 ; FMA4-NOINFS-NEXT: retq
453 ; FMA4-INFS-LABEL: test_v16f32_mul_sub_one_x_y:
454 ; FMA4-INFS: # %bb.0:
455 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E…
456 ; FMA4-INFS-NEXT: vsubps %ymm1, %ymm4, %ymm1
457 ; FMA4-INFS-NEXT: vsubps %ymm0, %ymm4, %ymm0
458 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
459 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
460 ; FMA4-INFS-NEXT: retq
475 ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_one_x_y:
476 ; FMA4-NOINFS: # %bb.0:
477 ; FMA4-NOINFS-NEXT: vfnmaddps {{.*#+}} ymm0 = -(ymm0 * ymm2) + ymm2
478 ; FMA4-NOINFS-NEXT: vfnmaddps {{.*#+}} ymm1 = -(ymm1 * ymm3) + ymm3
479 ; FMA4-NOINFS-NEXT: retq
500 ; FMA4-INFS-LABEL: test_v8f64_mul_y_sub_one_x:
501 ; FMA4-INFS: # %bb.0:
502 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
503 ; FMA4-INFS-NEXT: vsubpd %ymm1, %ymm4, %ymm1
504 ; FMA4-INFS-NEXT: vsubpd %ymm0, %ymm4, %ymm0
505 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
506 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
507 ; FMA4-INFS-NEXT: retq
522 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_one_x:
523 ; FMA4-NOINFS: # %bb.0:
524 ; FMA4-NOINFS-NEXT: vfnmaddpd {{.*#+}} ymm0 = -(ymm0 * ymm2) + ymm2
525 ; FMA4-NOINFS-NEXT: vfnmaddpd {{.*#+}} ymm1 = -(ymm1 * ymm3) + ymm3
526 ; FMA4-NOINFS-NEXT: retq
547 ; FMA4-INFS-LABEL: test_v16f32_mul_sub_negone_x_y:
548 ; FMA4-INFS: # %bb.0:
549 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E…
550 ; FMA4-INFS-NEXT: vsubps %ymm1, %ymm4, %ymm1
551 ; FMA4-INFS-NEXT: vsubps %ymm0, %ymm4, %ymm0
552 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
553 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
554 ; FMA4-INFS-NEXT: retq
569 ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_negone_x_y:
570 ; FMA4-NOINFS: # %bb.0:
571 ; FMA4-NOINFS-NEXT: vfnmsubps {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm2
572 ; FMA4-NOINFS-NEXT: vfnmsubps {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm3
573 ; FMA4-NOINFS-NEXT: retq
594 ; FMA4-INFS-LABEL: test_v8f64_mul_y_sub_negone_x:
595 ; FMA4-INFS: # %bb.0:
596 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0]
597 ; FMA4-INFS-NEXT: vsubpd %ymm1, %ymm4, %ymm1
598 ; FMA4-INFS-NEXT: vsubpd %ymm0, %ymm4, %ymm0
599 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
600 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
601 ; FMA4-INFS-NEXT: retq
616 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_negone_x:
617 ; FMA4-NOINFS: # %bb.0:
618 ; FMA4-NOINFS-NEXT: vfnmsubpd {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm2
619 ; FMA4-NOINFS-NEXT: vfnmsubpd {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm3
620 ; FMA4-NOINFS-NEXT: retq
641 ; FMA4-INFS-LABEL: test_v16f32_mul_sub_x_one_y:
642 ; FMA4-INFS: # %bb.0:
643 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0,-1.0E…
644 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm1, %ymm1
645 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm0, %ymm0
646 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
647 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
648 ; FMA4-INFS-NEXT: retq
662 ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_x_one_y:
663 ; FMA4-NOINFS: # %bb.0:
664 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm2
665 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm3
666 ; FMA4-NOINFS-NEXT: retq
687 ; FMA4-INFS-LABEL: test_v8f64_mul_y_sub_x_one:
688 ; FMA4-INFS: # %bb.0:
689 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [-1.0E+0,-1.0E+0,-1.0E+0,-1.0E+0]
690 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm1, %ymm1
691 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm0, %ymm0
692 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
693 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
694 ; FMA4-INFS-NEXT: retq
708 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_x_one:
709 ; FMA4-NOINFS: # %bb.0:
710 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm2
711 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm3
712 ; FMA4-NOINFS-NEXT: retq
733 ; FMA4-INFS-LABEL: test_v16f32_mul_sub_x_negone_y:
734 ; FMA4-INFS: # %bb.0:
735 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E…
736 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm1, %ymm1
737 ; FMA4-INFS-NEXT: vaddps %ymm4, %ymm0, %ymm0
738 ; FMA4-INFS-NEXT: vmulps %ymm2, %ymm0, %ymm0
739 ; FMA4-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1
740 ; FMA4-INFS-NEXT: retq
754 ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_x_negone_y:
755 ; FMA4-NOINFS: # %bb.0:
756 ; FMA4-NOINFS-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm2
757 ; FMA4-NOINFS-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm3
758 ; FMA4-NOINFS-NEXT: retq
779 ; FMA4-INFS-LABEL: test_v8f64_mul_y_sub_x_negone:
780 ; FMA4-INFS: # %bb.0:
781 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm4 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
782 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm1, %ymm1
783 ; FMA4-INFS-NEXT: vaddpd %ymm4, %ymm0, %ymm0
784 ; FMA4-INFS-NEXT: vmulpd %ymm0, %ymm2, %ymm0
785 ; FMA4-INFS-NEXT: vmulpd %ymm1, %ymm3, %ymm1
786 ; FMA4-INFS-NEXT: retq
800 ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_x_negone:
801 ; FMA4-NOINFS: # %bb.0:
802 ; FMA4-NOINFS-NEXT: vfmaddpd {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm2
803 ; FMA4-NOINFS-NEXT: vfmaddpd {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm3
804 ; FMA4-NOINFS-NEXT: retq
831 ; FMA4-INFS-LABEL: test_v16f32_interp:
832 ; FMA4-INFS: # %bb.0:
833 ; FMA4-INFS-NEXT: vmovaps {{.*#+}} ymm6 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E…
834 ; FMA4-INFS-NEXT: vsubps %ymm4, %ymm6, %ymm7
835 ; FMA4-INFS-NEXT: vsubps %ymm5, %ymm6, %ymm6
836 ; FMA4-INFS-NEXT: vmulps %ymm6, %ymm3, %ymm3
837 ; FMA4-INFS-NEXT: vmulps %ymm7, %ymm2, %ymm2
838 ; FMA4-INFS-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * ymm4) + ymm2
839 ; FMA4-INFS-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * ymm5) + ymm3
840 ; FMA4-INFS-NEXT: retq
858 ; FMA4-NOINFS-LABEL: test_v16f32_interp:
859 ; FMA4-NOINFS: # %bb.0:
860 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm3 = (ymm5 * ymm3) - ymm3
861 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm2 = (ymm4 * ymm2) - ymm2
862 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm0 = (ymm0 * ymm4) - ymm2
863 ; FMA4-NOINFS-NEXT: vfmsubps {{.*#+}} ymm1 = (ymm1 * ymm5) - ymm3
864 ; FMA4-NOINFS-NEXT: retq
890 ; FMA4-INFS-LABEL: test_v8f64_interp:
891 ; FMA4-INFS: # %bb.0:
892 ; FMA4-INFS-NEXT: vmovapd {{.*#+}} ymm6 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
893 ; FMA4-INFS-NEXT: vsubpd %ymm4, %ymm6, %ymm7
894 ; FMA4-INFS-NEXT: vsubpd %ymm5, %ymm6, %ymm6
895 ; FMA4-INFS-NEXT: vmulpd %ymm6, %ymm3, %ymm3
896 ; FMA4-INFS-NEXT: vmulpd %ymm7, %ymm2, %ymm2
897 ; FMA4-INFS-NEXT: vfmaddpd {{.*#+}} ymm0 = (ymm0 * ymm4) + ymm2
898 ; FMA4-INFS-NEXT: vfmaddpd {{.*#+}} ymm1 = (ymm1 * ymm5) + ymm3
899 ; FMA4-INFS-NEXT: retq
917 ; FMA4-NOINFS-LABEL: test_v8f64_interp:
918 ; FMA4-NOINFS: # %bb.0:
919 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm3 = (ymm5 * ymm3) - ymm3
920 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm2 = (ymm4 * ymm2) - ymm2
921 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm0 = (ymm0 * ymm4) - ymm2
922 ; FMA4-NOINFS-NEXT: vfmsubpd {{.*#+}} ymm1 = (ymm1 * ymm5) - ymm3
923 ; FMA4-NOINFS-NEXT: retq
948 ; FMA4-LABEL: test_v16f32_fneg_fmadd:
949 ; FMA4: # %bb.0:
950 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm4
951 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm5
952 ; FMA4-NEXT: retq
971 ; FMA4-LABEL: test_v8f64_fneg_fmsub:
972 ; FMA4: # %bb.0:
973 ; FMA4-NEXT: vfnmaddpd {{.*#+}} ymm0 = -(ymm0 * ymm2) + ymm4
974 ; FMA4-NEXT: vfnmaddpd {{.*#+}} ymm1 = -(ymm1 * ymm3) + ymm5
975 ; FMA4-NEXT: retq
994 ; FMA4-LABEL: test_v16f32_fneg_fnmadd:
995 ; FMA4: # %bb.0:
996 ; FMA4-NEXT: vfmsubps {{.*#+}} ymm0 = (ymm0 * ymm2) - ymm4
997 ; FMA4-NEXT: vfmsubps {{.*#+}} ymm1 = (ymm1 * ymm3) - ymm5
998 ; FMA4-NEXT: retq
1018 ; FMA4-LABEL: test_v8f64_fneg_fnmsub:
1019 ; FMA4: # %bb.0:
1020 ; FMA4-NEXT: vfmaddpd {{.*#+}} ymm0 = (ymm0 * ymm2) + ymm4
1021 ; FMA4-NEXT: vfmaddpd {{.*#+}} ymm1 = (ymm1 * ymm3) + ymm5
1022 ; FMA4-NEXT: retq
1046 ; FMA4-LABEL: test_v16f32_fma_x_c1_fmul_x_c2:
1047 ; FMA4: # %bb.0:
1048 ; FMA4-NEXT: vmulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
1049 ; FMA4-NEXT: vmulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
1050 ; FMA4-NEXT: retq
1073 ; FMA4-LABEL: test_v16f32_fma_fmul_x_c1_c2_y:
1074 ; FMA4: # %bb.0:
1075 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm0 = (ymm0 * mem) + ymm2
1076 ; FMA4-NEXT: vfmaddps {{.*#+}} ymm1 = (ymm1 * mem) + ymm3
1077 ; FMA4-NEXT: retq
1099 ; FMA4-LABEL: test_v16f32_fneg_fmul:
1100 ; FMA4: # %bb.0:
1101 ; FMA4-NEXT: vxorps %xmm4, %xmm4, %xmm4
1102 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm4
1103 ; FMA4-NEXT: vfnmsubps {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm4
1104 ; FMA4-NEXT: retq
1124 ; FMA4-LABEL: test_v8f64_fneg_fmul:
1125 ; FMA4: # %bb.0:
1126 ; FMA4-NEXT: vxorpd %xmm4, %xmm4, %xmm4
1127 ; FMA4-NEXT: vfnmsubpd {{.*#+}} ymm0 = -(ymm0 * ymm2) - ymm4
1128 ; FMA4-NEXT: vfnmsubpd {{.*#+}} ymm1 = -(ymm1 * ymm3) - ymm4
1129 ; FMA4-NEXT: retq
1151 ; FMA4-LABEL: test_v8f64_fneg_fmul_no_nsz:
1152 ; FMA4: # %bb.0:
1153 ; FMA4-NEXT: vmulpd %ymm3, %ymm1, %ymm1
1154 ; FMA4-NEXT: vmulpd %ymm2, %ymm0, %ymm0
1155 ; FMA4-NEXT: vmovapd {{.*#+}} ymm2 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
1156 ; FMA4-NEXT: vxorpd %ymm2, %ymm0, %ymm0
1157 ; FMA4-NEXT: vxorpd %ymm2, %ymm1, %ymm1
1158 ; FMA4-NEXT: retq