[libclc] Use __scoped_atomic_udec/uinc_wrap to implement _clc_atomic_dec/inc (#168327)
diff --git a/libclc/clc/lib/generic/atomic/clc_atomic_dec.cl b/libclc/clc/lib/generic/atomic/clc_atomic_dec.cl index 7984dba..e0d2419 100644 --- a/libclc/clc/lib/generic/atomic/clc_atomic_dec.cl +++ b/libclc/clc/lib/generic/atomic/clc_atomic_dec.cl
@@ -9,7 +9,7 @@ #include <clc/atomic/clc_atomic_dec.h> #define __CLC_FUNCTION __clc_atomic_dec -#define __CLC_IMPL_FUNCTION __scoped_atomic_fetch_add +#define __CLC_IMPL_FUNCTION __scoped_atomic_udec_wrap #define __CLC_INC_DEC #define __CLC_BODY <clc_atomic_def.inc>
diff --git a/libclc/clc/lib/generic/atomic/clc_atomic_def.inc b/libclc/clc/lib/generic/atomic/clc_atomic_def.inc index 7556143..6926b82 100644 --- a/libclc/clc/lib/generic/atomic/clc_atomic_def.inc +++ b/libclc/clc/lib/generic/atomic/clc_atomic_def.inc
@@ -46,7 +46,7 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \ int MemoryScope) { \ - return __CLC_IMPL_FUNCTION(Ptr, (__CLC_GENTYPE)1, MemoryOrder, \ + return __CLC_IMPL_FUNCTION(Ptr, (__CLC_U_GENTYPE)(-1), MemoryOrder, \ MemoryScope); \ } #elif defined(__CLC_RETURN_VOID)
diff --git a/libclc/clc/lib/generic/atomic/clc_atomic_inc.cl b/libclc/clc/lib/generic/atomic/clc_atomic_inc.cl index 7171f84..d594754 100644 --- a/libclc/clc/lib/generic/atomic/clc_atomic_inc.cl +++ b/libclc/clc/lib/generic/atomic/clc_atomic_inc.cl
@@ -9,7 +9,7 @@ #include <clc/atomic/clc_atomic_inc.h> #define __CLC_FUNCTION __clc_atomic_inc -#define __CLC_IMPL_FUNCTION __scoped_atomic_fetch_sub +#define __CLC_IMPL_FUNCTION __scoped_atomic_uinc_wrap #define __CLC_INC_DEC #define __CLC_BODY <clc_atomic_def.inc>