Skip to content

Commit e4d2873

Browse files
authored
[ESIMD][NFC] Use non experimental implementation for lsc_atomic_update API (#12452)
1 parent 2d2e418 commit e4d2873

File tree

1 file changed

+2
-28
lines changed
  • sycl/include/sycl/ext/intel/experimental/esimd

1 file changed

+2
-28
lines changed

sycl/include/sycl/ext/intel/experimental/esimd/memory.hpp

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2800,34 +2800,8 @@ __ESIMD_API std::enable_if_t<__ESIMD_DNS::is_rw_device_accessor_v<AccessorTy>,
28002800
lsc_atomic_update(AccessorTy acc, __ESIMD_NS::simd<Toffset, N> offsets,
28012801
__ESIMD_NS::simd<T, N> src0, __ESIMD_NS::simd<T, N> src1,
28022802
__ESIMD_NS::simd_mask<N> pred) {
2803-
#ifdef __ESIMD_FORCE_STATELESS_MEM
2804-
return lsc_atomic_update<Op, T, N, DS, L1H, L2H>(
2805-
__ESIMD_DNS::accessorToPointer<T>(acc), offsets, src0, src1, pred);
2806-
#else
2807-
static_assert(std::is_integral_v<Toffset> && sizeof(Toffset) == 4,
2808-
"Unsupported offset type");
2809-
detail::check_lsc_vector_size<1>();
2810-
detail::check_lsc_data_size<T, DS>();
2811-
__ESIMD_DNS::check_atomic<Op, T, N, 2>();
2812-
detail::check_lsc_cache_hint<detail::lsc_action::atomic, L1H, L2H>();
2813-
constexpr uint16_t _AddressScale = 1;
2814-
constexpr int _ImmOffset = 0;
2815-
constexpr lsc_data_size _DS =
2816-
detail::expand_data_size(detail::finalize_data_size<T, DS>());
2817-
constexpr detail::lsc_vector_size _VS = detail::to_lsc_vector_size<1>();
2818-
constexpr detail::lsc_data_order _Transposed =
2819-
detail::lsc_data_order::nontranspose;
2820-
using MsgT = typename detail::lsc_expand_type<T>::type;
2821-
constexpr int IOp = detail::lsc_to_internal_atomic_op<T, Op>();
2822-
__ESIMD_NS::simd<MsgT, N> Msg_data0 = detail::lsc_format_input<MsgT>(src0);
2823-
__ESIMD_NS::simd<MsgT, N> Msg_data1 = detail::lsc_format_input<MsgT>(src1);
2824-
auto si = __ESIMD_NS::get_surface_index(acc);
2825-
__ESIMD_NS::simd<MsgT, N> Tmp =
2826-
__esimd_lsc_xatomic_bti_2<MsgT, IOp, L1H, L2H, _AddressScale, _ImmOffset,
2827-
_DS, _VS, _Transposed, N>(
2828-
pred.data(), offsets.data(), Msg_data0.data(), Msg_data1.data(), si);
2829-
return detail::lsc_format_ret<T>(Tmp);
2830-
#endif
2803+
return __ESIMD_DNS::atomic_update_impl<Op, T, N, DS, L1H, L2H>(
2804+
acc, offsets, src0, src1, pred);
28312805
}
28322806

28332807
/// Variant of \c lsc_atomic_update that uses \c local_accessor as a parameter.

0 commit comments

Comments
 (0)