AMDGPU: Implement {BUFFER,FLAT}_ATOMIC_CMPSWAP{,_X2}
authorTom Stellard <thomas.stellard@amd.com>
Fri, 1 Apr 2016 18:27:37 +0000 (18:27 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 1 Apr 2016 18:27:37 +0000 (18:27 +0000)
commit354a43c7bc562a4c67439a02e4bd717fb49a5857
tree22e83b6529db38919db467433c3aa6e37aebb1eb
parent1b14082488800a3915a882ab04b419628bfd7767
AMDGPU: Implement {BUFFER,FLAT}_ATOMIC_CMPSWAP{,_X2}

Summary:
Implement BUFFER_ATOMIC_CMPSWAP{,_X2} instructions on all GCN targets, and FLAT_ATOMIC_CMPSWAP{,_X2} on CI+.

32-bit instruction variants tested manually on Kabini and Bonaire. Tests and parts of code provided by Jan Veselý.

Patch by: Vedran Miletić

Reviewers: arsenm, tstellarAMD, nhaehnle

Subscribers: jvesely, scchan, kanarayan, arsenm

Differential Revision: http://reviews.llvm.org/D17280

llvm-svn: 265170
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
llvm/lib/Target/AMDGPU/CIInstructions.td
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/SIISelLowering.h
llvm/lib/Target/AMDGPU/SIInstructions.td
llvm/test/CodeGen/AMDGPU/global_atomics.ll