summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-08-15 20:34:54 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-08-15 20:34:54 +0000
commit22f01268fe2186d74a4de49a017ce1e2676fcb77 (patch)
tree1a06a1788795a8604c6bf35b1962907dcc5e3c2a /llvm/lib/CodeGen
parent3124ce724a2d76f8817ba025e9542126de309924 (diff)
downloadbcm5719-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.cpp5
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
OpenPOWER on IntegriCloud