#include <clc/clc.h> uint __clc_amdgcn_get_num_groups_x(void) __asm("llvm.r600.read.ngroups.x"); uint __clc_amdgcn_get_num_groups_y(void) __asm("llvm.r600.read.ngroups.y"); uint __clc_amdgcn_get_num_groups_z(void) __asm("llvm.r600.read.ngroups.z"); _CLC_DEF _CLC_OVERLOAD size_t get_num_groups(uint dim) { switch (dim) { case 0: return __clc_amdgcn_get_num_groups_x(); case 1: return __clc_amdgcn_get_num_groups_y(); case 2: return __clc_amdgcn_get_num_groups_z(); default: return 1; } }