Skip to content

Commit

Permalink
libclc: Stop using asm declarations for r600 on amdgcn for get_global…
Browse files Browse the repository at this point in the history
…_size (llvm#128692)

Comparing the case where each dimension is used alone, the only codegen
difference is a missed addressing mode fold for the constant offset in the old
version due to an ancient bug.
  • Loading branch information
arsenm authored Feb 25, 2025
1 parent f95ad44 commit b57e63b
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions libclc/amdgcn/lib/workitem/get_global_size.cl
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
#include <clc/clc.h>

uint __clc_amdgcn_get_global_size_x(void) __asm("llvm.r600.read.global.size.x");
uint __clc_amdgcn_get_global_size_y(void) __asm("llvm.r600.read.global.size.y");
uint __clc_amdgcn_get_global_size_z(void) __asm("llvm.r600.read.global.size.z");

_CLC_DEF _CLC_OVERLOAD size_t get_global_size(uint dim) {
switch (dim) {
case 0:
return __clc_amdgcn_get_global_size_x();
return __builtin_amdgcn_grid_size_x();
case 1:
return __clc_amdgcn_get_global_size_y();
return __builtin_amdgcn_grid_size_y();
case 2:
return __clc_amdgcn_get_global_size_z();
return __builtin_amdgcn_grid_size_z();
default:
return 1;
}
Expand Down

0 comments on commit b57e63b

Please sign in to comment.