diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-02-20 22:10:33 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-02-20 22:10:33 +0000 |
commit | 0dc54c4dee349232b466d0e649834dde5d1b972a (patch) | |
tree | 7bffdcf9144cd82ba94a1a2436e49008c9230258 /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | 2c64aef35fc880d608dc5fc6e3a850d69caedfd6 (diff) | |
download | bcm5719-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.cpp | 3 |
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, |