summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2015-02-20 22:10:33 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2015-02-20 22:10:33 +0000
commit0dc54c4dee349232b466d0e649834dde5d1b972a (patch)
tree7bffdcf9144cd82ba94a1a2436e49008c9230258 /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
parent2c64aef35fc880d608dc5fc6e3a850d69caedfd6 (diff)
downloadbcm5719-llvm-0dc54c4dee349232b466d0e649834dde5d1b972a.tar.gz
bcm5719-llvm-0dc54c4dee349232b466d0e649834dde5d1b972a.zip
Add generic fmad DAG node.
This allows sharing of FMA forming combines to work with instructions that have the same semantics as a separate multiply and add. This is expand by default, and only formed post legalization so it shouldn't have much impact on targets that do not want it. llvm-svn: 230070
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index e5473e35cae..ed337eb9648 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -3519,6 +3519,9 @@ void SelectionDAGLegalize::ExpandNode(SDNode *Node) {
RTLIB::FMA_F80, RTLIB::FMA_F128,
RTLIB::FMA_PPCF128));
break;
+ case ISD::FMAD:
+ llvm_unreachable("Illegal fmad should never be formed");
+
case ISD::FADD:
Results.push_back(ExpandFPLibCall(Node, RTLIB::ADD_F32, RTLIB::ADD_F64,
RTLIB::ADD_F80, RTLIB::ADD_F128,
OpenPOWER on IntegriCloud