Skip to content

Commit 2570610

Browse files
committed
Fix slm_store function
This commit also replaces sycl::detail::enable_if_t with std::enable_if_t Signed-off-by: Vyacheslav N Klochkov <vyacheslav.n.klochkov@intel.com>
1 parent b672a97 commit 2570610

File tree

1 file changed

+21
-25
lines changed
  • sycl/include/sycl/ext/intel/experimental/esimd

1 file changed

+21
-25
lines changed

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

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -653,38 +653,34 @@ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION void slm_init(uint32_t size);
653653
///
654654
/// Only allow simd-16 and simd-32.
655655
template <typename T, int n>
656-
ESIMD_INLINE ESIMD_NODEBUG
657-
typename sycl::detail::enable_if_t<(n == 16 || n == 32), simd<T, n>>
658-
slm_gather(simd<uint32_t, n> offsets, simd<uint16_t, n> pred = 1) {
656+
ESIMD_INLINE ESIMD_NODEBUG std::enable_if_t<(n == 16 || n == 32), simd<T, n>>
657+
slm_gather(simd<uint32_t, n> offsets, simd<uint16_t, n> pred = 1) {
659658
return __esimd_slm_read<T, n>(offsets.data(), pred.data());
660659
}
661660

662661
/// SLM gather (deprecated version).
663662
template <typename T, int n>
664663
__SYCL_DEPRECATED("use slm_gather.")
665-
ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
666-
(n == 16 || n == 32), simd<T, n>> slm_load(simd<uint32_t, n> offsets,
667-
simd<uint16_t, n> pred = 1) {
664+
ESIMD_INLINE
665+
ESIMD_NODEBUG std::enable_if_t<(n == 16 || n == 32), simd<T, n>> slm_load(
666+
simd<uint32_t, n> offsets, simd<uint16_t, n> pred = 1) {
668667
return slm_gather<T, n>(offsets, pred);
669668
}
670669

671670
/// SLM scatter.
672671
template <typename T, int n>
673-
ESIMD_INLINE ESIMD_NODEBUG
674-
typename sycl::detail::enable_if_t<(n == 16 || n == 32), void>
675-
slm_scatter(simd<T, n> vals, simd<uint32_t, n> offsets,
676-
simd<uint16_t, n> pred = 1) {
672+
ESIMD_INLINE ESIMD_NODEBUG std::enable_if_t<(n == 16 || n == 32)>
673+
slm_scatter(simd<T, n> vals, simd<uint32_t, n> offsets,
674+
simd<uint16_t, n> pred = 1) {
677675
__esimd_slm_write<T, n>(offsets.data(), vals.data(), pred.data());
678676
}
679677

680678
/// SLM scatter (deprecated version).
681679
template <typename T, int n>
682680
__SYCL_DEPRECATED("use slm_scatter.")
683-
ESIMD_INLINE ESIMD_NODEBUG
684-
typename sycl::detail::enable_if_t<(n == 16 || n == 32), void> slm_store(
685-
simd<T, n> vals, simd<uint32_t, n> offsets,
686-
simd<uint16_t, n> pred = 1) {
687-
slm_scatter<T, n>(offsets, vals, pred);
681+
ESIMD_INLINE ESIMD_NODEBUG std::enable_if_t<(n == 16 || n == 32)> slm_store(
682+
simd<T, n> vals, simd<uint32_t, n> offsets, simd<uint16_t, n> pred = 1) {
683+
slm_scatter<T, n>(vals, offsets, pred);
688684
}
689685

690686
/// Gathering read from the SLM given specified \p offsets.
@@ -697,10 +693,10 @@ ESIMD_INLINE ESIMD_NODEBUG
697693
/// @param pred predication control used for masking lanes.
698694
/// \ingroup sycl_esimd
699695
template <typename T, int N, rgba_channel_mask Mask>
700-
ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
701-
(N == 8 || N == 16 || N == 32) && (sizeof(T) == 4),
702-
simd<T, N * get_num_channels_enabled(Mask)>>
703-
slm_gather_rgba(simd<uint32_t, N> offsets, simd<uint16_t, N> pred = 1) {
696+
ESIMD_INLINE ESIMD_NODEBUG
697+
std::enable_if_t<(N == 8 || N == 16 || N == 32) && (sizeof(T) == 4),
698+
simd<T, N * get_num_channels_enabled(Mask)>>
699+
slm_gather_rgba(simd<uint32_t, N> offsets, simd<uint16_t, N> pred = 1) {
704700
return __esimd_slm_read4<T, N, Mask>(offsets.data(), pred.data());
705701
}
706702

@@ -709,7 +705,7 @@ slm_gather_rgba(simd<uint32_t, N> offsets, simd<uint16_t, N> pred = 1) {
709705
/// Only allow simd-8, simd-16 and simd-32.
710706
template <typename T, int n, rgba_channel_mask Mask>
711707
__SYCL_DEPRECATED("use slm_gather_rgba.")
712-
ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
708+
ESIMD_INLINE ESIMD_NODEBUG std::enable_if_t<
713709
(n == 8 || n == 16 || n == 32) && (sizeof(T) == 4),
714710
simd<T, n * get_num_channels_enabled(Mask)>> slm_load4(simd<uint32_t, n>
715711
offsets,
@@ -729,17 +725,17 @@ ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
729725
/// @param pred predication control used for masking lanes.
730726
/// \ingroup sycl_esimd
731727
template <typename T, int N, rgba_channel_mask Mask>
732-
ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
733-
(N == 8 || N == 16 || N == 32) && (sizeof(T) == 4), void>
734-
slm_scatter_rgba(simd<T, N * get_num_channels_enabled(Mask)> vals,
735-
simd<uint32_t, N> offsets, simd<uint16_t, N> pred = 1) {
728+
ESIMD_INLINE ESIMD_NODEBUG
729+
std::enable_if_t<(N == 8 || N == 16 || N == 32) && (sizeof(T) == 4)>
730+
slm_scatter_rgba(simd<T, N * get_num_channels_enabled(Mask)> vals,
731+
simd<uint32_t, N> offsets, simd<uint16_t, N> pred = 1) {
736732
__esimd_slm_write4<T, N, Mask>(offsets.data(), vals.data(), pred.data());
737733
}
738734

739735
/// SLM scatter4.
740736
template <typename T, int n, rgba_channel_mask Mask>
741737
__SYCL_DEPRECATED("use slm_scatter_rgba.")
742-
ESIMD_INLINE ESIMD_NODEBUG typename sycl::detail::enable_if_t<
738+
ESIMD_INLINE ESIMD_NODEBUG std::enable_if_t<
743739
(n == 8 || n == 16 || n == 32) && (sizeof(T) == 4),
744740
void> slm_store4(simd<T, n * get_num_channels_enabled(Mask)> vals,
745741
simd<uint32_t, n> offsets, simd<uint16_t, n> pred = 1) {

0 commit comments

Comments
 (0)