summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-08-05 15:59:07 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-08-05 15:59:07 +0000
commit392239296993090fd49d7a665e933ffc52e2068a (patch)
treeed1fc454c4ac29d50ec4a980feec9855d149dfa5 /llvm/lib/CodeGen
parentd884fbde2a829ef8c78d1a0b0f2478e7e672bc0a (diff)
downloadbcm5719-llvm-392239296993090fd49d7a665e933ffc52e2068a.tar.gz
bcm5719-llvm-392239296993090fd49d7a665e933ffc52e2068a.zip
AMDGPU: Correct behavior of f16 buffer loads
Don't assume format loads for f16. Also fixes support for targets without i16. llvm-svn: 367879
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
index b4849b2881e..8029b8968b3 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
@@ -2002,6 +2002,12 @@ void DAGTypeLegalizer::PromoteFloatResult(SDNode *N, unsigned ResNo) {
dbgs() << "\n");
SDValue R = SDValue();
+ // See if the target wants to custom expand this node.
+ if (CustomLowerNode(N, N->getValueType(ResNo), true)) {
+ LLVM_DEBUG(dbgs() << "Node has been custom expanded, done\n");
+ return;
+ }
+
switch (N->getOpcode()) {
// These opcodes cannot appear if promotion of FP16 is done in the backend
// instead of Clang
OpenPOWER on IntegriCloud