summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMISelLowering.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2013-02-27 21:31:12 +0000
committerJim Grosbach <grosbach@apple.com>2013-02-27 21:31:12 +0000
commitb302a4e6b572a360d7153d2e1e14b53f053c282d (patch)
tree92f595f2fd34c11e078abf8dacb8f2134eba7577 /lib/Target/ARM/ARMISelLowering.cpp
parent0a4da9c6a12371bb8bb36ef5cbb6922e0138dde2 (diff)
downloadllvm-b302a4e6b572a360d7153d2e1e14b53f053c282d.tar.gz
llvm-b302a4e6b572a360d7153d2e1e14b53f053c282d.tar.bz2
llvm-b302a4e6b572a360d7153d2e1e14b53f053c282d.tar.xz
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/Target/ARM/ARMISelLowering.cpp')
-rw-r--r--lib/Target/ARM/ARMISelLowering.cpp6
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);