34 #if __cplusplus >= 201703L
35 inline constexpr
auto memory_scope_work_item = memory_scope::work_item;
36 inline constexpr
auto memory_scope_sub_group = memory_scope::sub_group;
37 inline constexpr
auto memory_scope_work_group = memory_scope::work_group;
39 inline constexpr
auto memory_scope_system = memory_scope::system;
41 inline constexpr
auto memory_order_relaxed = memory_order::relaxed;
42 inline constexpr
auto memory_order_acquire = memory_order::acquire;
43 inline constexpr
auto memory_order_release = memory_order::release;
44 inline constexpr
auto memory_order_acq_rel = memory_order::acq_rel;
45 inline constexpr
auto memory_order_seq_cst = memory_order::seq_cst;
50 inline std::vector<memory_order>
52 std::vector<memory_order> result;
54 result.push_back(memory_order::relaxed);
56 result.push_back(memory_order::acquire);
58 result.push_back(memory_order::release);
60 result.push_back(memory_order::acq_rel);
62 result.push_back(memory_order::seq_cst);
66 inline std::vector<memory_scope>
68 std::vector<memory_scope> result;
70 result.push_back(memory_scope::work_item);
72 result.push_back(memory_scope::sub_group);
74 result.push_back(memory_scope::work_group);
78 result.push_back(memory_scope::system);
82 #ifndef __SYCL_DEVICE_ONLY__
85 case memory_order::relaxed:
86 return std::memory_order_relaxed;
87 case memory_order::__consume_unsupported:
88 return std::memory_order_consume;
89 case memory_order::acquire:
90 return std::memory_order_acquire;
91 case memory_order::release:
92 return std::memory_order_release;
93 case memory_order::acq_rel:
94 return std::memory_order_acq_rel;
95 case memory_order::seq_cst:
96 return std::memory_order_seq_cst;
99 #endif // __SYCL_DEVICE_ONLY__