diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-08-15 20:34:54 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-08-15 20:34:54 +0000 |
commit | 22f01268fe2186d74a4de49a017ce1e2676fcb77 (patch) | |
tree | 1a06a1788795a8604c6bf35b1962907dcc5e3c2a /llvm/lib/CodeGen | |
parent | 3124ce724a2d76f8817ba025e9542126de309924 (diff) | |
download | bcm5719-llvm-22f01268fe2186d74a4de49a017ce1e2676fcb77.tar.gz bcm5719-llvm-22f01268fe2186d74a4de49a017ce1e2676fcb77.zip |
DAG: Try to custom lower when promoting float operands
For some reason this wasn't done for floats like
integers.
llvm-svn: 339811
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp index 2e6f6edbce5..b6cce910228 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp @@ -1750,6 +1750,11 @@ static ISD::NodeType GetPromotionOpcode(EVT OpVT, EVT RetVT) { bool DAGTypeLegalizer::PromoteFloatOperand(SDNode *N, unsigned OpNo) { SDValue R = SDValue(); + if (CustomLowerNode(N, N->getOperand(OpNo).getValueType(), false)) { + LLVM_DEBUG(dbgs() << "Node has been custom lowered, done\n"); + return false; + } + // Nodes that use a promotion-requiring floating point operand, but doesn't // produce a promotion-requiring floating point result, need to be legalized // to use the promoted float operand. Nodes that produce at least one |