@@ -2800,34 +2800,8 @@ __ESIMD_API std::enable_if_t<__ESIMD_DNS::is_rw_device_accessor_v<AccessorTy>,
2800
2800
lsc_atomic_update (AccessorTy acc, __ESIMD_NS::simd<Toffset, N> offsets,
2801
2801
__ESIMD_NS::simd<T, N> src0, __ESIMD_NS::simd<T, N> src1,
2802
2802
__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);
2831
2805
}
2832
2806
2833
2807
// / Variant of \c lsc_atomic_update that uses \c local_accessor as a parameter.
0 commit comments