diff --git a/sycl/include/sycl/ext/intel/experimental/esimd/memory.hpp b/sycl/include/sycl/ext/intel/experimental/esimd/memory.hpp index b4a4924512f34..fad2b2a802a09 100644 --- a/sycl/include/sycl/ext/intel/experimental/esimd/memory.hpp +++ b/sycl/include/sycl/ext/intel/experimental/esimd/memory.hpp @@ -2800,34 +2800,8 @@ __ESIMD_API std::enable_if_t<__ESIMD_DNS::is_rw_device_accessor_v, lsc_atomic_update(AccessorTy acc, __ESIMD_NS::simd offsets, __ESIMD_NS::simd src0, __ESIMD_NS::simd src1, __ESIMD_NS::simd_mask pred) { -#ifdef __ESIMD_FORCE_STATELESS_MEM - return lsc_atomic_update( - __ESIMD_DNS::accessorToPointer(acc), offsets, src0, src1, pred); -#else - static_assert(std::is_integral_v && sizeof(Toffset) == 4, - "Unsupported offset type"); - detail::check_lsc_vector_size<1>(); - detail::check_lsc_data_size(); - __ESIMD_DNS::check_atomic(); - detail::check_lsc_cache_hint(); - constexpr uint16_t _AddressScale = 1; - constexpr int _ImmOffset = 0; - constexpr lsc_data_size _DS = - detail::expand_data_size(detail::finalize_data_size()); - constexpr detail::lsc_vector_size _VS = detail::to_lsc_vector_size<1>(); - constexpr detail::lsc_data_order _Transposed = - detail::lsc_data_order::nontranspose; - using MsgT = typename detail::lsc_expand_type::type; - constexpr int IOp = detail::lsc_to_internal_atomic_op(); - __ESIMD_NS::simd Msg_data0 = detail::lsc_format_input(src0); - __ESIMD_NS::simd Msg_data1 = detail::lsc_format_input(src1); - auto si = __ESIMD_NS::get_surface_index(acc); - __ESIMD_NS::simd Tmp = - __esimd_lsc_xatomic_bti_2( - pred.data(), offsets.data(), Msg_data0.data(), Msg_data1.data(), si); - return detail::lsc_format_ret(Tmp); -#endif + return __ESIMD_DNS::atomic_update_impl( + acc, offsets, src0, src1, pred); } /// Variant of \c lsc_atomic_update that uses \c local_accessor as a parameter.