summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2017-12-04 23:07:28 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2017-12-04 23:07:28 +0000
commit39aeab4f306d822688957d3118e2bc2a779147e3 (patch)
tree58198d629733551981866e56397ee1ec7dbdb9e8 /llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
parent98360946bbfdc80a3d1038ccf6cce442fbbee890 (diff)
downloadbcm5719-llvm-39aeab4f306d822688957d3118e2bc2a779147e3.tar.gz
bcm5719-llvm-39aeab4f306d822688957d3118e2bc2a779147e3.zip
AMDGPU/EG: Add a new FeatureFMA and use it to selectively enable FMA instruction
Only used by pre-GCN targets v2: fix predicate setting for FMA_Common Differential Revision: https://reviews.llvm.org/D40692 llvm-svn: 319712
Diffstat (limited to 'llvm/lib/Target/AMDGPU/R600ISelLowering.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/R600ISelLowering.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
index 0d62c5a32d4..66291d0be4e 100644
--- a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
@@ -211,6 +211,11 @@ R600TargetLowering::R600TargetLowering(const TargetMachine &TM,
setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
+ if (!Subtarget->hasFMA()) {
+ setOperationAction(ISD::FMA, MVT::f32, Expand);
+ setOperationAction(ISD::FMA, MVT::f64, Expand);
+ }
+
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
const MVT ScalarIntVTs[] = { MVT::i32, MVT::i64 };
OpenPOWER on IntegriCloud