#include <CL/__spirv/spirv_types.hpp>
#include <sycl/access/access.hpp>
#include <sycl/detail/defines_elementary.hpp>
#include <sycl/detail/helpers.hpp>
#include <sycl/memory_enums.hpp>
#include <sycl/multi_ptr.hpp>
#include <type_traits>
#include <atomic>
Go to the source code of this file.
Classes | |
class | sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress > |
Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More... | |
struct | sycl::_V1::detail::IsValidAtomicType< T > |
struct | sycl::_V1::detail::IsValidAtomicAddressSpace< AS > |
struct | sycl::_V1::detail::GetSpirvMemoryScope< AS > |
struct | sycl::_V1::detail::GetSpirvMemoryScope< access::address_space::global_space > |
struct | sycl::_V1::detail::GetSpirvMemoryScope< access::address_space::ext_intel_global_device_space > |
struct | sycl::_V1::detail::GetSpirvMemoryScope< access::address_space::local_space > |
Namespaces | |
sycl | |
sycl::_V1 | |
sycl::_V1::detail | |
Macros | |
#define | __SYCL_STATIC_ASSERT_NOT_FLOAT(T) |
Typedefs | |
using | sycl::_V1::detail::memory_order = sycl::memory_order |
Functions | |
std::memory_order | sycl::_V1::detail::getStdMemoryOrder (__spv::MemorySemanticsMask::Flag) |
template<typename T > | |
void | __spirv_AtomicStore (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicLoad (const std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS) |
template<typename T > | |
T | __spirv_AtomicExchange (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicIAdd (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicISub (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicAnd (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicOr (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicXor (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicMin (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T > | |
T | __spirv_AtomicMax (std::atomic< T > *Ptr, __spv::Scope::Flag, __spv::MemorySemanticsMask::Flag MS, T V) |
template<typename T , access::address_space addressSpace = access::address_space::global_space> | |
class | sycl::_V1::__SYCL2020_DEPRECATED ("sycl::atomic is deprecated since SYCL 2020") atomic |
template<typename T , access::address_space addressSpace> | |
void | sycl::_V1::atomic_store (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_load (atomic< T, addressSpace > Object, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_exchange (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
bool | sycl::_V1::atomic_compare_exchange_strong (atomic< T, addressSpace > Object, T &Expected, T Desired, memory_order SuccessOrder=memory_order::relaxed, memory_order FailOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_add (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_sub (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_and (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_or (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_xor (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_min (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
template<typename T , access::address_space addressSpace> | |
T | sycl::_V1::atomic_fetch_max (atomic< T, addressSpace > Object, T Operand, memory_order MemoryOrder=memory_order::relaxed) |
#define __SYCL_STATIC_ASSERT_NOT_FLOAT | ( | T | ) |
Definition at line 24 of file atomic.hpp.
T __spirv_AtomicAnd | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 122 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicExchange | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 104 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicIAdd | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 110 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicISub | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 116 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicLoad | ( | const std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS | ||
) |
Definition at line 98 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicMax | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 153 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicMin | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 140 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicOr | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 128 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
void __spirv_AtomicStore | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 92 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().
T __spirv_AtomicXor | ( | std::atomic< T > * | Ptr, |
__spv::Scope::Flag | , | ||
__spv::MemorySemanticsMask::Flag | MS, | ||
T | V | ||
) |
Definition at line 134 of file atomic.hpp.
References sycl::_V1::detail::getStdMemoryOrder().
Referenced by sycl::_V1::__SYCL2020_DEPRECATED().