R600/SI: Use correct helper class for DS_WRITE2 instructions

DS_1A uses a single offset encoding, so offset1 wasn't being
encoded.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216276 91177308-0d34-0410-b5e6-96231b3b80d8
R600/SI: Wrap local memory pointer in AssertZExt on SI

These pointers are really just offsets and they will always be
less than 16-bits.  Using AssertZExt allows us to use computeKnownBits
to prove that these values are positive.  We will use this information
in a later commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216277 91177308-0d34-0410-b5e6-96231b3b80d8
R600/SI: Use a ComplexPattern for DS loads and stores

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216278 91177308-0d34-0410-b5e6-96231b3b80d8
R600/SI: Use READ2/WRITE2 instructions for 64-bit mem ops with 32-bit alignment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216279 91177308-0d34-0410-b5e6-96231b3b80d8