R600: Add cmpxchg instruction for evergreen
authorAaron Watry <awatry@gmail.com>
Thu, 11 Sep 2014 15:02:54 +0000 (15:02 +0000)
committerAaron Watry <awatry@gmail.com>
Thu, 11 Sep 2014 15:02:54 +0000 (15:02 +0000)
commit036303c4bfce560875fc283e1ab652458f86e01f
treebad70cff1e00917b48cf7afb10f84af6cf111464
parent1ff44854f68a9e9dbdb3a3bf344edd732382be74
R600: Add cmpxchg instruction for evergreen

Refactored the R600_LDS_1A2D class a bit to get it to actually work.

It seemed to be previously unused and broken.

We also have to disable the conversion to the noret variant for now in
R600ISelLowering because the getLDSNoRetOp method only handles 1A1D LDS ops.

Someone can feel free to modify the AMDGPU::getLDSNoRetOp method to
work for more than 1A1D variants of LDS operations. It's being left as a
future TODO for now.

Signed-off-by: Aaron Watry <awatry at gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217596 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/EvergreenInstructions.td
lib/Target/R600/R600ISelLowering.cpp