diff options
author | Marek Olsak <marek.olsak@amd.com> | 2015-09-29 23:37:32 +0000 |
---|---|---|
committer | Marek Olsak <marek.olsak@amd.com> | 2015-09-29 23:37:32 +0000 |
commit | d1a69a2839b3916fd833757af4db92e58860c08a (patch) | |
tree | f078933e0864af020dc9a33a6d3d69090f91d53a /llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | |
parent | a13dfd539b2498c64feabad2bffb98202465dd29 (diff) | |
download | bcm5719-llvm-d1a69a2839b3916fd833757af4db92e58860c08a.tar.gz bcm5719-llvm-d1a69a2839b3916fd833757af4db92e58860c08a.zip |
AMDGPU/SI: Don't set DATA_FORMAT if ADD_TID_ENABLE is set
to prevent setting a huge stride, because DATA_FORMAT has a different
meaning if ADD_TID_ENABLE is set.
This is a candidate for stable llvm 3.7.
Tested-and-Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 248858
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIInstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index b667dc24093..85c1e9179c9 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -2781,3 +2781,16 @@ uint64_t SIInstrInfo::getDefaultRsrcDataFormat() const { return RsrcDataFormat; } + +uint64_t SIInstrInfo::getScratchRsrcWords23() const { + uint64_t Rsrc23 = getDefaultRsrcDataFormat() | + AMDGPU::RSRC_TID_ENABLE | + 0xffffffff; // Size; + + // If TID_ENABLE is set, DATA_FORMAT specifies stride bits [14:17]. + // Clear them unless we want a huge stride. + if (ST.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) + Rsrc23 &= ~AMDGPU::RSRC_DATA_FORMAT; + + return Rsrc23; +} |