summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-03-06 17:34:12 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-03-06 17:34:12 +0000
commitf9a995d68c5877e5e81c66b656cf8fffdccb62d6 (patch)
tree1c7a5121df334e308a1b4e1158062014acf14b1d /llvm/lib/CodeGen
parent9fe669c52262e16afaabe490de44d198a46aa512 (diff)
downloadbcm5719-llvm-f9a995d68c5877e5e81c66b656cf8fffdccb62d6.tar.gz
bcm5719-llvm-f9a995d68c5877e5e81c66b656cf8fffdccb62d6.zip
R600: Fix extloads from i8 / i16 to i64.
This appears to only be working for global loads. Private and local break for other reasons. llvm-svn: 203135
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 57bfa4f1392..eac55124c24 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -231,6 +231,21 @@ bool ISD::allOperandsUndef(const SDNode *N) {
return true;
}
+ISD::NodeType ISD::getExtForLoadExtType(ISD::LoadExtType ExtType) {
+ switch (ExtType) {
+ case ISD::EXTLOAD:
+ return ISD::ANY_EXTEND;
+ case ISD::SEXTLOAD:
+ return ISD::SIGN_EXTEND;
+ case ISD::ZEXTLOAD:
+ return ISD::ZERO_EXTEND;
+ default:
+ break;
+ }
+
+ llvm_unreachable("Invalid LoadExtType");
+}
+
/// getSetCCSwappedOperands - Return the operation corresponding to (Y op X)
/// when given the operation for (X op Y).
ISD::CondCode ISD::getSetCCSwappedOperands(ISD::CondCode Operation) {
OpenPOWER on IntegriCloud