diff options
author | Jim Grosbach <grosbach@apple.com> | 2013-02-27 21:31:12 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2013-02-27 21:31:12 +0000 |
commit | 5f21587648a33f3aa6dd9e5264c8418f9049ad00 (patch) | |
tree | c534da19a21710ea98cbc6de802bb79fda31b3d7 /llvm/lib/Target/ARM/ARMISelLowering.cpp | |
parent | 4890582f2adda536c719f664a51ae84760ffe4fe (diff) | |
download | bcm5719-llvm-5f21587648a33f3aa6dd9e5264c8418f9049ad00.tar.gz bcm5719-llvm-5f21587648a33f3aa6dd9e5264c8418f9049ad00.zip |
ARM: FMA is legal only if VFP4 is available.
rdar://13306723
llvm-svn: 176212
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index b8ff5b3bd65..244dac5ca43 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -554,6 +554,12 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) setOperationAction(ISD::CTPOP, MVT::v4i16, Custom); setOperationAction(ISD::CTPOP, MVT::v8i16, Custom); + // NEON only has FMA instructions as of VFP4. + if (!Subtarget->hasVFP4()) { + setOperationAction(ISD::FMA, MVT::v2f32, Expand); + setOperationAction(ISD::FMA, MVT::v4f32, Expand); + } + setTargetDAGCombine(ISD::INTRINSIC_VOID); setTargetDAGCombine(ISD::INTRINSIC_W_CHAIN); setTargetDAGCombine(ISD::INTRINSIC_WO_CHAIN); |