; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-pc-win32 -mcpu=core-avx2 | FileCheck %s --check-prefix=FMA
; RUN: llc < %s -mtriple=x86_64-pc-win32 -mattr=+fma | FileCheck %s --check-prefix=FMA
; RUN: llc < %s -mcpu=bdver2 -mtriple=x86_64-pc-win32 -mattr=-fma4 | FileCheck %s --check-prefix=FMA
; RUN: llc < %s -mcpu=bdver2 -mtriple=x86_64-pc-win32 | FileCheck %s --check-prefix=FMA4

attributes #0 = { nounwind }

declare <4 x float> @llvm.x86.fma.vfmadd.ss(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fmadd_baa_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm1
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmadd213ss %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vmovaps (%rdx), %xmm1
; FMA4-NEXT:    vfmaddss %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ss(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmadd_aba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmadd132ss (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmaddss %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ss(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmadd_bba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmadd213ss (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfmaddss (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ss(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <4 x float> @llvm.x86.fma.vfmadd.ps(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fmadd_baa_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmadd132ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmaddps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ps(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmadd_aba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmadd231ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmaddps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ps(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmadd_bba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmadd213ps (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfmaddps (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmadd.ps(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <8 x float> @llvm.x86.fma.vfmadd.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
define <8 x float> @test_x86_fmadd_baa_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfmadd132ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfmaddps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmadd.ps.256(<8 x float> %b, <8 x float> %a, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fmadd_aba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfmadd231ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfmaddps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmadd.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fmadd_bba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %ymm0
; FMA-NEXT:    vfmadd213ps (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %ymm0
; FMA4-NEXT:    vfmaddps (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmadd.ps.256(<8 x float> %b, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

declare <2 x double> @llvm.x86.fma.vfmadd.sd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fmadd_baa_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm1
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmadd213sd %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vmovapd (%rdx), %xmm1
; FMA4-NEXT:    vfmaddsd %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.sd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmadd_aba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmadd132sd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmaddsd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.sd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmadd_bba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmadd213sd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfmaddsd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.sd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <2 x double> @llvm.x86.fma.vfmadd.pd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fmadd_baa_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmadd132pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmaddpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.pd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmadd_aba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmadd231pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmaddpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.pd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmadd_bba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmadd213pd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfmaddpd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmadd.pd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <4 x double> @llvm.x86.fma.vfmadd.pd.256(<4 x double>, <4 x double>, <4 x double>) nounwind readnone
define <4 x double> @test_x86_fmadd_baa_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_baa_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfmadd132pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_baa_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfmaddpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmadd.pd.256(<4 x double> %b, <4 x double> %a, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fmadd_aba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_aba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfmadd231pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_aba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfmaddpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmadd.pd.256(<4 x double> %a, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fmadd_bba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmadd_bba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %ymm0
; FMA-NEXT:    vfmadd213pd (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmadd_bba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %ymm0
; FMA4-NEXT:    vfmaddpd (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmadd.pd.256(<4 x double> %b, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}


declare <4 x float> @llvm.x86.fma.vfnmadd.ss(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fnmadd_baa_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm1
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213ss %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vmovaps (%rdx), %xmm1
; FMA4-NEXT:    vfnmaddss %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ss(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmadd_aba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmadd132ss (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddss %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ss(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmadd_bba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213ss (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfnmaddss (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ss(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <4 x float> @llvm.x86.fma.vfnmadd.ps(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fnmadd_baa_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmadd132ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ps(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmadd_aba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmadd231ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ps(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmadd_bba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213ps (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfnmaddps (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmadd.ps(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <8 x float> @llvm.x86.fma.vfnmadd.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
define <8 x float> @test_x86_fnmadd_baa_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfnmadd132ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfnmaddps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmadd.ps.256(<8 x float> %b, <8 x float> %a, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fnmadd_aba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfnmadd231ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfnmaddps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmadd.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fnmadd_bba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %ymm0
; FMA-NEXT:    vfnmadd213ps (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %ymm0
; FMA4-NEXT:    vfnmaddps (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmadd.ps.256(<8 x float> %b, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

declare <2 x double> @llvm.x86.fma.vfnmadd.sd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fnmadd_baa_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm1
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213sd %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vmovapd (%rdx), %xmm1
; FMA4-NEXT:    vfnmaddsd %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.sd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmadd_aba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmadd132sd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddsd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.sd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmadd_bba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213sd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfnmaddsd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.sd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <2 x double> @llvm.x86.fma.vfnmadd.pd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fnmadd_baa_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmadd132pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.pd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmadd_aba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmadd231pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmaddpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.pd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmadd_bba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmadd213pd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfnmaddpd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmadd.pd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <4 x double> @llvm.x86.fma.vfnmadd.pd.256(<4 x double>, <4 x double>, <4 x double>) nounwind readnone
define <4 x double> @test_x86_fnmadd_baa_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_baa_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfnmadd132pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_baa_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfnmaddpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmadd.pd.256(<4 x double> %b, <4 x double> %a, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fnmadd_aba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_aba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfnmadd231pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_aba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfnmaddpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmadd.pd.256(<4 x double> %a, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fnmadd_bba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmadd_bba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %ymm0
; FMA-NEXT:    vfnmadd213pd (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmadd_bba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %ymm0
; FMA4-NEXT:    vfnmaddpd (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmadd.pd.256(<4 x double> %b, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

declare <4 x float> @llvm.x86.fma.vfmsub.ss(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fmsub_baa_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm1
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmsub213ss %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vmovaps (%rdx), %xmm1
; FMA4-NEXT:    vfmsubss %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ss(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmsub_aba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmsub132ss (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmsubss %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ss(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmsub_bba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmsub213ss (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfmsubss (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ss(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <4 x float> @llvm.x86.fma.vfmsub.ps(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fmsub_baa_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmsub132ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmsubps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ps(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmsub_aba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfmsub231ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfmsubps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ps(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fmsub_bba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfmsub213ps (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfmsubps (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfmsub.ps(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <8 x float> @llvm.x86.fma.vfmsub.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
define <8 x float> @test_x86_fmsub_baa_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfmsub132ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfmsubps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmsub.ps.256(<8 x float> %b, <8 x float> %a, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fmsub_aba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfmsub231ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfmsubps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmsub.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fmsub_bba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %ymm0
; FMA-NEXT:    vfmsub213ps (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %ymm0
; FMA4-NEXT:    vfmsubps (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfmsub.ps.256(<8 x float> %b, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

declare <2 x double> @llvm.x86.fma.vfmsub.sd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fmsub_baa_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm1
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmsub213sd %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vmovapd (%rdx), %xmm1
; FMA4-NEXT:    vfmsubsd %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.sd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmsub_aba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmsub132sd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmsubsd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.sd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmsub_bba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmsub213sd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfmsubsd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.sd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <2 x double> @llvm.x86.fma.vfmsub.pd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fmsub_baa_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmsub132pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmsubpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.pd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmsub_aba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfmsub231pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfmsubpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.pd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fmsub_bba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfmsub213pd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfmsubpd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfmsub.pd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <4 x double> @llvm.x86.fma.vfmsub.pd.256(<4 x double>, <4 x double>, <4 x double>) nounwind readnone
define <4 x double> @test_x86_fmsub_baa_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_baa_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfmsub132pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_baa_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfmsubpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmsub.pd.256(<4 x double> %b, <4 x double> %a, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fmsub_aba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_aba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfmsub231pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_aba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfmsubpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmsub.pd.256(<4 x double> %a, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fmsub_bba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fmsub_bba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %ymm0
; FMA-NEXT:    vfmsub213pd (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fmsub_bba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %ymm0
; FMA4-NEXT:    vfmsubpd (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfmsub.pd.256(<4 x double> %b, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}


declare <4 x float> @llvm.x86.fma.vfnmsub.ss(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fnmsub_baa_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm1
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213ss %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vmovaps (%rdx), %xmm1
; FMA4-NEXT:    vfnmsubss %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ss(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmsub_aba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmsub132ss (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubss %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ss(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmsub_bba_ss(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_ss:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213ss (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_ss:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfnmsubss (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ss(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <4 x float> @llvm.x86.fma.vfnmsub.ps(<4 x float>, <4 x float>, <4 x float>) nounwind readnone
define <4 x float> @test_x86_fnmsub_baa_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmsub132ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ps(<4 x float> %b, <4 x float> %a, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmsub_aba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %xmm0
; FMA-NEXT:    vfnmsub231ps (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubps %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ps(<4 x float> %a, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

define <4 x float> @test_x86_fnmsub_bba_ps(<4 x float> %a, <4 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_ps:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213ps (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_ps:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %xmm0
; FMA4-NEXT:    vfnmsubps (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <4 x float> @llvm.x86.fma.vfnmsub.ps(<4 x float> %b, <4 x float> %b, <4 x float> %a) nounwind
  ret <4 x float> %res
}

declare <8 x float> @llvm.x86.fma.vfnmsub.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
define <8 x float> @test_x86_fnmsub_baa_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfnmsub132ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfnmsubps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmsub.ps.256(<8 x float> %b, <8 x float> %a, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fnmsub_aba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rcx), %ymm0
; FMA-NEXT:    vfnmsub231ps (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rcx), %ymm0
; FMA4-NEXT:    vfnmsubps %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmsub.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

define <8 x float> @test_x86_fnmsub_bba_ps_y(<8 x float> %a, <8 x float> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_ps_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovaps (%rdx), %ymm0
; FMA-NEXT:    vfnmsub213ps (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_ps_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovaps (%rdx), %ymm0
; FMA4-NEXT:    vfnmsubps (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <8 x float> @llvm.x86.fma.vfnmsub.ps.256(<8 x float> %b, <8 x float> %b, <8 x float> %a) nounwind
  ret <8 x float> %res
}

declare <2 x double> @llvm.x86.fma.vfnmsub.sd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fnmsub_baa_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm1
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213sd %xmm1, %xmm1, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vmovapd (%rdx), %xmm1
; FMA4-NEXT:    vfnmsubsd %xmm0, %xmm0, %xmm1, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.sd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmsub_aba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmsub132sd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubsd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.sd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmsub_bba_sd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_sd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213sd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_sd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfnmsubsd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.sd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <2 x double> @llvm.x86.fma.vfnmsub.pd(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
define <2 x double> @test_x86_fnmsub_baa_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmsub132pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.pd(<2 x double> %b, <2 x double> %a, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmsub_aba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %xmm0
; FMA-NEXT:    vfnmsub231pd (%rdx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %xmm0
; FMA4-NEXT:    vfnmsubpd %xmm0, (%rdx), %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.pd(<2 x double> %a, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

define <2 x double> @test_x86_fnmsub_bba_pd(<2 x double> %a, <2 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_pd:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %xmm0
; FMA-NEXT:    vfnmsub213pd (%rcx), %xmm0, %xmm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_pd:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %xmm0
; FMA4-NEXT:    vfnmsubpd (%rcx), %xmm0, %xmm0, %xmm0
; FMA4-NEXT:    retq
  %res = call <2 x double> @llvm.x86.fma.vfnmsub.pd(<2 x double> %b, <2 x double> %b, <2 x double> %a) nounwind
  ret <2 x double> %res
}

declare <4 x double> @llvm.x86.fma.vfnmsub.pd.256(<4 x double>, <4 x double>, <4 x double>) nounwind readnone
define <4 x double> @test_x86_fnmsub_baa_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_baa_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfnmsub132pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_baa_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfnmsubpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmsub.pd.256(<4 x double> %b, <4 x double> %a, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fnmsub_aba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_aba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rcx), %ymm0
; FMA-NEXT:    vfnmsub231pd (%rdx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_aba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rcx), %ymm0
; FMA4-NEXT:    vfnmsubpd %ymm0, (%rdx), %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmsub.pd.256(<4 x double> %a, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

define <4 x double> @test_x86_fnmsub_bba_pd_y(<4 x double> %a, <4 x double> %b) #0 {
; FMA-LABEL: test_x86_fnmsub_bba_pd_y:
; FMA:       # BB#0:
; FMA-NEXT:    vmovapd (%rdx), %ymm0
; FMA-NEXT:    vfnmsub213pd (%rcx), %ymm0, %ymm0
; FMA-NEXT:    retq
;
; FMA4-LABEL: test_x86_fnmsub_bba_pd_y:
; FMA4:       # BB#0:
; FMA4-NEXT:    vmovapd (%rdx), %ymm0
; FMA4-NEXT:    vfnmsubpd (%rcx), %ymm0, %ymm0, %ymm0
; FMA4-NEXT:    retq
  %res = call <4 x double> @llvm.x86.fma.vfnmsub.pd.256(<4 x double> %b, <4 x double> %b, <4 x double> %a) nounwind
  ret <4 x double> %res
}

