1#include <clc/clc.h> 2 3uint __clc_amdgcn_get_num_groups_x(void) __asm("llvm.r600.read.ngroups.x"); 4uint __clc_amdgcn_get_num_groups_y(void) __asm("llvm.r600.read.ngroups.y"); 5uint __clc_amdgcn_get_num_groups_z(void) __asm("llvm.r600.read.ngroups.z"); 6 7_CLC_DEF _CLC_OVERLOAD size_t get_num_groups(uint dim) { 8 switch (dim) { 9 case 0: 10 return __clc_amdgcn_get_num_groups_x(); 11 case 1: 12 return __clc_amdgcn_get_num_groups_y(); 13 case 2: 14 return __clc_amdgcn_get_num_groups_z(); 15 default: 16 return 1; 17 } 18} 19