diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-04-10 21:40:28 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-04-10 21:40:28 +0000 |
commit | 3aef2ff514c879f98571fb91ddbe1142466a6266 (patch) | |
tree | 91b2d29d1a572c60661d2d8b02c79f7cedf852d0 /lib/Target/ARM/ARMInstrVFP.td | |
parent | 507bb7a42fce6502f90268712cbc32158c17bb59 (diff) | |
download | external_llvm-3aef2ff514c879f98571fb91ddbe1142466a6266.zip external_llvm-3aef2ff514c879f98571fb91ddbe1142466a6266.tar.gz external_llvm-3aef2ff514c879f98571fb91ddbe1142466a6266.tar.bz2 |
Handle llvm.fma.* intrinsics. rdar://10914096
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154439 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrVFP.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrVFP.td | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td index e9d5720..a9ad4fa 100644 --- a/lib/Target/ARM/ARMInstrVFP.td +++ b/lib/Target/ARM/ARMInstrVFP.td @@ -1080,6 +1080,14 @@ def : Pat<(fadd_mlx SPR:$dstin, (fmul_su SPR:$a, SPR:$b)), (VFMAS SPR:$dstin, SPR:$a, SPR:$b)>, Requires<[HasVFP4,DontUseNEONForFP,FPContractions]>; +// Match @llvm.fma.* intrinsics +def : Pat<(fma (f64 DPR:$Ddin), (f64 DPR:$Dn), (f64 DPR:$Dm)), + (VFMAD DPR:$Ddin, DPR:$Dn, DPR:$Dm)>, + Requires<[HasVFP4]>; +def : Pat<(fma (f32 SPR:$Sdin), (f32 SPR:$Sn), (f32 SPR:$Sm)), + (VFMAS SPR:$Sdin, SPR:$Sn, SPR:$Sm)>, + Requires<[HasVFP4]>; + def VFMSD : ADbI<0b11101, 0b10, 1, 0, (outs DPR:$Dd), (ins DPR:$Ddin, DPR:$Dn, DPR:$Dm), IIC_fpFMAC64, "vfms", ".f64\t$Dd, $Dn, $Dm", |