diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-08-05 15:59:07 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-08-05 15:59:07 +0000 |
| commit | 392239296993090fd49d7a665e933ffc52e2068a (patch) | |
| tree | ed1fc454c4ac29d50ec4a980feec9855d149dfa5 /llvm/lib/CodeGen | |
| parent | d884fbde2a829ef8c78d1a0b0f2478e7e672bc0a (diff) | |
| download | bcm5719-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.cpp | 6 |
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 |

