1#include <clc/clc.h> 2 3#ifdef cl_khr_int64_base_atomics 4 5#define IMPL(AS, TYPE) \ 6_CLC_OVERLOAD _CLC_DEF TYPE atom_add(volatile AS TYPE *p, TYPE val) { \ 7 return __sync_fetch_and_add_8(p, val); \ 8} 9 10IMPL(global, long) 11IMPL(global, unsigned long) 12IMPL(local, long) 13IMPL(local, unsigned long) 14#undef IMPL 15 16#endif 17