Lines Matching refs:AVX512

6 …mattr=+avx512dq,+avx512vl -fp-contract=fast | FileCheck %s --check-prefix=ALL --check-prefix=AVX512
23 ; AVX512-LABEL: test_f32_fmadd:
24 ; AVX512: # BB#0:
25 ; AVX512-NEXT: vfmadd213ss %xmm2, %xmm0, %xmm1
26 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
27 ; AVX512-NEXT: retq
44 ; AVX512-LABEL: test_4f32_fmadd:
45 ; AVX512: # BB#0:
46 ; AVX512-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0
47 ; AVX512-NEXT: retq
64 ; AVX512-LABEL: test_8f32_fmadd:
65 ; AVX512: # BB#0:
66 ; AVX512-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0
67 ; AVX512-NEXT: retq
84 ; AVX512-LABEL: test_f64_fmadd:
85 ; AVX512: # BB#0:
86 ; AVX512-NEXT: vfmadd213sd %xmm2, %xmm0, %xmm1
87 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
88 ; AVX512-NEXT: retq
105 ; AVX512-LABEL: test_2f64_fmadd:
106 ; AVX512: # BB#0:
107 ; AVX512-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0
108 ; AVX512-NEXT: retq
125 ; AVX512-LABEL: test_4f64_fmadd:
126 ; AVX512: # BB#0:
127 ; AVX512-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0
128 ; AVX512-NEXT: retq
149 ; AVX512-LABEL: test_f32_fmsub:
150 ; AVX512: # BB#0:
151 ; AVX512-NEXT: vfmsub213ss %xmm2, %xmm0, %xmm1
152 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
153 ; AVX512-NEXT: retq
170 ; AVX512-LABEL: test_4f32_fmsub:
171 ; AVX512: # BB#0:
172 ; AVX512-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0
173 ; AVX512-NEXT: retq
190 ; AVX512-LABEL: test_8f32_fmsub:
191 ; AVX512: # BB#0:
192 ; AVX512-NEXT: vfmsub213ps %ymm2, %ymm1, %ymm0
193 ; AVX512-NEXT: retq
210 ; AVX512-LABEL: test_f64_fmsub:
211 ; AVX512: # BB#0:
212 ; AVX512-NEXT: vfmsub213sd %xmm2, %xmm0, %xmm1
213 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
214 ; AVX512-NEXT: retq
231 ; AVX512-LABEL: test_2f64_fmsub:
232 ; AVX512: # BB#0:
233 ; AVX512-NEXT: vfmsub213pd %xmm2, %xmm1, %xmm0
234 ; AVX512-NEXT: retq
251 ; AVX512-LABEL: test_4f64_fmsub:
252 ; AVX512: # BB#0:
253 ; AVX512-NEXT: vfmsub213pd %ymm2, %ymm1, %ymm0
254 ; AVX512-NEXT: retq
275 ; AVX512-LABEL: test_f32_fnmadd:
276 ; AVX512: # BB#0:
277 ; AVX512-NEXT: vfnmadd213ss %xmm2, %xmm0, %xmm1
278 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
279 ; AVX512-NEXT: retq
296 ; AVX512-LABEL: test_4f32_fnmadd:
297 ; AVX512: # BB#0:
298 ; AVX512-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0
299 ; AVX512-NEXT: retq
316 ; AVX512-LABEL: test_8f32_fnmadd:
317 ; AVX512: # BB#0:
318 ; AVX512-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0
319 ; AVX512-NEXT: retq
336 ; AVX512-LABEL: test_f64_fnmadd:
337 ; AVX512: # BB#0:
338 ; AVX512-NEXT: vfnmadd213sd %xmm2, %xmm0, %xmm1
339 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
340 ; AVX512-NEXT: retq
357 ; AVX512-LABEL: test_2f64_fnmadd:
358 ; AVX512: # BB#0:
359 ; AVX512-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0
360 ; AVX512-NEXT: retq
377 ; AVX512-LABEL: test_4f64_fnmadd:
378 ; AVX512: # BB#0:
379 ; AVX512-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0
380 ; AVX512-NEXT: retq
401 ; AVX512-LABEL: test_f32_fnmsub:
402 ; AVX512: # BB#0:
403 ; AVX512-NEXT: vfnmsub213ss %xmm2, %xmm0, %xmm1
404 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
405 ; AVX512-NEXT: retq
423 ; AVX512-LABEL: test_4f32_fnmsub:
424 ; AVX512: # BB#0:
425 ; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0
426 ; AVX512-NEXT: retq
444 ; AVX512-LABEL: test_8f32_fnmsub:
445 ; AVX512: # BB#0:
446 ; AVX512-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0
447 ; AVX512-NEXT: retq
465 ; AVX512-LABEL: test_f64_fnmsub:
466 ; AVX512: # BB#0:
467 ; AVX512-NEXT: vfnmsub213sd %xmm2, %xmm0, %xmm1
468 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
469 ; AVX512-NEXT: retq
487 ; AVX512-LABEL: test_2f64_fnmsub:
488 ; AVX512: # BB#0:
489 ; AVX512-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0
490 ; AVX512-NEXT: retq
508 ; AVX512-LABEL: test_4f64_fnmsub:
509 ; AVX512: # BB#0:
510 ; AVX512-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0
511 ; AVX512-NEXT: retq
533 ; AVX512-LABEL: test_4f32_fmadd_load:
534 ; AVX512: # BB#0:
535 ; AVX512-NEXT: vmovaps (%rdi), %xmm2
536 ; AVX512-NEXT: vfmadd213ps %xmm1, %xmm0, %xmm2
537 ; AVX512-NEXT: vmovaps %zmm2, %zmm0
538 ; AVX512-NEXT: retq
556 ; AVX512-LABEL: test_2f64_fmsub_load:
557 ; AVX512: # BB#0:
558 ; AVX512-NEXT: vmovapd (%rdi), %xmm2
559 ; AVX512-NEXT: vfmsub213pd %xmm1, %xmm0, %xmm2
560 ; AVX512-NEXT: vmovaps %zmm2, %zmm0
561 ; AVX512-NEXT: retq
583 ; AVX512-LABEL: test_v4f32_mul_add_x_one_y:
584 ; AVX512: # BB#0:
585 ; AVX512-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0
586 ; AVX512-NEXT: retq
603 ; AVX512-LABEL: test_v4f32_mul_y_add_x_one:
604 ; AVX512: # BB#0:
605 ; AVX512-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0
606 ; AVX512-NEXT: retq
623 ; AVX512-LABEL: test_v4f32_mul_add_x_negone_y:
624 ; AVX512: # BB#0:
625 ; AVX512-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0
626 ; AVX512-NEXT: retq
643 ; AVX512-LABEL: test_v4f32_mul_y_add_x_negone:
644 ; AVX512: # BB#0:
645 ; AVX512-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0
646 ; AVX512-NEXT: retq
663 ; AVX512-LABEL: test_v4f32_mul_sub_one_x_y:
664 ; AVX512: # BB#0:
665 ; AVX512-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0
666 ; AVX512-NEXT: retq
683 ; AVX512-LABEL: test_v4f32_mul_y_sub_one_x:
684 ; AVX512: # BB#0:
685 ; AVX512-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0
686 ; AVX512-NEXT: retq
703 ; AVX512-LABEL: test_v4f32_mul_sub_negone_x_y:
704 ; AVX512: # BB#0:
705 ; AVX512-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0
706 ; AVX512-NEXT: retq
723 ; AVX512-LABEL: test_v4f32_mul_y_sub_negone_x:
724 ; AVX512: # BB#0:
725 ; AVX512-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0
726 ; AVX512-NEXT: retq
743 ; AVX512-LABEL: test_v4f32_mul_sub_x_one_y:
744 ; AVX512: # BB#0:
745 ; AVX512-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0
746 ; AVX512-NEXT: retq
763 ; AVX512-LABEL: test_v4f32_mul_y_sub_x_one:
764 ; AVX512: # BB#0:
765 ; AVX512-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0
766 ; AVX512-NEXT: retq
783 ; AVX512-LABEL: test_v4f32_mul_sub_x_negone_y:
784 ; AVX512: # BB#0:
785 ; AVX512-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0
786 ; AVX512-NEXT: retq
803 ; AVX512-LABEL: test_v4f32_mul_y_sub_x_negone:
804 ; AVX512: # BB#0:
805 ; AVX512-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0
806 ; AVX512-NEXT: retq
829 ; AVX512-LABEL: test_f32_interp:
830 ; AVX512: # BB#0:
831 ; AVX512-NEXT: vfnmadd213ss %xmm1, %xmm2, %xmm1
832 ; AVX512-NEXT: vfmadd213ss %xmm1, %xmm0, %xmm2
833 ; AVX512-NEXT: vmovaps %zmm2, %zmm0
834 ; AVX512-NEXT: retq
855 ; AVX512-LABEL: test_v4f32_interp:
856 ; AVX512: # BB#0:
857 ; AVX512-NEXT: vmovaps %zmm2, %zmm3
858 ; AVX512-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm3
859 ; AVX512-NEXT: vfmadd213ps %xmm3, %xmm2, %xmm0
860 ; AVX512-NEXT: retq
881 ; AVX512-LABEL: test_v8f32_interp:
882 ; AVX512: # BB#0:
883 ; AVX512-NEXT: vmovaps %zmm2, %zmm3
884 ; AVX512-NEXT: vfnmadd213ps %ymm1, %ymm1, %ymm3
885 ; AVX512-NEXT: vfmadd213ps %ymm3, %ymm2, %ymm0
886 ; AVX512-NEXT: retq
907 ; AVX512-LABEL: test_f64_interp:
908 ; AVX512: # BB#0:
909 ; AVX512-NEXT: vfnmadd213sd %xmm1, %xmm2, %xmm1
910 ; AVX512-NEXT: vfmadd213sd %xmm1, %xmm0, %xmm2
911 ; AVX512-NEXT: vmovaps %zmm2, %zmm0
912 ; AVX512-NEXT: retq
933 ; AVX512-LABEL: test_v2f64_interp:
934 ; AVX512: # BB#0:
935 ; AVX512-NEXT: vmovaps %zmm2, %zmm3
936 ; AVX512-NEXT: vfnmadd213pd %xmm1, %xmm1, %xmm3
937 ; AVX512-NEXT: vfmadd213pd %xmm3, %xmm2, %xmm0
938 ; AVX512-NEXT: retq
959 ; AVX512-LABEL: test_v4f64_interp:
960 ; AVX512: # BB#0:
961 ; AVX512-NEXT: vmovaps %zmm2, %zmm3
962 ; AVX512-NEXT: vfnmadd213pd %ymm1, %ymm1, %ymm3
963 ; AVX512-NEXT: vfmadd213pd %ymm3, %ymm2, %ymm0
964 ; AVX512-NEXT: retq
987 ; AVX512-LABEL: test_v4f32_fneg_fmadd:
988 ; AVX512: # BB#0:
989 ; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0
990 ; AVX512-NEXT: retq
1008 ; AVX512-LABEL: test_v4f64_fneg_fmsub:
1009 ; AVX512: # BB#0:
1010 ; AVX512-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0
1011 ; AVX512-NEXT: retq
1029 ; AVX512-LABEL: test_v4f32_fneg_fnmadd:
1030 ; AVX512: # BB#0:
1031 ; AVX512-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0
1032 ; AVX512-NEXT: retq
1051 ; AVX512-LABEL: test_v4f64_fneg_fnmsub:
1052 ; AVX512: # BB#0:
1053 ; AVX512-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0
1054 ; AVX512-NEXT: retq
1077 ; AVX512-LABEL: test_v4f32_fma_x_c1_fmul_x_c2:
1078 ; AVX512: # BB#0:
1079 ; AVX512-NEXT: vmulps {{.*}}(%rip){1to4}, %xmm0, %xmm0
1080 ; AVX512-NEXT: retq
1102 ; AVX512-LABEL: test_v4f32_fma_fmul_x_c1_c2_y:
1103 ; AVX512: # BB#0:
1104 ; AVX512-NEXT: vfmadd231ps {{.*}}(%rip), %xmm0, %xmm1
1105 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
1106 ; AVX512-NEXT: retq
1128 ; AVX512-LABEL: test_f64_fneg_fmul:
1129 ; AVX512: # BB#0:
1130 ; AVX512-NEXT: vxorps %xmm2, %xmm2, %xmm2
1131 ; AVX512-NEXT: vfnmsub213sd %xmm2, %xmm0, %xmm1
1132 ; AVX512-NEXT: vmovaps %zmm1, %zmm0
1133 ; AVX512-NEXT: retq
1152 ; AVX512-LABEL: test_v4f32_fneg_fmul:
1153 ; AVX512: # BB#0:
1154 ; AVX512-NEXT: vpxord %xmm2, %xmm2, %xmm2
1155 ; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0
1156 ; AVX512-NEXT: retq
1175 ; AVX512-LABEL: test_v4f64_fneg_fmul:
1176 ; AVX512: # BB#0:
1177 ; AVX512-NEXT: vpxord %ymm2, %ymm2, %ymm2
1178 ; AVX512-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0
1179 ; AVX512-NEXT: retq