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 | b302a4e6b572a360d7153d2e1e14b53f053c282d (patch) | |
tree | 92f595f2fd34c11e078abf8dacb8f2134eba7577 /lib | |
parent | 0a4da9c6a12371bb8bb36ef5cbb6922e0138dde2 (diff) |
ARM: FMA is legal only if VFP4 is available.
rdar://13306723
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176212 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index b8ff5b3bd6..244dac5ca4 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/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); |