summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit5f21587648a33f3aa6dd9e5264c8418f9049ad00 (patch)
treec534da19a21710ea98cbc6de802bb79fda31b3d7 /llvm/lib/Target/ARM/ARMISelLowering.cpp
parent4890582f2adda536c719f664a51ae84760ffe4fe (diff)
downloadbcm5719-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.cpp6
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);
OpenPOWER on IntegriCloud