; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma -fp-contract=fast | FileCheck %s --check-prefix=ALL --check-prefix=FMA --check-prefix=FMA-INFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma4,+fma -fp-contract=fast | FileCheck %s --check-prefix=ALL --check-prefix=FMA4 --check-prefix=FMA4-INFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma4 -fp-contract=fast | FileCheck %s --check-prefix=ALL --check-prefix=FMA4 --check-prefix=FMA4-INFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl -fp-contract=fast | FileCheck %s --check-prefix=ALL --check-prefix=AVX512 --check-prefix=AVX512-INFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma -fp-contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=ALL --check-prefix=FMA --check-prefix=FMA-NOINFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma4,+fma -fp-contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=ALL --check-prefix=FMA4 --check-prefix=FMA4-NOINFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx,+fma4 -fp-contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=ALL --check-prefix=FMA4 --check-prefix=FMA4-NOINFS
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl -fp-contract=fast -enable-no-infs-fp-math | FileCheck %s --check-prefix=ALL --check-prefix=AVX512 --check-prefix=AVX512-NOINFS

;
; Pattern: (fadd (fmul x, y), z) -> (fmadd x,y,z)
;

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:    retq
;
; FMA4-LABEL: test_f32_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f32_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213ss %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul float %a0, %a1
  %res = fadd float %x, %a2
  ret float %res
}

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:    retq
;
; FMA4-LABEL: test_4f32_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f32_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <4 x float> %a0, %a1
  %res = fadd <4 x float> %x, %a2
  ret <4 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_8f32_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddps %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_8f32_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213ps %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <8 x float> %a0, %a1
  %res = fadd <8 x float> %x, %a2
  ret <8 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_f64_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddsd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f64_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213sd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul double %a0, %a1
  %res = fadd double %x, %a2
  ret double %res
}

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:    retq
;
; FMA4-LABEL: test_2f64_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddpd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_2f64_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213pd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <2 x double> %a0, %a1
  %res = fadd <2 x double> %x, %a2
  ret <2 x double> %res
}

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:    retq
;
; FMA4-LABEL: test_4f64_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f64_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <4 x double> %a0, %a1
  %res = fadd <4 x double> %x, %a2
  ret <4 x double> %res
}

;
; Pattern: (fsub (fmul x, y), z) -> (fmsub x, y, z)
;

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:    retq
;
; FMA4-LABEL: test_f32_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubss %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f32_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213ss %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul float %a0, %a1
  %res = fsub float %x, %a2
  ret float %res
}

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:    retq
;
; FMA4-LABEL: test_4f32_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f32_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <4 x float> %a0, %a1
  %res = fsub <4 x float> %x, %a2
  ret <4 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_8f32_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubps %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_8f32_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213ps %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <8 x float> %a0, %a1
  %res = fsub <8 x float> %x, %a2
  ret <8 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_f64_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubsd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f64_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213sd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul double %a0, %a1
  %res = fsub double %x, %a2
  ret double %res
}

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:    retq
;
; FMA4-LABEL: test_2f64_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubpd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_2f64_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213pd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <2 x double> %a0, %a1
  %res = fsub <2 x double> %x, %a2
  ret <2 x double> %res
}

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:    retq
;
; FMA4-LABEL: test_4f64_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f64_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <4 x double> %a0, %a1
  %res = fsub <4 x double> %x, %a2
  ret <4 x double> %res
}

;
; Pattern: (fsub z, (fmul x, y)) -> (fnmadd x, y, z)
;

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:    retq
;
; FMA4-LABEL: test_f32_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddss %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f32_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213ss %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul float %a0, %a1
  %res = fsub float %a2, %x
  ret float %res
}

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:    retq
;
; FMA4-LABEL: test_4f32_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f32_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <4 x float> %a0, %a1
  %res = fsub <4 x float> %a2, %x
  ret <4 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_8f32_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddps %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_8f32_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213ps %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <8 x float> %a0, %a1
  %res = fsub <8 x float> %a2, %x
  ret <8 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_f64_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddsd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f64_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213sd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul double %a0, %a1
  %res = fsub double %a2, %x
  ret double %res
}

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:    retq
;
; FMA4-LABEL: test_2f64_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddpd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_2f64_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213pd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <2 x double> %a0, %a1
  %res = fsub <2 x double> %a2, %x
  ret <2 x double> %res
}

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:    retq
;
; FMA4-LABEL: test_4f64_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f64_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <4 x double> %a0, %a1
  %res = fsub <4 x double> %a2, %x
  ret <4 x double> %res
}

;
; Pattern: (fsub (fneg (fmul x, y)), z) -> (fnmsub x, y, z)
;

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:    retq
;
; FMA4-LABEL: test_f32_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubss %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f32_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213ss %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul float %a0, %a1
  %y = fsub float -0.000000e+00, %x
  %res = fsub float %y, %a2
  ret float %res
}

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:    retq
;
; FMA4-LABEL: test_4f32_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f32_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <4 x float> %a0, %a1
  %y = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %x
  %res = fsub <4 x float> %y, %a2
  ret <4 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_8f32_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubps %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_8f32_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213ps %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <8 x float> %a0, %a1
  %y = fsub <8 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %x
  %res = fsub <8 x float> %y, %a2
  ret <8 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_f64_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubsd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f64_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213sd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul double %a0, %a1
  %y = fsub double -0.000000e+00, %x
  %res = fsub double %y, %a2
  ret double %res
}

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:    retq
;
; FMA4-LABEL: test_2f64_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubpd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_2f64_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213pd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = fmul <2 x double> %a0, %a1
  %y = fsub <2 x double> <double -0.000000e+00, double -0.000000e+00>, %x
  %res = fsub <2 x double> %y, %a2
  ret <2 x double> %res
}

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:    retq
;
; FMA4-LABEL: test_4f64_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f64_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %x = fmul <4 x double> %a0, %a1
  %y = fsub <4 x double> <double -0.000000e+00, double -0.000000e+00, double -0.000000e+00, double -0.000000e+00>, %x
  %res = fsub <4 x double> %y, %a2
  ret <4 x double> %res
}

;
; Load Folding Patterns
;

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:    retq
;
; FMA4-LABEL: test_4f32_fmadd_load:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddps %xmm1, (%rdi), %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_4f32_fmadd_load:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd132ps (%rdi), %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = load <4 x float>, <4 x float>* %a0
  %y = fmul <4 x float> %x, %a1
  %res = fadd <4 x float> %y, %a2
  ret <4 x float> %res
}

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:    retq
;
; FMA4-LABEL: test_2f64_fmsub_load:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubpd %xmm1, (%rdi), %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_2f64_fmsub_load:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub132pd (%rdi), %xmm1, %xmm0
; AVX512-NEXT:    retq
  %x = load <2 x double>, <2 x double>* %a0
  %y = fmul <2 x double> %x, %a1
  %res = fsub <2 x double> %y, %a2
  ret <2 x double> %res
}

;
; Patterns (+ fneg variants): mul(add(1.0,x),y), mul(sub(1.0,x),y), mul(sub(x,1.0),y)
;

define <4 x float> @test_v4f32_mul_add_x_one_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_add_x_one_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_add_x_one_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_add_x_one_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_add_x_one_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_add_x_one_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmaddps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_add_x_one_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %a = fadd <4 x float> %x, <float 1.0, float 1.0, float 1.0, float 1.0>
  %m = fmul <4 x float> %a, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_add_x_one(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_add_x_one:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_add_x_one:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_add_x_one:
; 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:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_one:
; 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:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %a = fadd <4 x float> %x, <float 1.0, float 1.0, float 1.0, float 1.0>
  %m = fmul <4 x float> %y, %a
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_add_x_negone_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_add_x_negone_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_add_x_negone_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_add_x_negone_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vaddps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmsubps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_add_x_negone_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %a = fadd <4 x float> %x, <float -1.0, float -1.0, float -1.0, float -1.0>
  %m = fmul <4 x float> %a, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_add_x_negone(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_add_x_negone:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_add_x_negone:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vaddps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_add_x_negone:
; 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:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_add_x_negone:
; 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:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %a = fadd <4 x float> %x, <float -1.0, float -1.0, float -1.0, float -1.0>
  %m = fmul <4 x float> %y, %a
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_sub_one_x_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_sub_one_x_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_sub_one_x_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA4-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_sub_one_x_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %xmm2
; AVX512-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfnmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_one_x_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfnmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> <float 1.0, float 1.0, float 1.0, float 1.0>, %x
  %m = fmul <4 x float> %s, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_sub_one_x(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_sub_one_x:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_sub_one_x:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA4-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_sub_one_x:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %xmm2
; AVX512-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfnmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_one_x:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfnmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> <float 1.0, float 1.0, float 1.0, float 1.0>, %x
  %m = fmul <4 x float> %y, %s
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_sub_negone_x_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [-1.000000e+00,-1.000000e+00,-1.000000e+00,-1.000000e+00]
; FMA-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [-1.000000e+00,-1.000000e+00,-1.000000e+00,-1.000000e+00]
; FMA4-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %xmm2
; AVX512-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfnmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmsubps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_negone_x_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfnmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> <float -1.0, float -1.0, float -1.0, float -1.0>, %x
  %m = fmul <4 x float> %s, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_sub_negone_x(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [-1.000000e+00,-1.000000e+00,-1.000000e+00,-1.000000e+00]
; FMA-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovaps {{.*#+}} xmm2 = [-1.000000e+00,-1.000000e+00,-1.000000e+00,-1.000000e+00]
; FMA4-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %xmm2
; AVX512-INFS-NEXT:    vsubps %xmm0, %xmm2, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfnmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmsubps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_negone_x:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfnmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> <float -1.0, float -1.0, float -1.0, float -1.0>, %x
  %m = fmul <4 x float> %y, %s
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_sub_x_one_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_sub_x_one_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_sub_x_one_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_sub_x_one_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vsubps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmsubps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_x_one_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> %x, <float 1.0, float 1.0, float 1.0, float 1.0>
  %m = fmul <4 x float> %s, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_sub_x_one(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_sub_x_one:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_sub_x_one:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_sub_x_one:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vsubps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmsubps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_x_one:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmsub213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> %x, <float 1.0, float 1.0, float 1.0, float 1.0>
  %m = fmul <4 x float> %y, %s
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_sub_x_negone_y(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vsubps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm1, %xmm0, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmaddps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_sub_x_negone_y:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> %x, <float -1.0, float -1.0, float -1.0, float -1.0>
  %m = fmul <4 x float> %s, %y
  ret <4 x float> %m
}

define <4 x float> @test_v4f32_mul_y_sub_x_negone(<4 x float> %x, <4 x float> %y) {
; FMA-INFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; FMA-INFS:       # BB#0:
; FMA-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA-INFS-NEXT:    retq
;
; FMA4-INFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vsubps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vsubps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-INFS-NEXT:    vmulps %xmm0, %xmm1, %xmm0
; AVX512-INFS-NEXT:    retq
;
; FMA-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; FMA-NOINFS:       # BB#0:
; FMA-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; FMA-NOINFS-NEXT:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfmaddps %xmm1, %xmm1, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; AVX512-NOINFS-LABEL: test_v4f32_mul_y_sub_x_negone:
; AVX512-NOINFS:       # BB#0:
; AVX512-NOINFS-NEXT:    vfmadd213ps %xmm1, %xmm1, %xmm0
; AVX512-NOINFS-NEXT:    retq
  %s = fsub <4 x float> %x, <float -1.0, float -1.0, float -1.0, float -1.0>
  %m = fmul <4 x float> %y, %s
  ret <4 x float> %m
}

;
; Interpolation Patterns: add(mul(x,t),mul(sub(1.0,t),y))
;

define float @test_f32_interp(float %x, float %y, float %t) {
; FMA-INFS-LABEL: test_f32_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_f32_interp:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero
; FMA4-INFS-NEXT:    vsubss %xmm2, %xmm3, %xmm3
; FMA4-INFS-NEXT:    vmulss %xmm3, %xmm1, %xmm1
; FMA4-INFS-NEXT:    vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_f32_interp:
; AVX512-INFS:       # BB#0:
; 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:    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:    retq
;
; FMA4-NOINFS-LABEL: test_f32_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddss %xmm1, %xmm1, %xmm2, %xmm1
; FMA4-NOINFS-NEXT:    vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub float 1.0, %t
  %tx = fmul float %x, %t
  %ty = fmul float %y, %t1
  %r = fadd float %tx, %ty
  ret float %r
}

define <4 x float> @test_v4f32_interp(<4 x float> %x, <4 x float> %y, <4 x float> %t) {
; FMA-INFS-LABEL: test_v4f32_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_v4f32_interp:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovaps {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA4-INFS-NEXT:    vsubps %xmm2, %xmm3, %xmm3
; FMA4-INFS-NEXT:    vmulps %xmm3, %xmm1, %xmm1
; FMA4-INFS-NEXT:    vfmaddps %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f32_interp:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %xmm3
; AVX512-INFS-NEXT:    vsubps %xmm2, %xmm3, %xmm3
; AVX512-INFS-NEXT:    vmulps %xmm3, %xmm1, %xmm1
; AVX512-INFS-NEXT:    vfmadd213ps %xmm1, %xmm2, %xmm0
; 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:    retq
;
; FMA4-NOINFS-LABEL: test_v4f32_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddps %xmm1, %xmm1, %xmm2, %xmm1
; FMA4-NOINFS-NEXT:    vfmaddps %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub <4 x float> <float 1.0, float 1.0, float 1.0, float 1.0>, %t
  %tx = fmul <4 x float> %x, %t
  %ty = fmul <4 x float> %y, %t1
  %r = fadd <4 x float> %tx, %ty
  ret <4 x float> %r
}

define <8 x float> @test_v8f32_interp(<8 x float> %x, <8 x float> %y, <8 x float> %t) {
; FMA-INFS-LABEL: test_v8f32_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_v8f32_interp:
; FMA4-INFS:       # BB#0:
; FMA4-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]
; FMA4-INFS-NEXT:    vsubps %ymm2, %ymm3, %ymm3
; FMA4-INFS-NEXT:    vmulps %ymm3, %ymm1, %ymm1
; FMA4-INFS-NEXT:    vfmaddps %ymm1, %ymm2, %ymm0, %ymm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v8f32_interp:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastss {{.*}}(%rip), %ymm3
; AVX512-INFS-NEXT:    vsubps %ymm2, %ymm3, %ymm3
; AVX512-INFS-NEXT:    vmulps %ymm3, %ymm1, %ymm1
; AVX512-INFS-NEXT:    vfmadd213ps %ymm1, %ymm2, %ymm0
; 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:    retq
;
; FMA4-NOINFS-LABEL: test_v8f32_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddps %ymm1, %ymm1, %ymm2, %ymm1
; FMA4-NOINFS-NEXT:    vfmaddps %ymm1, %ymm2, %ymm0, %ymm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub <8 x float> <float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0>, %t
  %tx = fmul <8 x float> %x, %t
  %ty = fmul <8 x float> %y, %t1
  %r = fadd <8 x float> %tx, %ty
  ret <8 x float> %r
}

define double @test_f64_interp(double %x, double %y, double %t) {
; FMA-INFS-LABEL: test_f64_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_f64_interp:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
; FMA4-INFS-NEXT:    vsubsd %xmm2, %xmm3, %xmm3
; FMA4-INFS-NEXT:    vmulsd %xmm3, %xmm1, %xmm1
; FMA4-INFS-NEXT:    vfmaddsd %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_f64_interp:
; AVX512-INFS:       # BB#0:
; 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:    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:    retq
;
; FMA4-NOINFS-LABEL: test_f64_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddsd %xmm1, %xmm1, %xmm2, %xmm1
; FMA4-NOINFS-NEXT:    vfmaddsd %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub double 1.0, %t
  %tx = fmul double %x, %t
  %ty = fmul double %y, %t1
  %r = fadd double %tx, %ty
  ret double %r
}

define <2 x double> @test_v2f64_interp(<2 x double> %x, <2 x double> %y, <2 x double> %t) {
; FMA-INFS-LABEL: test_v2f64_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_v2f64_interp:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovapd {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00]
; FMA4-INFS-NEXT:    vsubpd %xmm2, %xmm3, %xmm3
; FMA4-INFS-NEXT:    vmulpd %xmm3, %xmm1, %xmm1
; FMA4-INFS-NEXT:    vfmaddpd %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v2f64_interp:
; AVX512-INFS:       # BB#0:
; 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:    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:    retq
;
; FMA4-NOINFS-LABEL: test_v2f64_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddpd %xmm1, %xmm1, %xmm2, %xmm1
; FMA4-NOINFS-NEXT:    vfmaddpd %xmm1, %xmm2, %xmm0, %xmm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub <2 x double> <double 1.0, double 1.0>, %t
  %tx = fmul <2 x double> %x, %t
  %ty = fmul <2 x double> %y, %t1
  %r = fadd <2 x double> %tx, %ty
  ret <2 x double> %r
}

define <4 x double> @test_v4f64_interp(<4 x double> %x, <4 x double> %y, <4 x double> %t) {
; FMA-INFS-LABEL: test_v4f64_interp:
; FMA-INFS:       # BB#0:
; 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:    retq
;
; FMA4-INFS-LABEL: test_v4f64_interp:
; FMA4-INFS:       # BB#0:
; FMA4-INFS-NEXT:    vmovapd {{.*#+}} ymm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00]
; FMA4-INFS-NEXT:    vsubpd %ymm2, %ymm3, %ymm3
; FMA4-INFS-NEXT:    vmulpd %ymm3, %ymm1, %ymm1
; FMA4-INFS-NEXT:    vfmaddpd %ymm1, %ymm2, %ymm0, %ymm0
; FMA4-INFS-NEXT:    retq
;
; AVX512-INFS-LABEL: test_v4f64_interp:
; AVX512-INFS:       # BB#0:
; AVX512-INFS-NEXT:    vbroadcastsd {{.*}}(%rip), %ymm3
; AVX512-INFS-NEXT:    vsubpd %ymm2, %ymm3, %ymm3
; AVX512-INFS-NEXT:    vmulpd %ymm3, %ymm1, %ymm1
; AVX512-INFS-NEXT:    vfmadd213pd %ymm1, %ymm2, %ymm0
; 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:    retq
;
; FMA4-NOINFS-LABEL: test_v4f64_interp:
; FMA4-NOINFS:       # BB#0:
; FMA4-NOINFS-NEXT:    vfnmaddpd %ymm1, %ymm1, %ymm2, %ymm1
; FMA4-NOINFS-NEXT:    vfmaddpd %ymm1, %ymm2, %ymm0, %ymm0
; FMA4-NOINFS-NEXT:    retq
;
; 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:    retq
  %t1 = fsub <4 x double> <double 1.0, double 1.0, double 1.0, double 1.0>, %t
  %tx = fmul <4 x double> %x, %t
  %ty = fmul <4 x double> %y, %t1
  %r = fadd <4 x double> %tx, %ty
  ret <4 x double> %r
}

;
; Pattern: (fneg (fma x, y, z)) -> (fma x, -y, -z)
;

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:    retq
;
; FMA4-LABEL: test_v4f32_fneg_fmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmsubps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f32_fneg_fmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmsub213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %mul = fmul <4 x float> %a0, %a1
  %add = fadd <4 x float> %mul, %a2
  %neg = fsub <4 x float> <float -0.0, float -0.0, float -0.0, float -0.0>, %add
  ret <4 x float> %neg
}

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:    retq
;
; FMA4-LABEL: test_v4f64_fneg_fmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfnmaddpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f64_fneg_fmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfnmadd213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %mul = fmul <4 x double> %a0, %a1
  %sub = fsub <4 x double> %mul, %a2
  %neg = fsub <4 x double> <double -0.0, double -0.0, double -0.0, double -0.0>, %sub
  ret <4 x double> %neg
}

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:    retq
;
; FMA4-LABEL: test_v4f32_fneg_fnmadd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmsubps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f32_fneg_fnmadd:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmsub213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %mul = fmul <4 x float> %a0, %a1
  %neg0 = fsub <4 x float> <float -0.0, float -0.0, float -0.0, float -0.0>, %mul
  %add = fadd <4 x float> %neg0, %a2
  %neg1 = fsub <4 x float> <float -0.0, float -0.0, float -0.0, float -0.0>, %add
  ret <4 x float> %neg1
}

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:    retq
;
; FMA4-LABEL: test_v4f64_fneg_fnmsub:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f64_fneg_fnmsub:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %mul = fmul <4 x double> %a0, %a1
  %neg0 = fsub <4 x double> <double -0.0, double -0.0, double -0.0, double -0.0>, %mul
  %sub = fsub <4 x double> %neg0, %a2
  %neg1 = fsub <4 x double> <double -0.0, double -0.0, double -0.0, double -0.0>, %sub
  ret <4 x double> %neg1
}

;
; Pattern: (fma x, c1, (fmul x, c2)) -> (fmul x, c1+c2)
;

define <4 x float> @test_v4f32_fma_x_c1_fmul_x_c2(<4 x float> %x) #0 {
; FMA-LABEL: test_v4f32_fma_x_c1_fmul_x_c2:
; FMA:       # BB#0:
; FMA-NEXT:    vmulps {{.*}}(%rip), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_v4f32_fma_x_c1_fmul_x_c2:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmulps {{.*}}(%rip), %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f32_fma_x_c1_fmul_x_c2:
; AVX512:       # BB#0:
; AVX512-NEXT:    vmulps {{.*}}(%rip){1to4}, %xmm0, %xmm0
; AVX512-NEXT:    retq
  %m0 = fmul <4 x float> %x, <float 1.0, float 2.0, float 3.0, float 4.0>
  %m1 = fmul <4 x float> %x, <float 4.0, float 3.0, float 2.0, float 1.0>
  %a  = fadd <4 x float> %m0, %m1
  ret <4 x float> %a
}

;
; Pattern: (fma (fmul x, c1), c2, y) -> (fma x, c1*c2, y)
;

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:    retq
;
; FMA4-LABEL: test_v4f32_fma_fmul_x_c1_c2_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vfmaddps %xmm1, {{.*}}(%rip), %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f32_fma_fmul_x_c1_c2_y:
; AVX512:       # BB#0:
; AVX512-NEXT:    vfmadd132ps {{.*}}(%rip), %xmm1, %xmm0
; AVX512-NEXT:    retq
  %m0 = fmul <4 x float> %x,  <float 1.0, float 2.0, float 3.0, float 4.0>
  %m1 = fmul <4 x float> %m0, <float 4.0, float 3.0, float 2.0, float 1.0>
  %a  = fadd <4 x float> %m1, %y
  ret <4 x float> %a
}

; Pattern: (fneg (fmul x, y)) -> (fnmsub x, y, 0)

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:    retq
;
; FMA4-LABEL: test_f64_fneg_fmul:
; FMA4:       # BB#0:
; FMA4-NEXT:    vxorpd %xmm2, %xmm2, %xmm2
; FMA4-NEXT:    vfnmsubsd %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_f64_fneg_fmul:
; AVX512:       # BB#0:
; AVX512-NEXT:    vxorpd %xmm2, %xmm2, %xmm2
; AVX512-NEXT:    vfnmsub213sd %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %m = fmul nsz double %x, %y
  %n = fsub double -0.0, %m
  ret double %n
}

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:    retq
;
; FMA4-LABEL: test_v4f32_fneg_fmul:
; FMA4:       # BB#0:
; FMA4-NEXT:    vxorps %xmm2, %xmm2, %xmm2
; FMA4-NEXT:    vfnmsubps %xmm2, %xmm1, %xmm0, %xmm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f32_fneg_fmul:
; AVX512:       # BB#0:
; AVX512-NEXT:    vxorps %xmm2, %xmm2, %xmm2
; AVX512-NEXT:    vfnmsub213ps %xmm2, %xmm1, %xmm0
; AVX512-NEXT:    retq
  %m = fmul nsz <4 x float> %x, %y
  %n = fsub <4 x float> <float -0.0, float -0.0, float -0.0, float -0.0>, %m
  ret <4 x float> %n
}

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 %ymm2, %ymm2, %ymm2
; FMA-NEXT:    vfnmsub213pd %ymm2, %ymm1, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_v4f64_fneg_fmul:
; FMA4:       # BB#0:
; FMA4-NEXT:    vxorpd %ymm2, %ymm2, %ymm2
; FMA4-NEXT:    vfnmsubpd %ymm2, %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f64_fneg_fmul:
; AVX512:       # BB#0:
; AVX512-NEXT:    vxorpd %ymm2, %ymm2, %ymm2
; AVX512-NEXT:    vfnmsub213pd %ymm2, %ymm1, %ymm0
; AVX512-NEXT:    retq
  %m = fmul nsz <4 x double> %x, %y
  %n = fsub <4 x double> <double -0.0, double -0.0, double -0.0, double -0.0>, %m
  ret <4 x double> %n
}

define <4 x double> @test_v4f64_fneg_fmul_no_nsz(<4 x double> %x, <4 x double> %y) #0 {
; FMA-LABEL: test_v4f64_fneg_fmul_no_nsz:
; FMA:       # BB#0:
; FMA-NEXT:    vmulpd %ymm1, %ymm0, %ymm0
; FMA-NEXT:    vxorpd {{.*}}(%rip), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_v4f64_fneg_fmul_no_nsz:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmulpd %ymm1, %ymm0, %ymm0
; FMA4-NEXT:    vxorpd {{.*}}(%rip), %ymm0, %ymm0
; FMA4-NEXT:    retq
;
; AVX512-LABEL: test_v4f64_fneg_fmul_no_nsz:
; AVX512:       # BB#0:
; AVX512-NEXT:    vmulpd %ymm1, %ymm0, %ymm0
; AVX512-NEXT:    vxorpd {{.*}}(%rip){1to4}, %ymm0, %ymm0
; AVX512-NEXT:    retq
  %m = fmul <4 x double> %x, %y
  %n = fsub <4 x double> <double -0.0, double -0.0, double -0.0, double -0.0>, %m
  ret <4 x double> %n
}

attributes #0 = { "unsafe-fp-math"="true" }
