[libomptarget] Implement hip atomic functions in terms of intrinsics
All but atomicInc can be implemented using type generic clang intrinsics.
There is not yet a corresponding intrinsic for atomicInc in clang, only one in
LLVM. This proposal uses an IR source file to fill in that gap as a temporary
The function takes address space, ordering, scope, volatile. Each carefully
chosen to correspond to the other atomics in use, but using magic numbers as
we can't #include the corresponding C++ header. This argues that the clang
intrinsic is the better solution.
Also happy to leave atomicInc as an unresolved symbol for now.