From 43e4e648ef3258a9eb8f9437c702834b8c65d6ef Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sat, 29 Sep 2018 14:31:00 +0000 Subject: [PATCH] [X86] Regenerate fma comments. llvm-svn: 343376 --- llvm/test/CodeGen/X86/fma_patterns.ll | 256 ++++++++++++++--------------- llvm/test/CodeGen/X86/fma_patterns_wide.ll | 210 +++++++++++------------ 2 files changed, 233 insertions(+), 233 deletions(-) diff --git a/llvm/test/CodeGen/X86/fma_patterns.ll b/llvm/test/CodeGen/X86/fma_patterns.ll index 2b4a686b..eb510b7 100644 --- a/llvm/test/CodeGen/X86/fma_patterns.ll +++ b/llvm/test/CodeGen/X86/fma_patterns.ll @@ -15,7 +15,7 @@ define float @test_f32_fmadd(float %a0, float %a1, float %a2) { ; FMA-LABEL: test_f32_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213ss %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f32_fmadd: @@ -25,7 +25,7 @@ define float @test_f32_fmadd(float %a0, float %a1, float %a2) { ; ; AVX512-LABEL: test_f32_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213ss %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul float %a0, %a1 %res = fadd float %x, %a2 @@ -35,7 +35,7 @@ define float @test_f32_fmadd(float %a0, float %a1, float %a2) { define <4 x float> @test_4f32_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) { ; FMA-LABEL: test_4f32_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f32_fmadd: @@ -45,7 +45,7 @@ define <4 x float> @test_4f32_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x float ; ; AVX512-LABEL: test_4f32_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul <4 x float> %a0, %a1 %res = fadd <4 x float> %x, %a2 @@ -55,7 +55,7 @@ define <4 x float> @test_4f32_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x float define <8 x float> @test_8f32_fmadd(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2) { ; FMA-LABEL: test_8f32_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f32_fmadd: @@ -65,7 +65,7 @@ define <8 x float> @test_8f32_fmadd(<8 x float> %a0, <8 x float> %a1, <8 x float ; ; AVX512-LABEL: test_8f32_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213ps %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %x = fmul <8 x float> %a0, %a1 %res = fadd <8 x float> %x, %a2 @@ -75,7 +75,7 @@ define <8 x float> @test_8f32_fmadd(<8 x float> %a0, <8 x float> %a1, <8 x float define double @test_f64_fmadd(double %a0, double %a1, double %a2) { ; FMA-LABEL: test_f64_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213sd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f64_fmadd: @@ -85,7 +85,7 @@ define double @test_f64_fmadd(double %a0, double %a1, double %a2) { ; ; AVX512-LABEL: test_f64_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213sd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul double %a0, %a1 %res = fadd double %x, %a2 @@ -95,7 +95,7 @@ define double @test_f64_fmadd(double %a0, double %a1, double %a2) { define <2 x double> @test_2f64_fmadd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) { ; FMA-LABEL: test_2f64_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_2f64_fmadd: @@ -105,7 +105,7 @@ define <2 x double> @test_2f64_fmadd(<2 x double> %a0, <2 x double> %a1, <2 x do ; ; AVX512-LABEL: test_2f64_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213pd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul <2 x double> %a0, %a1 %res = fadd <2 x double> %x, %a2 @@ -115,7 +115,7 @@ define <2 x double> @test_2f64_fmadd(<2 x double> %a0, <2 x double> %a1, <2 x do define <4 x double> @test_4f64_fmadd(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) { ; FMA-LABEL: test_4f64_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f64_fmadd: @@ -125,7 +125,7 @@ define <4 x double> @test_4f64_fmadd(<4 x double> %a0, <4 x double> %a1, <4 x do ; ; AVX512-LABEL: test_4f64_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %x = fmul <4 x double> %a0, %a1 %res = fadd <4 x double> %x, %a2 @@ -139,7 +139,7 @@ define <4 x double> @test_4f64_fmadd(<4 x double> %a0, <4 x double> %a1, <4 x do define float @test_f32_fmsub(float %a0, float %a1, float %a2) { ; FMA-LABEL: test_f32_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ss %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmsub213ss {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f32_fmsub: @@ -149,7 +149,7 @@ define float @test_f32_fmsub(float %a0, float %a1, float %a2) { ; ; AVX512-LABEL: test_f32_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ss %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmsub213ss {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul float %a0, %a1 %res = fsub float %x, %a2 @@ -159,7 +159,7 @@ define float @test_f32_fmsub(float %a0, float %a1, float %a2) { define <4 x float> @test_4f32_fmsub(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) { ; FMA-LABEL: test_4f32_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f32_fmsub: @@ -169,7 +169,7 @@ define <4 x float> @test_4f32_fmsub(<4 x float> %a0, <4 x float> %a1, <4 x float ; ; AVX512-LABEL: test_4f32_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul <4 x float> %a0, %a1 %res = fsub <4 x float> %x, %a2 @@ -179,7 +179,7 @@ define <4 x float> @test_4f32_fmsub(<4 x float> %a0, <4 x float> %a1, <4 x float define <8 x float> @test_8f32_fmsub(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2) { ; FMA-LABEL: test_8f32_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ps %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm1 * ymm0) - ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f32_fmsub: @@ -189,7 +189,7 @@ define <8 x float> @test_8f32_fmsub(<8 x float> %a0, <8 x float> %a1, <8 x float ; ; AVX512-LABEL: test_8f32_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ps %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm1 * ymm0) - ymm2 ; AVX512-NEXT: retq %x = fmul <8 x float> %a0, %a1 %res = fsub <8 x float> %x, %a2 @@ -199,7 +199,7 @@ define <8 x float> @test_8f32_fmsub(<8 x float> %a0, <8 x float> %a1, <8 x float define double @test_f64_fmsub(double %a0, double %a1, double %a2) { ; FMA-LABEL: test_f64_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213sd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmsub213sd {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f64_fmsub: @@ -209,7 +209,7 @@ define double @test_f64_fmsub(double %a0, double %a1, double %a2) { ; ; AVX512-LABEL: test_f64_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213sd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmsub213sd {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul double %a0, %a1 %res = fsub double %x, %a2 @@ -219,7 +219,7 @@ define double @test_f64_fmsub(double %a0, double %a1, double %a2) { define <2 x double> @test_2f64_fmsub(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) { ; FMA-LABEL: test_2f64_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213pd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmsub213pd {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_2f64_fmsub: @@ -229,7 +229,7 @@ define <2 x double> @test_2f64_fmsub(<2 x double> %a0, <2 x double> %a1, <2 x do ; ; AVX512-LABEL: test_2f64_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213pd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmsub213pd {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul <2 x double> %a0, %a1 %res = fsub <2 x double> %x, %a2 @@ -239,7 +239,7 @@ define <2 x double> @test_2f64_fmsub(<2 x double> %a0, <2 x double> %a1, <2 x do define <4 x double> @test_4f64_fmsub(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) { ; FMA-LABEL: test_4f64_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfmsub213pd {{.*#+}} ymm0 = (ymm1 * ymm0) - ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f64_fmsub: @@ -249,7 +249,7 @@ define <4 x double> @test_4f64_fmsub(<4 x double> %a0, <4 x double> %a1, <4 x do ; ; AVX512-LABEL: test_4f64_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfmsub213pd {{.*#+}} ymm0 = (ymm1 * ymm0) - ymm2 ; AVX512-NEXT: retq %x = fmul <4 x double> %a0, %a1 %res = fsub <4 x double> %x, %a2 @@ -263,7 +263,7 @@ define <4 x double> @test_4f64_fmsub(<4 x double> %a0, <4 x double> %a1, <4 x do define float @test_f32_fnmadd(float %a0, float %a1, float %a2) { ; FMA-LABEL: test_f32_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213ss %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmadd213ss {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f32_fnmadd: @@ -273,7 +273,7 @@ define float @test_f32_fnmadd(float %a0, float %a1, float %a2) { ; ; AVX512-LABEL: test_f32_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213ss %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmadd213ss {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul float %a0, %a1 %res = fsub float %a2, %x @@ -283,7 +283,7 @@ define float @test_f32_fnmadd(float %a0, float %a1, float %a2) { define <4 x float> @test_4f32_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) { ; FMA-LABEL: test_4f32_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f32_fnmadd: @@ -293,7 +293,7 @@ define <4 x float> @test_4f32_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 x floa ; ; AVX512-LABEL: test_4f32_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul <4 x float> %a0, %a1 %res = fsub <4 x float> %a2, %x @@ -303,7 +303,7 @@ define <4 x float> @test_4f32_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 x floa define <8 x float> @test_8f32_fnmadd(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2) { ; FMA-LABEL: test_8f32_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmadd213ps {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f32_fnmadd: @@ -313,7 +313,7 @@ define <8 x float> @test_8f32_fnmadd(<8 x float> %a0, <8 x float> %a1, <8 x floa ; ; AVX512-LABEL: test_8f32_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213ps %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmadd213ps {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %x = fmul <8 x float> %a0, %a1 %res = fsub <8 x float> %a2, %x @@ -323,7 +323,7 @@ define <8 x float> @test_8f32_fnmadd(<8 x float> %a0, <8 x float> %a1, <8 x floa define double @test_f64_fnmadd(double %a0, double %a1, double %a2) { ; FMA-LABEL: test_f64_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213sd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmadd213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f64_fnmadd: @@ -333,7 +333,7 @@ define double @test_f64_fnmadd(double %a0, double %a1, double %a2) { ; ; AVX512-LABEL: test_f64_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213sd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmadd213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul double %a0, %a1 %res = fsub double %a2, %x @@ -343,7 +343,7 @@ define double @test_f64_fnmadd(double %a0, double %a1, double %a2) { define <2 x double> @test_2f64_fnmadd(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) { ; FMA-LABEL: test_2f64_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmadd213pd {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_2f64_fnmadd: @@ -353,7 +353,7 @@ define <2 x double> @test_2f64_fnmadd(<2 x double> %a0, <2 x double> %a1, <2 x d ; ; AVX512-LABEL: test_2f64_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213pd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmadd213pd {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm2 ; AVX512-NEXT: retq %x = fmul <2 x double> %a0, %a1 %res = fsub <2 x double> %a2, %x @@ -363,7 +363,7 @@ define <2 x double> @test_2f64_fnmadd(<2 x double> %a0, <2 x double> %a1, <2 x d define <4 x double> @test_4f64_fnmadd(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) { ; FMA-LABEL: test_4f64_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f64_fnmadd: @@ -373,7 +373,7 @@ define <4 x double> @test_4f64_fnmadd(<4 x double> %a0, <4 x double> %a1, <4 x d ; ; AVX512-LABEL: test_4f64_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %x = fmul <4 x double> %a0, %a1 %res = fsub <4 x double> %a2, %x @@ -387,7 +387,7 @@ define <4 x double> @test_4f64_fnmadd(<4 x double> %a0, <4 x double> %a1, <4 x d define float @test_f32_fnmsub(float %a0, float %a1, float %a2) { ; FMA-LABEL: test_f32_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ss %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213ss {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f32_fnmsub: @@ -397,7 +397,7 @@ define float @test_f32_fnmsub(float %a0, float %a1, float %a2) { ; ; AVX512-LABEL: test_f32_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ss %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213ss {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul float %a0, %a1 %y = fsub float -0.000000e+00, %x @@ -408,7 +408,7 @@ define float @test_f32_fnmsub(float %a0, float %a1, float %a2) { define <4 x float> @test_4f32_fnmsub(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) { ; FMA-LABEL: test_4f32_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f32_fnmsub: @@ -418,7 +418,7 @@ define <4 x float> @test_4f32_fnmsub(<4 x float> %a0, <4 x float> %a1, <4 x floa ; ; AVX512-LABEL: test_4f32_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul <4 x float> %a0, %a1 %y = fsub <4 x float> , %x @@ -429,7 +429,7 @@ define <4 x float> @test_4f32_fnmsub(<4 x float> %a0, <4 x float> %a1, <4 x floa define <8 x float> @test_8f32_fnmsub(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2) { ; FMA-LABEL: test_8f32_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f32_fnmsub: @@ -439,7 +439,7 @@ define <8 x float> @test_8f32_fnmsub(<8 x float> %a0, <8 x float> %a1, <8 x floa ; ; AVX512-LABEL: test_8f32_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ps %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; AVX512-NEXT: retq %x = fmul <8 x float> %a0, %a1 %y = fsub <8 x float> , %x @@ -450,7 +450,7 @@ define <8 x float> @test_8f32_fnmsub(<8 x float> %a0, <8 x float> %a1, <8 x floa define double @test_f64_fnmsub(double %a0, double %a1, double %a2) { ; FMA-LABEL: test_f64_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213sd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f64_fnmsub: @@ -460,7 +460,7 @@ define double @test_f64_fnmsub(double %a0, double %a1, double %a2) { ; ; AVX512-LABEL: test_f64_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213sd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul double %a0, %a1 %y = fsub double -0.000000e+00, %x @@ -471,7 +471,7 @@ define double @test_f64_fnmsub(double %a0, double %a1, double %a2) { define <2 x double> @test_2f64_fnmsub(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2) { ; FMA-LABEL: test_2f64_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213pd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_2f64_fnmsub: @@ -481,7 +481,7 @@ define <2 x double> @test_2f64_fnmsub(<2 x double> %a0, <2 x double> %a1, <2 x d ; ; AVX512-LABEL: test_2f64_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213pd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213pd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %x = fmul <2 x double> %a0, %a1 %y = fsub <2 x double> , %x @@ -492,7 +492,7 @@ define <2 x double> @test_2f64_fnmsub(<2 x double> %a0, <2 x double> %a1, <2 x d define <4 x double> @test_4f64_fnmsub(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) { ; FMA-LABEL: test_4f64_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f64_fnmsub: @@ -502,7 +502,7 @@ define <4 x double> @test_4f64_fnmsub(<4 x double> %a0, <4 x double> %a1, <4 x d ; ; AVX512-LABEL: test_4f64_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; AVX512-NEXT: retq %x = fmul <4 x double> %a0, %a1 %y = fsub <4 x double> , %x @@ -517,7 +517,7 @@ define <4 x double> @test_4f64_fnmsub(<4 x double> %a0, <4 x double> %a1, <4 x d define <4 x float> @test_4f32_fmadd_load(<4 x float>* %a0, <4 x float> %a1, <4 x float> %a2) { ; FMA-LABEL: test_4f32_fmadd_load: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd132ps (%rdi), %xmm1, %xmm0 +; FMA-NEXT: vfmadd132ps {{.*#+}} xmm0 = (xmm0 * mem) + xmm1 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_4f32_fmadd_load: @@ -527,7 +527,7 @@ define <4 x float> @test_4f32_fmadd_load(<4 x float>* %a0, <4 x float> %a1, <4 x ; ; AVX512-LABEL: test_4f32_fmadd_load: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd132ps (%rdi), %xmm1, %xmm0 +; AVX512-NEXT: vfmadd132ps {{.*#+}} xmm0 = (xmm0 * mem) + xmm1 ; AVX512-NEXT: retq %x = load <4 x float>, <4 x float>* %a0 %y = fmul <4 x float> %x, %a1 @@ -538,7 +538,7 @@ define <4 x float> @test_4f32_fmadd_load(<4 x float>* %a0, <4 x float> %a1, <4 x define <2 x double> @test_2f64_fmsub_load(<2 x double>* %a0, <2 x double> %a1, <2 x double> %a2) { ; FMA-LABEL: test_2f64_fmsub_load: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub132pd (%rdi), %xmm1, %xmm0 +; FMA-NEXT: vfmsub132pd {{.*#+}} xmm0 = (xmm0 * mem) - xmm1 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_2f64_fmsub_load: @@ -548,7 +548,7 @@ define <2 x double> @test_2f64_fmsub_load(<2 x double>* %a0, <2 x double> %a1, < ; ; AVX512-LABEL: test_2f64_fmsub_load: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub132pd (%rdi), %xmm1, %xmm0 +; AVX512-NEXT: vfmsub132pd {{.*#+}} xmm0 = (xmm0 * mem) - xmm1 ; AVX512-NEXT: retq %x = load <2 x double>, <2 x double>* %a0 %y = fmul <2 x double> %x, %a1 @@ -581,7 +581,7 @@ define <4 x float> @test_v4f32_mul_add_x_one_y(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_add_x_one_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_add_x_one_y: @@ -591,7 +591,7 @@ define <4 x float> @test_v4f32_mul_add_x_one_y(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_add_x_one_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, %m = fmul <4 x float> %a, %y @@ -619,7 +619,7 @@ define <4 x float> @test_v4f32_mul_y_add_x_one(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_add_x_one: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_one: @@ -629,7 +629,7 @@ define <4 x float> @test_v4f32_mul_y_add_x_one(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_add_x_one: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, %m = fmul <4 x float> %y, %a @@ -657,7 +657,7 @@ define <4 x float> @test_v4f32_mul_add_x_negone_y(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y: @@ -667,7 +667,7 @@ define <4 x float> @test_v4f32_mul_add_x_negone_y(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, %m = fmul <4 x float> %a, %y @@ -695,7 +695,7 @@ define <4 x float> @test_v4f32_mul_y_add_x_negone(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone: @@ -705,7 +705,7 @@ define <4 x float> @test_v4f32_mul_y_add_x_negone(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <4 x float> %x, %m = fmul <4 x float> %y, %a @@ -736,7 +736,7 @@ define <4 x float> @test_v4f32_mul_sub_one_x_y(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y: @@ -746,7 +746,7 @@ define <4 x float> @test_v4f32_mul_sub_one_x_y(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> , %x %m = fmul <4 x float> %s, %y @@ -777,7 +777,7 @@ define <4 x float> @test_v4f32_mul_y_sub_one_x(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x: @@ -787,7 +787,7 @@ define <4 x float> @test_v4f32_mul_y_sub_one_x(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> , %x %m = fmul <4 x float> %y, %s @@ -818,7 +818,7 @@ define <4 x float> @test_v4f32_mul_sub_negone_x_y(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y: @@ -828,7 +828,7 @@ define <4 x float> @test_v4f32_mul_sub_negone_x_y(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> , %x %m = fmul <4 x float> %s, %y @@ -859,7 +859,7 @@ define <4 x float> @test_v4f32_mul_y_sub_negone_x(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x: @@ -869,7 +869,7 @@ define <4 x float> @test_v4f32_mul_y_sub_negone_x(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> , %x %m = fmul <4 x float> %y, %s @@ -897,7 +897,7 @@ define <4 x float> @test_v4f32_mul_sub_x_one_y(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y: @@ -907,7 +907,7 @@ define <4 x float> @test_v4f32_mul_sub_x_one_y(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> %x, %m = fmul <4 x float> %s, %y @@ -935,7 +935,7 @@ define <4 x float> @test_v4f32_mul_y_sub_x_one(<4 x float> %x, <4 x float> %y) { ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one: @@ -945,7 +945,7 @@ define <4 x float> @test_v4f32_mul_y_sub_x_one(<4 x float> %x, <4 x float> %y) { ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> %x, %m = fmul <4 x float> %y, %s @@ -973,7 +973,7 @@ define <4 x float> @test_v4f32_mul_sub_x_negone_y(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y: @@ -983,7 +983,7 @@ define <4 x float> @test_v4f32_mul_sub_x_negone_y(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> %x, %m = fmul <4 x float> %s, %y @@ -1011,7 +1011,7 @@ define <4 x float> @test_v4f32_mul_y_sub_x_negone(<4 x float> %x, <4 x float> %y ; ; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone: @@ -1021,7 +1021,7 @@ define <4 x float> @test_v4f32_mul_y_sub_x_negone(<4 x float> %x, <4 x float> %y ; ; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm1, %xmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm1 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <4 x float> %x, %m = fmul <4 x float> %y, %s @@ -1038,7 +1038,7 @@ define float @test_f32_interp(float %x, float %y, float %t) { ; FMA-INFS-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero ; FMA-INFS-NEXT: vsubss %xmm2, %xmm3, %xmm3 ; FMA-INFS-NEXT: vmulss %xmm3, %xmm1, %xmm1 -; FMA-INFS-NEXT: vfmadd213ss %xmm1, %xmm2, %xmm0 +; FMA-INFS-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_f32_interp: @@ -1054,13 +1054,13 @@ define float @test_f32_interp(float %x, float %y, float %t) { ; AVX512-INFS-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero ; AVX512-INFS-NEXT: vsubss %xmm2, %xmm3, %xmm3 ; AVX512-INFS-NEXT: vmulss %xmm3, %xmm1, %xmm1 -; AVX512-INFS-NEXT: vfmadd213ss %xmm1, %xmm2, %xmm0 +; AVX512-INFS-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_f32_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ss %xmm1, %xmm2, %xmm1 -; FMA-NOINFS-NEXT: vfmadd213ss %xmm1, %xmm2, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213ss {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; FMA-NOINFS-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_f32_interp: @@ -1071,8 +1071,8 @@ define float @test_f32_interp(float %x, float %y, float %t) { ; ; AVX512-NOINFS-LABEL: test_f32_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ss %xmm1, %xmm2, %xmm1 -; AVX512-NOINFS-NEXT: vfmadd213ss %xmm1, %xmm2, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ss {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; AVX512-NOINFS-NEXT: vfmadd213ss {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub float 1.0, %t %tx = fmul float %x, %t @@ -1087,7 +1087,7 @@ define <4 x float> @test_v4f32_interp(<4 x float> %x, <4 x float> %y, <4 x float ; FMA-INFS-NEXT: vmovaps {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] ; FMA-INFS-NEXT: vsubps %xmm2, %xmm3, %xmm3 ; FMA-INFS-NEXT: vmulps %xmm3, %xmm1, %xmm1 -; FMA-INFS-NEXT: vfmadd213ps %xmm1, %xmm2, %xmm0 +; FMA-INFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v4f32_interp: @@ -1103,13 +1103,13 @@ define <4 x float> @test_v4f32_interp(<4 x float> %x, <4 x float> %y, <4 x float ; AVX512-INFS-NEXT: vbroadcastss {{.*#+}} xmm3 = [1,1,1,1] ; AVX512-INFS-NEXT: vsubps %xmm2, %xmm3, %xmm3 ; AVX512-INFS-NEXT: vmulps %xmm3, %xmm1, %xmm1 -; AVX512-INFS-NEXT: vfmadd213ps %xmm1, %xmm2, %xmm0 +; AVX512-INFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v4f32_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm2, %xmm1 -; FMA-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm2, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f32_interp: @@ -1120,8 +1120,8 @@ define <4 x float> @test_v4f32_interp(<4 x float> %x, <4 x float> %y, <4 x float ; ; AVX512-NOINFS-LABEL: test_v4f32_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %xmm1, %xmm2, %xmm1 -; AVX512-NOINFS-NEXT: vfmadd213ps %xmm1, %xmm2, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <4 x float> , %t %tx = fmul <4 x float> %x, %t @@ -1136,7 +1136,7 @@ define <8 x float> @test_v8f32_interp(<8 x float> %x, <8 x float> %y, <8 x float ; FMA-INFS-NEXT: vmovaps {{.*#+}} ymm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] ; FMA-INFS-NEXT: vsubps %ymm2, %ymm3, %ymm3 ; FMA-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1 -; FMA-INFS-NEXT: vfmadd213ps %ymm1, %ymm2, %ymm0 +; FMA-INFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v8f32_interp: @@ -1152,13 +1152,13 @@ define <8 x float> @test_v8f32_interp(<8 x float> %x, <8 x float> %y, <8 x float ; AVX512-INFS-NEXT: vbroadcastss {{.*#+}} ymm3 = [1,1,1,1,1,1,1,1] ; AVX512-INFS-NEXT: vsubps %ymm2, %ymm3, %ymm3 ; AVX512-INFS-NEXT: vmulps %ymm3, %ymm1, %ymm1 -; AVX512-INFS-NEXT: vfmadd213ps %ymm1, %ymm2, %ymm0 +; AVX512-INFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v8f32_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %ymm1, %ymm2, %ymm1 -; FMA-NOINFS-NEXT: vfmadd213ps %ymm1, %ymm2, %ymm0 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm1 = -(ymm2 * ymm1) + ymm1 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f32_interp: @@ -1169,8 +1169,8 @@ define <8 x float> @test_v8f32_interp(<8 x float> %x, <8 x float> %y, <8 x float ; ; AVX512-NOINFS-LABEL: test_v8f32_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %ymm1, %ymm2, %ymm1 -; AVX512-NOINFS-NEXT: vfmadd213ps %ymm1, %ymm2, %ymm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm1 = -(ymm2 * ymm1) + ymm1 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <8 x float> , %t %tx = fmul <8 x float> %x, %t @@ -1185,7 +1185,7 @@ define double @test_f64_interp(double %x, double %y, double %t) { ; FMA-INFS-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero ; FMA-INFS-NEXT: vsubsd %xmm2, %xmm3, %xmm3 ; FMA-INFS-NEXT: vmulsd %xmm3, %xmm1, %xmm1 -; FMA-INFS-NEXT: vfmadd213sd %xmm1, %xmm2, %xmm0 +; FMA-INFS-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_f64_interp: @@ -1201,13 +1201,13 @@ define double @test_f64_interp(double %x, double %y, double %t) { ; AVX512-INFS-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero ; AVX512-INFS-NEXT: vsubsd %xmm2, %xmm3, %xmm3 ; AVX512-INFS-NEXT: vmulsd %xmm3, %xmm1, %xmm1 -; AVX512-INFS-NEXT: vfmadd213sd %xmm1, %xmm2, %xmm0 +; AVX512-INFS-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_f64_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213sd %xmm1, %xmm2, %xmm1 -; FMA-NOINFS-NEXT: vfmadd213sd %xmm1, %xmm2, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213sd {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; FMA-NOINFS-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_f64_interp: @@ -1218,8 +1218,8 @@ define double @test_f64_interp(double %x, double %y, double %t) { ; ; AVX512-NOINFS-LABEL: test_f64_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213sd %xmm1, %xmm2, %xmm1 -; AVX512-NOINFS-NEXT: vfmadd213sd %xmm1, %xmm2, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213sd {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; AVX512-NOINFS-NEXT: vfmadd213sd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub double 1.0, %t %tx = fmul double %x, %t @@ -1234,7 +1234,7 @@ define <2 x double> @test_v2f64_interp(<2 x double> %x, <2 x double> %y, <2 x do ; FMA-INFS-NEXT: vmovapd {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00] ; FMA-INFS-NEXT: vsubpd %xmm2, %xmm3, %xmm3 ; FMA-INFS-NEXT: vmulpd %xmm3, %xmm1, %xmm1 -; FMA-INFS-NEXT: vfmadd213pd %xmm1, %xmm2, %xmm0 +; FMA-INFS-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v2f64_interp: @@ -1250,13 +1250,13 @@ define <2 x double> @test_v2f64_interp(<2 x double> %x, <2 x double> %y, <2 x do ; AVX512-INFS-NEXT: vmovapd {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00] ; AVX512-INFS-NEXT: vsubpd %xmm2, %xmm3, %xmm3 ; AVX512-INFS-NEXT: vmulpd %xmm3, %xmm1, %xmm1 -; AVX512-INFS-NEXT: vfmadd213pd %xmm1, %xmm2, %xmm0 +; AVX512-INFS-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v2f64_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213pd %xmm1, %xmm2, %xmm1 -; FMA-NOINFS-NEXT: vfmadd213pd %xmm1, %xmm2, %xmm0 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v2f64_interp: @@ -1267,8 +1267,8 @@ define <2 x double> @test_v2f64_interp(<2 x double> %x, <2 x double> %y, <2 x do ; ; AVX512-NOINFS-LABEL: test_v2f64_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213pd %xmm1, %xmm2, %xmm1 -; AVX512-NOINFS-NEXT: vfmadd213pd %xmm1, %xmm2, %xmm0 +; AVX512-NOINFS-NEXT: vfnmadd213pd {{.*#+}} xmm1 = -(xmm2 * xmm1) + xmm1 +; AVX512-NOINFS-NEXT: vfmadd213pd {{.*#+}} xmm0 = (xmm2 * xmm0) + xmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <2 x double> , %t %tx = fmul <2 x double> %x, %t @@ -1283,7 +1283,7 @@ define <4 x double> @test_v4f64_interp(<4 x double> %x, <4 x double> %y, <4 x do ; FMA-INFS-NEXT: vmovapd {{.*#+}} ymm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] ; FMA-INFS-NEXT: vsubpd %ymm2, %ymm3, %ymm3 ; FMA-INFS-NEXT: vmulpd %ymm3, %ymm1, %ymm1 -; FMA-INFS-NEXT: vfmadd213pd %ymm1, %ymm2, %ymm0 +; FMA-INFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v4f64_interp: @@ -1299,13 +1299,13 @@ define <4 x double> @test_v4f64_interp(<4 x double> %x, <4 x double> %y, <4 x do ; AVX512-INFS-NEXT: vbroadcastsd {{.*#+}} ymm3 = [1,1,1,1] ; AVX512-INFS-NEXT: vsubpd %ymm2, %ymm3, %ymm3 ; AVX512-INFS-NEXT: vmulpd %ymm3, %ymm1, %ymm1 -; AVX512-INFS-NEXT: vfmadd213pd %ymm1, %ymm2, %ymm0 +; AVX512-INFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v4f64_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213pd %ymm1, %ymm2, %ymm1 -; FMA-NOINFS-NEXT: vfmadd213pd %ymm1, %ymm2, %ymm0 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm1 = -(ymm2 * ymm1) + ymm1 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v4f64_interp: @@ -1316,8 +1316,8 @@ define <4 x double> @test_v4f64_interp(<4 x double> %x, <4 x double> %y, <4 x do ; ; AVX512-NOINFS-LABEL: test_v4f64_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213pd %ymm1, %ymm2, %ymm1 -; AVX512-NOINFS-NEXT: vfmadd213pd %ymm1, %ymm2, %ymm0 +; AVX512-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm1 = -(ymm2 * ymm1) + ymm1 +; AVX512-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <4 x double> , %t %tx = fmul <4 x double> %x, %t @@ -1333,7 +1333,7 @@ define <4 x double> @test_v4f64_interp(<4 x double> %x, <4 x double> %y, <4 x do define <4 x float> @test_v4f32_fneg_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) #0 { ; FMA-LABEL: test_v4f32_fneg_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f32_fneg_fmadd: @@ -1343,7 +1343,7 @@ define <4 x float> @test_v4f32_fneg_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x ; ; AVX512-LABEL: test_v4f32_fneg_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %mul = fmul <4 x float> %a0, %a1 %add = fadd <4 x float> %mul, %a2 @@ -1354,7 +1354,7 @@ define <4 x float> @test_v4f32_fneg_fmadd(<4 x float> %a0, <4 x float> %a1, <4 x define <4 x double> @test_v4f64_fneg_fmsub(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) #0 { ; FMA-LABEL: test_v4f64_fneg_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f64_fneg_fmsub: @@ -1364,7 +1364,7 @@ define <4 x double> @test_v4f64_fneg_fmsub(<4 x double> %a0, <4 x double> %a1, < ; ; AVX512-LABEL: test_v4f64_fneg_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %mul = fmul <4 x double> %a0, %a1 %sub = fsub <4 x double> %mul, %a2 @@ -1375,7 +1375,7 @@ define <4 x double> @test_v4f64_fneg_fmsub(<4 x double> %a0, <4 x double> %a1, < define <4 x float> @test_v4f32_fneg_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2) #0 { ; FMA-LABEL: test_v4f32_fneg_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f32_fneg_fnmadd: @@ -1385,7 +1385,7 @@ define <4 x float> @test_v4f32_fneg_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 ; ; AVX512-LABEL: test_v4f32_fneg_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfmsub213ps {{.*#+}} xmm0 = (xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %mul = fmul <4 x float> %a0, %a1 %neg0 = fsub <4 x float> , %mul @@ -1397,7 +1397,7 @@ define <4 x float> @test_v4f32_fneg_fnmadd(<4 x float> %a0, <4 x float> %a1, <4 define <4 x double> @test_v4f64_fneg_fnmsub(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2) #0 { ; FMA-LABEL: test_v4f64_fneg_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f64_fneg_fnmsub: @@ -1407,7 +1407,7 @@ define <4 x double> @test_v4f64_fneg_fnmsub(<4 x double> %a0, <4 x double> %a1, ; ; AVX512-LABEL: test_v4f64_fneg_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm1 * ymm0) + ymm2 ; AVX512-NEXT: retq %mul = fmul <4 x double> %a0, %a1 %neg0 = fsub <4 x double> , %mul @@ -1448,7 +1448,7 @@ define <4 x float> @test_v4f32_fma_x_c1_fmul_x_c2(<4 x float> %x) #0 { define <4 x float> @test_v4f32_fma_fmul_x_c1_c2_y(<4 x float> %x, <4 x float> %y) #0 { ; FMA-LABEL: test_v4f32_fma_fmul_x_c1_c2_y: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd132ps {{.*}}(%rip), %xmm1, %xmm0 +; FMA-NEXT: vfmadd132ps {{.*#+}} xmm0 = (xmm0 * mem) + xmm1 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f32_fma_fmul_x_c1_c2_y: @@ -1458,7 +1458,7 @@ define <4 x float> @test_v4f32_fma_fmul_x_c1_c2_y(<4 x float> %x, <4 x float> %y ; ; AVX512-LABEL: test_v4f32_fma_fmul_x_c1_c2_y: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd132ps {{.*}}(%rip), %xmm1, %xmm0 +; AVX512-NEXT: vfmadd132ps {{.*#+}} xmm0 = (xmm0 * mem) + xmm1 ; AVX512-NEXT: retq %m0 = fmul <4 x float> %x, %m1 = fmul <4 x float> %m0, @@ -1472,7 +1472,7 @@ define double @test_f64_fneg_fmul(double %x, double %y) #0 { ; FMA-LABEL: test_f64_fneg_fmul: ; FMA: # %bb.0: ; FMA-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; FMA-NEXT: vfnmsub213sd %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_f64_fneg_fmul: @@ -1484,7 +1484,7 @@ define double @test_f64_fneg_fmul(double %x, double %y) #0 { ; AVX512-LABEL: test_f64_fneg_fmul: ; AVX512: # %bb.0: ; AVX512-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; AVX512-NEXT: vfnmsub213sd %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213sd {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %m = fmul nsz double %x, %y %n = fsub double -0.0, %m @@ -1495,7 +1495,7 @@ define <4 x float> @test_v4f32_fneg_fmul(<4 x float> %x, <4 x float> %y) #0 { ; FMA-LABEL: test_v4f32_fneg_fmul: ; FMA: # %bb.0: ; FMA-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; FMA-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; FMA-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f32_fneg_fmul: @@ -1507,7 +1507,7 @@ define <4 x float> @test_v4f32_fneg_fmul(<4 x float> %x, <4 x float> %y) #0 { ; AVX512-LABEL: test_v4f32_fneg_fmul: ; AVX512: # %bb.0: ; AVX512-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; AVX512-NEXT: vfnmsub213ps %xmm2, %xmm1, %xmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} xmm0 = -(xmm1 * xmm0) - xmm2 ; AVX512-NEXT: retq %m = fmul nsz <4 x float> %x, %y %n = fsub <4 x float> , %m @@ -1518,7 +1518,7 @@ define <4 x double> @test_v4f64_fneg_fmul(<4 x double> %x, <4 x double> %y) #0 { ; FMA-LABEL: test_v4f64_fneg_fmul: ; FMA: # %bb.0: ; FMA-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; FMA-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v4f64_fneg_fmul: @@ -1530,7 +1530,7 @@ define <4 x double> @test_v4f64_fneg_fmul(<4 x double> %x, <4 x double> %y) #0 { ; AVX512-LABEL: test_v4f64_fneg_fmul: ; AVX512: # %bb.0: ; AVX512-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; AVX512-NEXT: vfnmsub213pd %ymm2, %ymm1, %ymm0 +; AVX512-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm1 * ymm0) - ymm2 ; AVX512-NEXT: retq %m = fmul nsz <4 x double> %x, %y %n = fsub <4 x double> , %m diff --git a/llvm/test/CodeGen/X86/fma_patterns_wide.ll b/llvm/test/CodeGen/X86/fma_patterns_wide.ll index 9b2d7ff..a72c8eb 100644 --- a/llvm/test/CodeGen/X86/fma_patterns_wide.ll +++ b/llvm/test/CodeGen/X86/fma_patterns_wide.ll @@ -15,8 +15,8 @@ define <16 x float> @test_16f32_fmadd(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { ; FMA-LABEL: test_16f32_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmadd213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfmadd213ps {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_16f32_fmadd: @@ -27,7 +27,7 @@ define <16 x float> @test_16f32_fmadd(<16 x float> %a0, <16 x float> %a1, <16 x ; ; AVX512-LABEL: test_16f32_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmadd213ps {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %x = fmul <16 x float> %a0, %a1 %res = fadd <16 x float> %x, %a2 @@ -37,8 +37,8 @@ define <16 x float> @test_16f32_fmadd(<16 x float> %a0, <16 x float> %a1, <16 x define <8 x double> @test_8f64_fmadd(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { ; FMA-LABEL: test_8f64_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmadd213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f64_fmadd: @@ -49,7 +49,7 @@ define <8 x double> @test_8f64_fmadd(<8 x double> %a0, <8 x double> %a1, <8 x do ; ; AVX512-LABEL: test_8f64_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %x = fmul <8 x double> %a0, %a1 %res = fadd <8 x double> %x, %a2 @@ -63,8 +63,8 @@ define <8 x double> @test_8f64_fmadd(<8 x double> %a0, <8 x double> %a1, <8 x do define <16 x float> @test_16f32_fmsub(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { ; FMA-LABEL: test_16f32_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmsub213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfmsub213ps {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_16f32_fmsub: @@ -75,7 +75,7 @@ define <16 x float> @test_16f32_fmsub(<16 x float> %a0, <16 x float> %a1, <16 x ; ; AVX512-LABEL: test_16f32_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmsub213ps {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %x = fmul <16 x float> %a0, %a1 %res = fsub <16 x float> %x, %a2 @@ -85,8 +85,8 @@ define <16 x float> @test_16f32_fmsub(<16 x float> %a0, <16 x float> %a1, <16 x define <8 x double> @test_8f64_fmsub(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { ; FMA-LABEL: test_8f64_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmsub213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmsub213pd {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfmsub213pd {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f64_fmsub: @@ -97,7 +97,7 @@ define <8 x double> @test_8f64_fmsub(<8 x double> %a0, <8 x double> %a1, <8 x do ; ; AVX512-LABEL: test_8f64_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmsub213pd {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %x = fmul <8 x double> %a0, %a1 %res = fsub <8 x double> %x, %a2 @@ -111,8 +111,8 @@ define <8 x double> @test_8f64_fmsub(<8 x double> %a0, <8 x double> %a1, <8 x do define <16 x float> @test_16f32_fnmadd(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { ; FMA-LABEL: test_16f32_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmadd213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmadd213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfnmadd213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_16f32_fnmadd: @@ -123,7 +123,7 @@ define <16 x float> @test_16f32_fnmadd(<16 x float> %a0, <16 x float> %a1, <16 x ; ; AVX512-LABEL: test_16f32_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmadd213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %x = fmul <16 x float> %a0, %a1 %res = fsub <16 x float> %a2, %x @@ -133,8 +133,8 @@ define <16 x float> @test_16f32_fnmadd(<16 x float> %a0, <16 x float> %a1, <16 x define <8 x double> @test_8f64_fnmadd(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { ; FMA-LABEL: test_8f64_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmadd213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f64_fnmadd: @@ -145,7 +145,7 @@ define <8 x double> @test_8f64_fnmadd(<8 x double> %a0, <8 x double> %a1, <8 x d ; ; AVX512-LABEL: test_8f64_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmadd213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %x = fmul <8 x double> %a0, %a1 %res = fsub <8 x double> %a2, %x @@ -159,8 +159,8 @@ define <8 x double> @test_8f64_fnmadd(<8 x double> %a0, <8 x double> %a1, <8 x d define <16 x float> @test_16f32_fnmsub(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) { ; FMA-LABEL: test_16f32_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmsub213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_16f32_fnmsub: @@ -171,7 +171,7 @@ define <16 x float> @test_16f32_fnmsub(<16 x float> %a0, <16 x float> %a1, <16 x ; ; AVX512-LABEL: test_16f32_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %x = fmul <16 x float> %a0, %a1 %y = fsub <16 x float> , %x @@ -182,8 +182,8 @@ define <16 x float> @test_16f32_fnmsub(<16 x float> %a0, <16 x float> %a1, <16 x define <8 x double> @test_8f64_fnmsub(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) { ; FMA-LABEL: test_8f64_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmsub213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f64_fnmsub: @@ -194,7 +194,7 @@ define <8 x double> @test_8f64_fnmsub(<8 x double> %a0, <8 x double> %a1, <8 x d ; ; AVX512-LABEL: test_8f64_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmsub213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %x = fmul <8 x double> %a0, %a1 %y = fsub <8 x double> , %x @@ -209,8 +209,8 @@ define <8 x double> @test_8f64_fnmsub(<8 x double> %a0, <8 x double> %a1, <8 x d define <16 x float> @test_16f32_fmadd_load(<16 x float>* %a0, <16 x float> %a1, <16 x float> %a2) { ; FMA-LABEL: test_16f32_fmadd_load: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd132ps (%rdi), %ymm2, %ymm0 -; FMA-NEXT: vfmadd132ps 32(%rdi), %ymm3, %ymm1 +; FMA-NEXT: vfmadd132ps {{.*#+}} ymm0 = (ymm0 * mem) + ymm2 +; FMA-NEXT: vfmadd132ps {{.*#+}} ymm1 = (ymm1 * mem) + ymm3 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_16f32_fmadd_load: @@ -221,7 +221,7 @@ define <16 x float> @test_16f32_fmadd_load(<16 x float>* %a0, <16 x float> %a1, ; ; AVX512-LABEL: test_16f32_fmadd_load: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd132ps (%rdi), %zmm1, %zmm0 +; AVX512-NEXT: vfmadd132ps {{.*#+}} zmm0 = (zmm0 * mem) + zmm1 ; AVX512-NEXT: retq %x = load <16 x float>, <16 x float>* %a0 %y = fmul <16 x float> %x, %a1 @@ -232,8 +232,8 @@ define <16 x float> @test_16f32_fmadd_load(<16 x float>* %a0, <16 x float> %a1, define <8 x double> @test_8f64_fmsub_load(<8 x double>* %a0, <8 x double> %a1, <8 x double> %a2) { ; FMA-LABEL: test_8f64_fmsub_load: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub132pd (%rdi), %ymm2, %ymm0 -; FMA-NEXT: vfmsub132pd 32(%rdi), %ymm3, %ymm1 +; FMA-NEXT: vfmsub132pd {{.*#+}} ymm0 = (ymm0 * mem) - ymm2 +; FMA-NEXT: vfmsub132pd {{.*#+}} ymm1 = (ymm1 * mem) - ymm3 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_8f64_fmsub_load: @@ -244,7 +244,7 @@ define <8 x double> @test_8f64_fmsub_load(<8 x double>* %a0, <8 x double> %a1, < ; ; AVX512-LABEL: test_8f64_fmsub_load: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub132pd (%rdi), %zmm1, %zmm0 +; AVX512-NEXT: vfmsub132pd {{.*#+}} zmm0 = (zmm0 * mem) - zmm1 ; AVX512-NEXT: retq %x = load <8 x double>, <8 x double>* %a0 %y = fmul <8 x double> %x, %a1 @@ -283,8 +283,8 @@ define <16 x float> @test_v16f32_mul_add_x_one_y(<16 x float> %x, <16 x float> % ; ; FMA-NOINFS-LABEL: test_v16f32_mul_add_x_one_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_add_x_one_y: @@ -295,7 +295,7 @@ define <16 x float> @test_v16f32_mul_add_x_one_y(<16 x float> %x, <16 x float> % ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_add_x_one_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <16 x float> %x, %m = fmul <16 x float> %a, %y @@ -329,8 +329,8 @@ define <8 x double> @test_v8f64_mul_y_add_x_one(<8 x double> %x, <8 x double> %y ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_add_x_one: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_add_x_one: @@ -341,7 +341,7 @@ define <8 x double> @test_v8f64_mul_y_add_x_one(<8 x double> %x, <8 x double> %y ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_add_x_one: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <8 x double> %x, %m = fmul <8 x double> %y, %a @@ -375,8 +375,8 @@ define <16 x float> @test_v16f32_mul_add_x_negone_y(<16 x float> %x, <16 x float ; ; FMA-NOINFS-LABEL: test_v16f32_mul_add_x_negone_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmsub213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_add_x_negone_y: @@ -387,7 +387,7 @@ define <16 x float> @test_v16f32_mul_add_x_negone_y(<16 x float> %x, <16 x float ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_add_x_negone_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <16 x float> %x, %m = fmul <16 x float> %a, %y @@ -421,8 +421,8 @@ define <8 x double> @test_v8f64_mul_y_add_x_negone(<8 x double> %x, <8 x double> ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_add_x_negone: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmsub213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmsub213pd {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfmsub213pd {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_add_x_negone: @@ -433,7 +433,7 @@ define <8 x double> @test_v8f64_mul_y_add_x_negone(<8 x double> %x, <8 x double> ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_add_x_negone: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmsub213pd {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %a = fadd <8 x double> %x, %m = fmul <8 x double> %y, %a @@ -468,8 +468,8 @@ define <16 x float> @test_v16f32_mul_sub_one_x_y(<16 x float> %x, <16 x float> % ; ; FMA-NOINFS-LABEL: test_v16f32_mul_sub_one_x_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfnmadd213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_one_x_y: @@ -480,7 +480,7 @@ define <16 x float> @test_v16f32_mul_sub_one_x_y(<16 x float> %x, <16 x float> % ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_sub_one_x_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <16 x float> , %x %m = fmul <16 x float> %s, %y @@ -515,8 +515,8 @@ define <8 x double> @test_v8f64_mul_y_sub_one_x(<8 x double> %x, <8 x double> %y ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_sub_one_x: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfnmadd213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_one_x: @@ -527,7 +527,7 @@ define <8 x double> @test_v8f64_mul_y_sub_one_x(<8 x double> %x, <8 x double> %y ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_sub_one_x: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfnmadd213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <8 x double> , %x %m = fmul <8 x double> %y, %s @@ -562,8 +562,8 @@ define <16 x float> @test_v16f32_mul_sub_negone_x_y(<16 x float> %x, <16 x float ; ; FMA-NOINFS-LABEL: test_v16f32_mul_sub_negone_x_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmsub213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfnmsub213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfnmsub213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_negone_x_y: @@ -574,7 +574,7 @@ define <16 x float> @test_v16f32_mul_sub_negone_x_y(<16 x float> %x, <16 x float ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_sub_negone_x_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmsub213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfnmsub213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <16 x float> , %x %m = fmul <16 x float> %s, %y @@ -609,8 +609,8 @@ define <8 x double> @test_v8f64_mul_y_sub_negone_x(<8 x double> %x, <8 x double> ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_sub_negone_x: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmsub213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfnmsub213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfnmsub213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_negone_x: @@ -621,7 +621,7 @@ define <8 x double> @test_v8f64_mul_y_sub_negone_x(<8 x double> %x, <8 x double> ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_sub_negone_x: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmsub213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfnmsub213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <8 x double> , %x %m = fmul <8 x double> %y, %s @@ -655,8 +655,8 @@ define <16 x float> @test_v16f32_mul_sub_x_one_y(<16 x float> %x, <16 x float> % ; ; FMA-NOINFS-LABEL: test_v16f32_mul_sub_x_one_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmsub213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfmsub213ps {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_x_one_y: @@ -667,7 +667,7 @@ define <16 x float> @test_v16f32_mul_sub_x_one_y(<16 x float> %x, <16 x float> % ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_sub_x_one_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmsub213ps {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <16 x float> %x, %m = fmul <16 x float> %s, %y @@ -701,8 +701,8 @@ define <8 x double> @test_v8f64_mul_y_sub_x_one(<8 x double> %x, <8 x double> %y ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_sub_x_one: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmsub213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmsub213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmsub213pd {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm2 +; FMA-NOINFS-NEXT: vfmsub213pd {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_x_one: @@ -713,7 +713,7 @@ define <8 x double> @test_v8f64_mul_y_sub_x_one(<8 x double> %x, <8 x double> %y ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_sub_x_one: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmsub213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmsub213pd {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <8 x double> %x, %m = fmul <8 x double> %y, %s @@ -747,8 +747,8 @@ define <16 x float> @test_v16f32_mul_sub_x_negone_y(<16 x float> %x, <16 x float ; ; FMA-NOINFS-LABEL: test_v16f32_mul_sub_x_negone_y: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213ps %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213ps %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_mul_sub_x_negone_y: @@ -759,7 +759,7 @@ define <16 x float> @test_v16f32_mul_sub_x_negone_y(<16 x float> %x, <16 x float ; ; AVX512-NOINFS-LABEL: test_v16f32_mul_sub_x_negone_y: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213ps %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <16 x float> %x, %m = fmul <16 x float> %s, %y @@ -793,8 +793,8 @@ define <8 x double> @test_v8f64_mul_y_sub_x_negone(<8 x double> %x, <8 x double> ; ; FMA-NOINFS-LABEL: test_v8f64_mul_y_sub_x_negone: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfmadd213pd %ymm2, %ymm2, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213pd %ymm3, %ymm3, %ymm1 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_mul_y_sub_x_negone: @@ -805,7 +805,7 @@ define <8 x double> @test_v8f64_mul_y_sub_x_negone(<8 x double> %x, <8 x double> ; ; AVX512-NOINFS-LABEL: test_v8f64_mul_y_sub_x_negone: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfmadd213pd %zmm1, %zmm1, %zmm0 +; AVX512-NOINFS-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %s = fsub <8 x double> %x, %m = fmul <8 x double> %y, %s @@ -824,8 +824,8 @@ define <16 x float> @test_v16f32_interp(<16 x float> %x, <16 x float> %y, <16 x ; FMA-INFS-NEXT: vsubps %ymm5, %ymm6, %ymm6 ; FMA-INFS-NEXT: vmulps %ymm6, %ymm3, %ymm3 ; FMA-INFS-NEXT: vmulps %ymm7, %ymm2, %ymm2 -; FMA-INFS-NEXT: vfmadd213ps %ymm2, %ymm4, %ymm0 -; FMA-INFS-NEXT: vfmadd213ps %ymm3, %ymm5, %ymm1 +; FMA-INFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm4 * ymm0) + ymm2 +; FMA-INFS-NEXT: vfmadd213ps {{.*#+}} ymm1 = (ymm5 * ymm1) + ymm3 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v16f32_interp: @@ -844,15 +844,15 @@ define <16 x float> @test_v16f32_interp(<16 x float> %x, <16 x float> %y, <16 x ; AVX512-INFS-NEXT: vbroadcastss {{.*#+}} zmm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] ; AVX512-INFS-NEXT: vsubps %zmm2, %zmm3, %zmm3 ; AVX512-INFS-NEXT: vmulps %zmm3, %zmm1, %zmm1 -; AVX512-INFS-NEXT: vfmadd213ps %zmm1, %zmm2, %zmm0 +; AVX512-INFS-NEXT: vfmadd213ps {{.*#+}} zmm0 = (zmm2 * zmm0) + zmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v16f32_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213ps %ymm3, %ymm5, %ymm3 -; FMA-NOINFS-NEXT: vfnmadd213ps %ymm2, %ymm4, %ymm2 -; FMA-NOINFS-NEXT: vfmadd213ps %ymm2, %ymm4, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213ps %ymm3, %ymm5, %ymm1 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm3 = -(ymm5 * ymm3) + ymm3 +; FMA-NOINFS-NEXT: vfnmadd213ps {{.*#+}} ymm2 = -(ymm4 * ymm2) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm0 = (ymm4 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213ps {{.*#+}} ymm1 = (ymm5 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v16f32_interp: @@ -865,8 +865,8 @@ define <16 x float> @test_v16f32_interp(<16 x float> %x, <16 x float> %y, <16 x ; ; AVX512-NOINFS-LABEL: test_v16f32_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213ps %zmm1, %zmm2, %zmm1 -; AVX512-NOINFS-NEXT: vfmadd213ps %zmm1, %zmm2, %zmm0 +; AVX512-NOINFS-NEXT: vfnmadd213ps {{.*#+}} zmm1 = -(zmm2 * zmm1) + zmm1 +; AVX512-NOINFS-NEXT: vfmadd213ps {{.*#+}} zmm0 = (zmm2 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <16 x float> , %t %tx = fmul <16 x float> %x, %t @@ -883,8 +883,8 @@ define <8 x double> @test_v8f64_interp(<8 x double> %x, <8 x double> %y, <8 x do ; FMA-INFS-NEXT: vsubpd %ymm5, %ymm6, %ymm6 ; FMA-INFS-NEXT: vmulpd %ymm6, %ymm3, %ymm3 ; FMA-INFS-NEXT: vmulpd %ymm7, %ymm2, %ymm2 -; FMA-INFS-NEXT: vfmadd213pd %ymm2, %ymm4, %ymm0 -; FMA-INFS-NEXT: vfmadd213pd %ymm3, %ymm5, %ymm1 +; FMA-INFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm4 * ymm0) + ymm2 +; FMA-INFS-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm5 * ymm1) + ymm3 ; FMA-INFS-NEXT: retq ; ; FMA4-INFS-LABEL: test_v8f64_interp: @@ -903,15 +903,15 @@ define <8 x double> @test_v8f64_interp(<8 x double> %x, <8 x double> %y, <8 x do ; AVX512-INFS-NEXT: vbroadcastsd {{.*#+}} zmm3 = [1,1,1,1,1,1,1,1] ; AVX512-INFS-NEXT: vsubpd %zmm2, %zmm3, %zmm3 ; AVX512-INFS-NEXT: vmulpd %zmm3, %zmm1, %zmm1 -; AVX512-INFS-NEXT: vfmadd213pd %zmm1, %zmm2, %zmm0 +; AVX512-INFS-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm2 * zmm0) + zmm1 ; AVX512-INFS-NEXT: retq ; ; FMA-NOINFS-LABEL: test_v8f64_interp: ; FMA-NOINFS: # %bb.0: -; FMA-NOINFS-NEXT: vfnmadd213pd %ymm3, %ymm5, %ymm3 -; FMA-NOINFS-NEXT: vfnmadd213pd %ymm2, %ymm4, %ymm2 -; FMA-NOINFS-NEXT: vfmadd213pd %ymm2, %ymm4, %ymm0 -; FMA-NOINFS-NEXT: vfmadd213pd %ymm3, %ymm5, %ymm1 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm3 = -(ymm5 * ymm3) + ymm3 +; FMA-NOINFS-NEXT: vfnmadd213pd {{.*#+}} ymm2 = -(ymm4 * ymm2) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm4 * ymm0) + ymm2 +; FMA-NOINFS-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm5 * ymm1) + ymm3 ; FMA-NOINFS-NEXT: retq ; ; FMA4-NOINFS-LABEL: test_v8f64_interp: @@ -924,8 +924,8 @@ define <8 x double> @test_v8f64_interp(<8 x double> %x, <8 x double> %y, <8 x do ; ; AVX512-NOINFS-LABEL: test_v8f64_interp: ; AVX512-NOINFS: # %bb.0: -; AVX512-NOINFS-NEXT: vfnmadd213pd %zmm1, %zmm2, %zmm1 -; AVX512-NOINFS-NEXT: vfmadd213pd %zmm1, %zmm2, %zmm0 +; AVX512-NOINFS-NEXT: vfnmadd213pd {{.*#+}} zmm1 = -(zmm2 * zmm1) + zmm1 +; AVX512-NOINFS-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm2 * zmm0) + zmm1 ; AVX512-NOINFS-NEXT: retq %t1 = fsub <8 x double> , %t %tx = fmul <8 x double> %x, %t @@ -941,8 +941,8 @@ define <8 x double> @test_v8f64_interp(<8 x double> %x, <8 x double> %y, <8 x do define <16 x float> @test_v16f32_fneg_fmadd(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) #0 { ; FMA-LABEL: test_v16f32_fneg_fmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfnmsub213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmsub213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v16f32_fneg_fmadd: @@ -953,7 +953,7 @@ define <16 x float> @test_v16f32_fneg_fmadd(<16 x float> %a0, <16 x float> %a1, ; ; AVX512-LABEL: test_v16f32_fneg_fmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %mul = fmul <16 x float> %a0, %a1 %add = fadd <16 x float> %mul, %a2 @@ -964,8 +964,8 @@ define <16 x float> @test_v16f32_fneg_fmadd(<16 x float> %a0, <16 x float> %a1, define <8 x double> @test_v8f64_fneg_fmsub(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) #0 { ; FMA-LABEL: test_v8f64_fneg_fmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfnmadd213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmadd213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfnmadd213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v8f64_fneg_fmsub: @@ -976,7 +976,7 @@ define <8 x double> @test_v8f64_fneg_fmsub(<8 x double> %a0, <8 x double> %a1, < ; ; AVX512-LABEL: test_v8f64_fneg_fmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfnmadd213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmadd213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %mul = fmul <8 x double> %a0, %a1 %sub = fsub <8 x double> %mul, %a2 @@ -987,8 +987,8 @@ define <8 x double> @test_v8f64_fneg_fmsub(<8 x double> %a0, <8 x double> %a1, < define <16 x float> @test_v16f32_fneg_fnmadd(<16 x float> %a0, <16 x float> %a1, <16 x float> %a2) #0 { ; FMA-LABEL: test_v16f32_fneg_fnmadd: ; FMA: # %bb.0: -; FMA-NEXT: vfmsub213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmsub213ps %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmsub213ps {{.*#+}} ymm0 = (ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfmsub213ps {{.*#+}} ymm1 = (ymm3 * ymm1) - ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v16f32_fneg_fnmadd: @@ -999,7 +999,7 @@ define <16 x float> @test_v16f32_fneg_fnmadd(<16 x float> %a0, <16 x float> %a1, ; ; AVX512-LABEL: test_v16f32_fneg_fnmadd: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmsub213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmsub213ps {{.*#+}} zmm0 = (zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %mul = fmul <16 x float> %a0, %a1 %neg0 = fsub <16 x float> , %mul @@ -1011,8 +1011,8 @@ define <16 x float> @test_v16f32_fneg_fnmadd(<16 x float> %a0, <16 x float> %a1, define <8 x double> @test_v8f64_fneg_fnmsub(<8 x double> %a0, <8 x double> %a1, <8 x double> %a2) #0 { ; FMA-LABEL: test_v8f64_fneg_fnmsub: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfmadd213pd %ymm5, %ymm3, %ymm1 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm0 = (ymm2 * ymm0) + ymm4 +; FMA-NEXT: vfmadd213pd {{.*#+}} ymm1 = (ymm3 * ymm1) + ymm5 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v8f64_fneg_fnmsub: @@ -1023,7 +1023,7 @@ define <8 x double> @test_v8f64_fneg_fnmsub(<8 x double> %a0, <8 x double> %a1, ; ; AVX512-LABEL: test_v8f64_fneg_fnmsub: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfmadd213pd {{.*#+}} zmm0 = (zmm1 * zmm0) + zmm2 ; AVX512-NEXT: retq %mul = fmul <8 x double> %a0, %a1 %neg0 = fsub <8 x double> , %mul @@ -1066,8 +1066,8 @@ define <16 x float> @test_v16f32_fma_x_c1_fmul_x_c2(<16 x float> %x) #0 { define <16 x float> @test_v16f32_fma_fmul_x_c1_c2_y(<16 x float> %x, <16 x float> %y) #0 { ; FMA-LABEL: test_v16f32_fma_fmul_x_c1_c2_y: ; FMA: # %bb.0: -; FMA-NEXT: vfmadd132ps {{.*}}(%rip), %ymm2, %ymm0 -; FMA-NEXT: vfmadd132ps {{.*}}(%rip), %ymm3, %ymm1 +; FMA-NEXT: vfmadd132ps {{.*#+}} ymm0 = (ymm0 * mem) + ymm2 +; FMA-NEXT: vfmadd132ps {{.*#+}} ymm1 = (ymm1 * mem) + ymm3 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v16f32_fma_fmul_x_c1_c2_y: @@ -1078,7 +1078,7 @@ define <16 x float> @test_v16f32_fma_fmul_x_c1_c2_y(<16 x float> %x, <16 x float ; ; AVX512-LABEL: test_v16f32_fma_fmul_x_c1_c2_y: ; AVX512: # %bb.0: -; AVX512-NEXT: vfmadd132ps {{.*}}(%rip), %zmm1, %zmm0 +; AVX512-NEXT: vfmadd132ps {{.*#+}} zmm0 = (zmm0 * mem) + zmm1 ; AVX512-NEXT: retq %m0 = fmul <16 x float> %x, %m1 = fmul <16 x float> %m0, @@ -1092,8 +1092,8 @@ define <16 x float> @test_v16f32_fneg_fmul(<16 x float> %x, <16 x float> %y) #0 ; FMA-LABEL: test_v16f32_fneg_fmul: ; FMA: # %bb.0: ; FMA-NEXT: vxorps %xmm4, %xmm4, %xmm4 -; FMA-NEXT: vfnmsub213ps %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmsub213ps %ymm4, %ymm3, %ymm1 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfnmsub213ps {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm4 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v16f32_fneg_fmul: @@ -1106,7 +1106,7 @@ define <16 x float> @test_v16f32_fneg_fmul(<16 x float> %x, <16 x float> %y) #0 ; AVX512-LABEL: test_v16f32_fneg_fmul: ; AVX512: # %bb.0: ; AVX512-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; AVX512-NEXT: vfnmsub213ps %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmsub213ps {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %m = fmul nsz <16 x float> %x, %y %n = fsub <16 x float> , %m @@ -1117,8 +1117,8 @@ define <8 x double> @test_v8f64_fneg_fmul(<8 x double> %x, <8 x double> %y) #0 { ; FMA-LABEL: test_v8f64_fneg_fmul: ; FMA: # %bb.0: ; FMA-NEXT: vxorpd %xmm4, %xmm4, %xmm4 -; FMA-NEXT: vfnmsub213pd %ymm4, %ymm2, %ymm0 -; FMA-NEXT: vfnmsub213pd %ymm4, %ymm3, %ymm1 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm0 = -(ymm2 * ymm0) - ymm4 +; FMA-NEXT: vfnmsub213pd {{.*#+}} ymm1 = -(ymm3 * ymm1) - ymm4 ; FMA-NEXT: retq ; ; FMA4-LABEL: test_v8f64_fneg_fmul: @@ -1131,7 +1131,7 @@ define <8 x double> @test_v8f64_fneg_fmul(<8 x double> %x, <8 x double> %y) #0 { ; AVX512-LABEL: test_v8f64_fneg_fmul: ; AVX512: # %bb.0: ; AVX512-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; AVX512-NEXT: vfnmsub213pd %zmm2, %zmm1, %zmm0 +; AVX512-NEXT: vfnmsub213pd {{.*#+}} zmm0 = -(zmm1 * zmm0) - zmm2 ; AVX512-NEXT: retq %m = fmul nsz <8 x double> %x, %y %n = fsub <8 x double> , %m -- 2.7.4