R600/SI: Fix incorrect encoding of DS_WRITE_B32 instructions
authorTom Stellard <thomas.stellard@amd.com>
Fri, 16 Aug 2013 01:12:20 +0000 (01:12 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 16 Aug 2013 01:12:20 +0000 (01:12 +0000)
commita6a39ced095c2f453624ce62c4aead25db41a18f
treeb7ae0e904a814233601cf7c343a860bbf5f64809
parent30d84d8dfa0433088d541c66b92af0da3855bc9c
R600/SI: Fix incorrect encoding of DS_WRITE_B32 instructions

The SIInsertWaits pass was overwriting the first operand (gds bit) of
DS_WRITE_B32 with the second operand (value to write).  This meant that
any time the value to write was stored in an odd number VGPR, the gds
bit would be set causing the instruction to write to GDS instead of LDS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188522 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/SIInsertWaits.cpp
lib/Target/R600/SIInstrInfo.td
lib/Target/R600/SIInstructions.td
test/CodeGen/R600/local-memory.ll