summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2015-12-01 23:04:00 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2015-12-01 23:04:00 +0000
commitf9bfeafd00339ffdd07a765375943a1dc68a61cd (patch)
treec79ace9d6860e77b40a8e79ef14c3cd21f0a190f /llvm/lib/Target/AMDGPU/SIISelLowering.cpp
parentb32a22eab79ed35cdea7df5cb9b478a2fd96f5ee (diff)
downloadbcm5719-llvm-f9bfeafd00339ffdd07a765375943a1dc68a61cd.tar.gz
bcm5719-llvm-f9bfeafd00339ffdd07a765375943a1dc68a61cd.zip
AMDGPU: Implement isNoopAddrSpaceCast
llvm-svn: 254468
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIISelLowering.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/SIISelLowering.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index ab93bceb96e..2cb801a707e 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -492,6 +492,17 @@ EVT SITargetLowering::getOptimalMemOpType(uint64_t Size, unsigned DstAlign,
return MVT::Other;
}
+static bool isFlatGlobalAddrSpace(unsigned AS) {
+ return AS == AMDGPUAS::GLOBAL_ADDRESS ||
+ AS == AMDGPUAS::FLAT_ADDRESS ||
+ AS == AMDGPUAS::CONSTANT_ADDRESS;
+}
+
+bool SITargetLowering::isNoopAddrSpaceCast(unsigned SrcAS,
+ unsigned DestAS) const {
+ return isFlatGlobalAddrSpace(SrcAS) && isFlatGlobalAddrSpace(DestAS);
+}
+
TargetLoweringBase::LegalizeTypeAction
SITargetLowering::getPreferredVectorAction(EVT VT) const {
if (VT.getVectorNumElements() != 1 && VT.getScalarType().bitsLE(MVT::i16))
OpenPOWER on IntegriCloud