diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/fma_patterns.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/fma_patterns.ll | 90 |
1 files changed, 60 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/X86/fma_patterns.ll b/llvm/test/CodeGen/X86/fma_patterns.ll index d0d0dfed352..5395ae46d47 100644 --- a/llvm/test/CodeGen/X86/fma_patterns.ll +++ b/llvm/test/CodeGen/X86/fma_patterns.ll @@ -637,23 +637,38 @@ define <4 x float> @test_v4f32_mul_y_add_x_one(<4 x float> %x, <4 x float> %y) { } define <4 x float> @test_v4f32_mul_y_add_x_one_undefs(<4 x float> %x, <4 x float> %y) { -; FMA-LABEL: test_v4f32_mul_y_add_x_one_undefs: -; FMA: # %bb.0: -; FMA-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 -; FMA-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; FMA-NEXT: retq +; FMA-INFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; FMA-INFS: # %bb.0: +; FMA-INFS-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 +; FMA-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; FMA-INFS-NEXT: retq ; -; FMA4-LABEL: test_v4f32_mul_y_add_x_one_undefs: -; FMA4: # %bb.0: -; FMA4-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 -; FMA4-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; FMA4-NEXT: retq +; FMA4-INFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; FMA4-INFS: # %bb.0: +; FMA4-INFS-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 +; FMA4-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; FMA4-INFS-NEXT: retq ; -; AVX512-LABEL: test_v4f32_mul_y_add_x_one_undefs: -; AVX512: # %bb.0: -; AVX512-NEXT: vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0 -; AVX512-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; AVX512-NEXT: retq +; AVX512-INFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; AVX512-INFS: # %bb.0: +; AVX512-INFS-NEXT: vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0 +; AVX512-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; AVX512-INFS-NEXT: retq +; +; FMA-NOINFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; FMA-NOINFS: # %bb.0: +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 +; FMA-NOINFS-NEXT: retq +; +; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; FMA4-NOINFS: # %bb.0: +; FMA4-NOINFS-NEXT: vfmaddps %xmm1, %xmm1, %xmm0, %xmm0 +; FMA4-NOINFS-NEXT: retq +; +; AVX512-NOINFS-LABEL: test_v4f32_mul_y_add_x_one_undefs: +; AVX512-NOINFS: # %bb.0: +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 +; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, <float 1.0, float undef, float 1.0, float undef> %m = fmul <4 x float> %y, %a ret <4 x float> %m @@ -736,23 +751,38 @@ define <4 x float> @test_v4f32_mul_y_add_x_negone(<4 x float> %x, <4 x float> %y } define <4 x float> @test_v4f32_mul_y_add_x_negone_undefs(<4 x float> %x, <4 x float> %y) { -; FMA-LABEL: test_v4f32_mul_y_add_x_negone_undefs: -; FMA: # %bb.0: -; FMA-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 -; FMA-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; FMA-NEXT: retq +; FMA-INFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; FMA-INFS: # %bb.0: +; FMA-INFS-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 +; FMA-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; FMA-INFS-NEXT: retq ; -; FMA4-LABEL: test_v4f32_mul_y_add_x_negone_undefs: -; FMA4: # %bb.0: -; FMA4-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 -; FMA4-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; FMA4-NEXT: retq +; FMA4-INFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; FMA4-INFS: # %bb.0: +; FMA4-INFS-NEXT: vaddps {{.*}}(%rip), %xmm0, %xmm0 +; FMA4-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; FMA4-INFS-NEXT: retq ; -; AVX512-LABEL: test_v4f32_mul_y_add_x_negone_undefs: -; AVX512: # %bb.0: -; AVX512-NEXT: vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0 -; AVX512-NEXT: vmulps %xmm0, %xmm1, %xmm0 -; AVX512-NEXT: retq +; AVX512-INFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; AVX512-INFS: # %bb.0: +; AVX512-INFS-NEXT: vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0 +; AVX512-INFS-NEXT: vmulps %xmm0, %xmm1, %xmm0 +; AVX512-INFS-NEXT: retq +; +; FMA-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; FMA-NOINFS: # %bb.0: +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 +; FMA-NOINFS-NEXT: retq +; +; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; FMA4-NOINFS: # %bb.0: +; FMA4-NOINFS-NEXT: vfmsubps %xmm1, %xmm1, %xmm0, %xmm0 +; FMA4-NOINFS-NEXT: retq +; +; AVX512-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone_undefs: +; AVX512-NOINFS: # %bb.0: +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 +; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, <float undef, float -1.0, float undef, float -1.0> %m = fmul <4 x float> %y, %a ret <4 x float> %m |