2016-07-23 01:24:24 +08:00
|
|
|
#include <clc/clc.h>
|
|
|
|
|
2018-08-03 23:14:08 +08:00
|
|
|
#if __clang_major__ >= 8
|
|
|
|
#define CONST_AS __constant
|
|
|
|
#elif __clang_major__ >= 7
|
2018-02-23 15:37:01 +08:00
|
|
|
#define CONST_AS __attribute__((address_space(4)))
|
|
|
|
#else
|
|
|
|
#define CONST_AS __attribute__((address_space(2)))
|
|
|
|
#endif
|
|
|
|
|
2020-08-18 04:44:49 +08:00
|
|
|
_CLC_DEF _CLC_OVERLOAD size_t get_global_offset(uint dim) {
|
|
|
|
CONST_AS uint *ptr = (CONST_AS uint *)__builtin_amdgcn_implicitarg_ptr();
|
|
|
|
if (dim < 3)
|
|
|
|
return ptr[dim + 1];
|
|
|
|
return 0;
|
2016-07-23 01:24:24 +08:00
|
|
|
}
|