[Ventus][fix] Add atomic builtin functions (init, load, store)
This commit is contained in:
parent
798cf98a9f
commit
c8e1c3d8cf
|
@ -135,6 +135,10 @@ public:
|
||||||
Opts["cl_khr_byte_addressable_store"] = true;
|
Opts["cl_khr_byte_addressable_store"] = true;
|
||||||
Opts["cl_khr_fp64"] = true;
|
Opts["cl_khr_fp64"] = true;
|
||||||
Opts["__cl_clang_variadic_functions"] = 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 {
|
LangAS getOpenCLTypeAddrSpace(OpenCLTypeKind TK) const override {
|
||||||
|
|
|
@ -13259,7 +13259,7 @@ void __ovld atomic_init(volatile atomic_double *, double);
|
||||||
#endif //cl_khr_fp64
|
#endif //cl_khr_fp64
|
||||||
#endif
|
#endif
|
||||||
#endif //defined(__opencl_c_generic_address_space)
|
#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 __global atomic_int *, int);
|
||||||
void __ovld atomic_init(volatile __local atomic_int *, int);
|
void __ovld atomic_init(volatile __local atomic_int *, int);
|
||||||
void __ovld atomic_init(volatile __global atomic_uint *, uint);
|
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);
|
void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope);
|
||||||
#endif
|
#endif
|
||||||
#endif //defined(__opencl_c_generic_address_space)
|
#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 __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 __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 __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 __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 __global atomic_float *, float, memory_order, memory_scope);
|
||||||
void __ovld atomic_store_explicit(volatile __local 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)
|
#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
|
||||||
#ifdef cl_khr_fp64
|
#ifdef cl_khr_fp64
|
||||||
void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order, memory_scope);
|
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);
|
ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order, memory_scope);
|
||||||
#endif
|
#endif
|
||||||
#endif //defined(__opencl_c_generic_address_space)
|
#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 __global atomic_int *, memory_order, memory_scope);
|
||||||
int __ovld atomic_load_explicit(volatile __local 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 __global atomic_uint *, memory_order, memory_scope);
|
||||||
uint __ovld atomic_load_explicit(volatile __local 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 __global atomic_float *, memory_order, memory_scope);
|
||||||
float __ovld atomic_load_explicit(volatile __local 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)
|
#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
|
||||||
#ifdef cl_khr_fp64
|
#ifdef cl_khr_fp64
|
||||||
double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order, memory_scope);
|
double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order, memory_scope);
|
||||||
|
|
Loading…
Reference in New Issue