@@ -72,49 +72,89 @@ constexpr __ESIMD_ENS::lsc_data_size get_data_size(gpu::xetla::data_size ds) {
7272// / @brief lookup table for memory kind.
7373// /
7474// /
75- constexpr sycl::ext::intel::esimd::memory_kind get_memory_kind (
76- gpu::xetla::memory_kind mk) {
75+ constexpr auto get_memory_kind (gpu::xetla::memory_kind mk) {
7776 switch (mk) {
77+ #if __INTEL_LLVM_COMPILER >= 20240100
7878 case gpu::xetla::memory_kind::untyped_global:
79- return sycl::ext::intel::esimd:: memory_kind::image ;
79+ return __ESIMD_NS:: memory_kind::global ;
8080 case gpu::xetla::memory_kind::typed_global:
81- return sycl::ext::intel::esimd:: memory_kind::global ;
81+ return __ESIMD_NS:: memory_kind::image ;
8282 case gpu::xetla::memory_kind::shared_local:
83- return sycl::ext::intel::esimd::memory_kind::local;
83+ return __ESIMD_NS::memory_kind::local;
84+ #else // legacy experimental api
85+ case gpu::xetla::memory_kind::untyped_global:
86+ return __ESIMD_ENS::lsc_memory_kind::untyped_global;
87+ case gpu::xetla::memory_kind::typed_global:
88+ return __ESIMD_ENS::lsc_memory_kind::typed_global;
89+ case gpu::xetla::memory_kind::shared_local:
90+ return __ESIMD_ENS::lsc_memory_kind::shared_local;
91+ #endif
8492 }
8593}
8694
8795// / @brief lookup table for fence op.
8896// /
8997// /
90- constexpr sycl::ext::intel::esimd::fence_flush_op get_fence_op (gpu::xetla::fence_op fo) {
98+ constexpr auto get_fence_op (gpu::xetla::fence_op fo) {
9199 switch (fo) {
92- case gpu::xetla::fence_op::none: return sycl::ext::intel::esimd::fence_flush_op::none;
100+ #if __INTEL_LLVM_COMPILER >= 20240100
101+ case gpu::xetla::fence_op::none:
102+ return __ESIMD_NS::fence_flush_op::none;
103+ case gpu::xetla::fence_op::evict:
104+ return __ESIMD_NS::fence_flush_op::evict;
105+ case gpu::xetla::fence_op::invalidate:
106+ return __ESIMD_NS::fence_flush_op::invalidate;
107+ case gpu::xetla::fence_op::clean:
108+ return __ESIMD_NS::fence_flush_op::clean;
109+ #else // legacy experimental api
110+ case gpu::xetla::fence_op::none: //
111+ return __ESIMD_ENS::lsc_fence_op::none;
93112 case gpu::xetla::fence_op::evict:
94- return sycl::ext::intel::esimd::fence_flush_op ::evict;
113+ return __ESIMD_ENS::lsc_fence_op ::evict;
95114 case gpu::xetla::fence_op::invalidate:
96- return sycl::ext::intel::esimd::fence_flush_op ::invalidate;
115+ return __ESIMD_ENS::lsc_fence_op ::invalidate;
97116 case gpu::xetla::fence_op::clean:
98- return sycl::ext::intel::esimd::fence_flush_op::clean;
117+ return __ESIMD_ENS::lsc_fence_op::clean;
118+ #endif
99119 }
100120}
101121
102122// / @brief lookup table for fence scope.
103123// /
104124// /
105- constexpr sycl::ext::intel::esimd::fence_scope get_fence_scope (gpu::xetla::fence_scope fs) {
125+ constexpr auto get_fence_scope (gpu::xetla::fence_scope fs) {
106126 switch (fs) {
127+ #if __INTEL_LLVM_COMPILER >= 20240100
107128 case gpu::xetla::fence_scope::group:
108- return sycl::ext::intel::esimd ::fence_scope::group;
129+ return __ESIMD_NS ::fence_scope::group;
109130 case gpu::xetla::fence_scope::local:
110- return sycl::ext::intel::esimd::fence_scope::local;
111- case gpu::xetla::fence_scope::tile: return sycl::ext::intel::esimd::fence_scope::tile;
112- case gpu::xetla::fence_scope::gpu: return sycl::ext::intel::esimd::fence_scope::gpu;
113- case gpu::xetla::fence_scope::gpus: return sycl::ext::intel::esimd::fence_scope::gpus;
131+ return __ESIMD_NS::fence_scope::local;
132+ case gpu::xetla::fence_scope::tile:
133+ return __ESIMD_NS::fence_scope::tile;
134+ case gpu::xetla::fence_scope::gpu: //
135+ return __ESIMD_NS::fence_scope::gpu;
136+ case gpu::xetla::fence_scope::gpus:
137+ return __ESIMD_NS::fence_scope::gpus;
114138 case gpu::xetla::fence_scope::system:
115- return sycl::ext::intel::esimd ::fence_scope::system;
139+ return __ESIMD_NS ::fence_scope::system;
116140 case gpu::xetla::fence_scope::sysacq:
117- return sycl::ext::intel::esimd::fence_scope::system_acquire;
141+ return __ESIMD_NS::fence_scope::system_acquire;
142+ #else // legacy experimental api
143+ case gpu::xetla::fence_scope::group:
144+ return __ESIMD_ENS::lsc_scope::group;
145+ case gpu::xetla::fence_scope::local:
146+ return __ESIMD_ENS::lsc_scope::local;
147+ case gpu::xetla::fence_scope::tile: //
148+ return __ESIMD_ENS::lsc_scope::tile;
149+ case gpu::xetla::fence_scope::gpu: //
150+ return __ESIMD_ENS::lsc_scope::gpu;
151+ case gpu::xetla::fence_scope::gpus: //
152+ return __ESIMD_ENS::lsc_scope::gpus;
153+ case gpu::xetla::fence_scope::system:
154+ return __ESIMD_ENS::lsc_scope::system;
155+ case gpu::xetla::fence_scope::sysacq:
156+ return __ESIMD_ENS::lsc_scope::sysacq;
157+ #endif
118158 }
119159}
120160
@@ -630,9 +670,15 @@ template <memory_kind Kind = memory_kind::untyped_global,
630670 fence_op FenceOp = fence_op::none,
631671 fence_scope Scope = fence_scope::group, int N = 16 >
632672__XETLA_API void xetla_fence () {
633- sycl::ext::intel::esimd::fence<gpu::xetla::detail::get_memory_kind (Kind),
673+ #if __INTEL_LLVM_COMPILER >= 20240100
674+ __ESIMD_NS::fence<gpu::xetla::detail::get_memory_kind (Kind),
634675 gpu::xetla::detail::get_fence_op (FenceOp),
635676 gpu::xetla::detail::get_fence_scope (Scope)>();
677+ #else
678+ __ESIMD_ENS::lsc_fence<gpu::xetla::detail::get_memory_kind (Kind),
679+ gpu::xetla::detail::get_fence_op (FenceOp),
680+ gpu::xetla::detail::get_fence_scope (Scope), N>(xetla_mask<N>(1 ));
681+ #endif
636682}
637683
638684// / @} xetla_core_memory
0 commit comments