[Ventus][fix] Add atomic builtin functions (init, load, store)

This commit is contained in:
Wang Qinfan 2025-01-16 14:01:55 +08:00 committed by Jules-Kong
parent 798cf98a9f
commit c8e1c3d8cf
2 changed files with 9 additions and 3 deletions

View File

@ -135,6 +135,10 @@ public:
Opts["cl_khr_byte_addressable_store"] = true;
Opts["cl_khr_fp64"] = true;
Opts["__cl_clang_variadic_functions"] = true;
Opts["cl_khr_global_int32_base_atomics"] = true;
Opts["cl_khr_global_int32_extended_atomics"] = true;
Opts["cl_khr_local_int32_base_atomics"] = true;
Opts["cl_khr_local_int32_extended_atomics"] = true;
}
LangAS getOpenCLTypeAddrSpace(OpenCLTypeKind TK) const override {

View File

@ -13259,7 +13259,7 @@ void __ovld atomic_init(volatile atomic_double *, double);
#endif //cl_khr_fp64
#endif
#endif //defined(__opencl_c_generic_address_space)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0 || __OPENCL_CPP_VERSION__ >= 202100)
void __ovld atomic_init(volatile __global atomic_int *, int);
void __ovld atomic_init(volatile __local atomic_int *, int);
void __ovld atomic_init(volatile __global atomic_uint *, uint);
@ -14034,13 +14034,14 @@ void __ovld atomic_store_explicit(volatile atomic_long *, long, memory_order, me
void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope);
#endif
#endif //defined(__opencl_c_generic_address_space)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0 || __OPENCL_CPP_VERSION__ >= 202100)
void __ovld atomic_store_explicit(volatile __global atomic_int *, int, memory_order, memory_scope);
void __ovld atomic_store_explicit(volatile __local atomic_int *, int, memory_order, memory_scope);
void __ovld atomic_store_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope);
void __ovld atomic_store_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope);
void __ovld atomic_store_explicit(volatile __global atomic_float *, float, memory_order, memory_scope);
void __ovld atomic_store_explicit(volatile __local atomic_float *, float, memory_order, memory_scope);
#define atomic_store_explicit __opencl_atomic_store
#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
#ifdef cl_khr_fp64
void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order, memory_scope);
@ -14132,13 +14133,14 @@ long __ovld atomic_load_explicit(volatile atomic_long *, memory_order, memory_sc
ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order, memory_scope);
#endif
#endif //defined(__opencl_c_generic_address_space)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0 || __OPENCL_CPP_VERSION__ >= 202100)
int __ovld atomic_load_explicit(volatile __global atomic_int *, memory_order, memory_scope);
int __ovld atomic_load_explicit(volatile __local atomic_int *, memory_order, memory_scope);
uint __ovld atomic_load_explicit(volatile __global atomic_uint *, memory_order, memory_scope);
uint __ovld atomic_load_explicit(volatile __local atomic_uint *, memory_order, memory_scope);
float __ovld atomic_load_explicit(volatile __global atomic_float *, memory_order, memory_scope);
float __ovld atomic_load_explicit(volatile __local atomic_float *, memory_order, memory_scope);
#define atomic_load_explicit __c11_atomic_load
#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
#ifdef cl_khr_fp64
double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order, memory_scope);