Skip to content

Commit 342a179

Browse files
author
Artem Gindinson
committed
Revert changes in atomic.hpp - the new implementation can't be used there yet
Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
1 parent 0b178bc commit 342a179

File tree

1 file changed

+3
-27
lines changed

1 file changed

+3
-27
lines changed

sycl/include/CL/sycl/atomic.hpp

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,6 @@ extern T __spirv_AtomicISub(std::atomic<T> *Ptr, __spv::Scope::Flag,
121121
return Ptr->fetch_sub(V, ::cl::sycl::detail::getStdMemoryOrder(MS));
122122
}
123123

124-
template <typename T>
125-
extern T __spirv_AtomicFAdd(std::atomic<T> *Ptr, __spv::Scope::Flag,
126-
__spv::MemorySemanticsMask::Flag MS, T V) {
127-
return Ptr->fetch_add(V, ::cl::sycl::detail::getStdMemoryOrder(MS));
128-
}
129-
130124
template <typename T>
131125
extern T __spirv_AtomicAnd(std::atomic<T> *Ptr, __spv::Scope::Flag,
132126
__spv::MemorySemanticsMask::Flag MS, T V) {
@@ -280,36 +274,18 @@ class atomic {
280274
#endif
281275
}
282276

283-
template <typename T2 = T>
284-
detail::enable_if_t<std::is_integral<T2>::value, T>
285-
fetch_add(T Operand, memory_order Order = memory_order::relaxed) {
277+
T fetch_add(T Operand, memory_order Order = memory_order::relaxed) {
278+
__SYCL_STATIC_ASSERT_NOT_FLOAT(T);
286279
return __spirv_AtomicIAdd(
287280
Ptr, SpirvScope, detail::getSPIRVMemorySemanticsMask(Order), Operand);
288281
}
289282

290-
template <typename T2 = T>
291-
detail::enable_if_t<std::is_floating_point<T2>::value, T>
292-
fetch_add(T Operand, memory_order Order = memory_order::relaxed) {
293-
return __spirv_AtomicFAdd(
294-
Ptr, SpirvScope, detail::getSPIRVMemorySemanticsMask(Order), Operand);
295-
}
296-
297-
template <typename T2 = T>
298-
detail::enable_if_t<std::is_integral<T2>::value, T>
299-
fetch_sub(T Operand, memory_order Order = memory_order::relaxed) {
283+
T fetch_sub(T Operand, memory_order Order = memory_order::relaxed) {
300284
__SYCL_STATIC_ASSERT_NOT_FLOAT(T);
301285
return __spirv_AtomicISub(
302286
Ptr, SpirvScope, detail::getSPIRVMemorySemanticsMask(Order), Operand);
303287
}
304288

305-
template <typename T2 = T>
306-
detail::enable_if_t<std::is_floating_point<T2>::value, T>
307-
fetch_sub(T Operand, memory_order Order = memory_order::relaxed) {
308-
// Negate the float add instruction operand.
309-
return __spirv_AtomicFAdd(
310-
Ptr, SpirvScope, detail::getSPIRVMemorySemanticsMask(Order), -Operand);
311-
}
312-
313289
T fetch_and(T Operand, memory_order Order = memory_order::relaxed) {
314290
__SYCL_STATIC_ASSERT_NOT_FLOAT(T);
315291
return __spirv_AtomicAnd(

0 commit comments

Comments
 (0)