Description
// Requires OpenCL C 3.0 or newer and both the __opencl_c_atomic_order_seq_cst
// and __opencl_c_atomic_scope_device features.
C atomic_load(volatile __global A *object)
C atomic_load(volatile __local A *object)
// Requires OpenCL C 2.0, or OpenCL C 3.0 or newer and all of the
// __opencl_c_generic_address_space, __opencl_c_atomic_order_seq_cst and
// __opencl_c_atomic_scope_device features.
C atomic_load(volatile A *object)
// Requires OpenCL C 3.0 or newer and the __opencl_c_atomic_scope_device
// feature.
C atomic_load_explicit(volatile __global A *object,
memory_order order)
C atomic_load_explicit(volatile __local A *object,
memory_order order)
// Requires OpenCL C 2.0, or OpenCL C 3.0 or newer and both the
// __opencl_c_generic_address_space and __opencl_c_atomic_scope_device
// features.
C atomic_load_explicit(volatile A *object,
memory_order order)
// Requires OpenCL C 3.0 or newer.
C atomic_load_explicit(volatile __global A *object,
memory_order order,
memory_scope scope)
C atomic_load_explicit(volatile __local A *object,
memory_order order,
memory_scope scope)
// Requires OpenCL C 2.0, or OpenCL C 3.0 or newer and the
// __opencl_c_generic_address_space feature.
C atomic_load_explicit(volatile A *object,
memory_order order,
memory_scope scope)
The order argument shall not be memory_order_release nor
memory_order_acq_rel.
Memory is affected according to the value of order.
Atomically returns the value pointed to by object.
The non-explicit atomic_load function requires
support for OpenCL C 2.0 or OpenCL C 3.0 or newer and both the
__opencl_c_ and __opencl_c_
features.
For the explicit variants, memory order and scope enumerations must respect the
restrictions section below.
|
The function variants that use the generic address space, i.e. no
explicit address space is listed, require support for OpenCL
C 2.0, or OpenCL C 3.0 or newer and the __opencl_c_
feature.
|
Document Notes
For more information, see the OpenCL C Specification
This page is extracted from the OpenCL C Specification. Fixes and changes should be made to the Specification, not directly.