OSDN Git Service

R600/SI: Fix broken encoding of DS_WRITE_B32
authorMichel Danzer <michel.daenzer@amd.com>
Fri, 16 Aug 2013 16:19:24 +0000 (16:19 +0000)
committerMichel Danzer <michel.daenzer@amd.com>
Fri, 16 Aug 2013 16:19:24 +0000 (16:19 +0000)
commitebd4eec5386e946dc80f4d80e803125af55c2a68
treeaf3745f0c505b530c6926ad072ca3ca015f98fc8
parentea549a847d87cb8ce46f6a45b24ae888db697a07
R600/SI: Fix broken encoding of DS_WRITE_B32

The logic in SIInsertWaits::getHwCounts() only really made sense for SMRD
instructions, and trying to shoehorn it into handling DS_WRITE_B32 caused
it to corrupt the encoding of that by clobbering the first operand with
the second one.

Undo that damage and only apply the SMRD logic to that.

Fixes some derivates related piglit regressions with radeonsi.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188558 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/SIDefines.h
lib/Target/R600/SIInsertWaits.cpp
lib/Target/R600/SIInstrFormats.td
lib/Target/R600/SIInstrInfo.cpp
lib/Target/R600/SIInstrInfo.h
test/CodeGen/R600/local-memory.ll