llvm/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl

#include <clc/clc.h>

#define IMPL(TYPE) \
_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(volatile global TYPE *p, TYPE cmp, TYPE val) { \
  return atomic_cmpxchg(p, cmp, val); \
}

IMPL(int)
IMPL(unsigned int)