diff --git a/sycl/include/CL/sycl/INTEL/fpga_lsu.hpp b/sycl/include/CL/sycl/INTEL/fpga_lsu.hpp index ae210b15cf4c9..ab2c859603bf5 100644 --- a/sycl/include/CL/sycl/INTEL/fpga_lsu.hpp +++ b/sycl/include/CL/sycl/INTEL/fpga_lsu.hpp @@ -19,24 +19,27 @@ constexpr uint8_t CACHE = 0x2; constexpr uint8_t STATICALLY_COALESCE = 0x4; constexpr uint8_t PREFETCH = 0x8; -template struct burst_coalesce_impl { - static constexpr int32_t value = _N; - static constexpr int32_t default_value = 0; +struct burst_coalesce_impl_id; +template +struct burst_coalesce_impl : std::integral_constant { + using type_id = burst_coalesce_impl_id; }; -template struct cache { - static constexpr int32_t value = _N; - static constexpr int32_t default_value = 0; +struct cache_id; +template struct cache : std::integral_constant { + using type_id = cache_id; }; -template struct prefetch_impl { - static constexpr int32_t value = _N; - static constexpr int32_t default_value = 0; +struct prefetch_impl_id; +template +struct prefetch_impl : std::integral_constant { + using type_id = prefetch_impl_id; }; -template struct statically_coalesce_impl { - static constexpr int32_t value = _N; - static constexpr int32_t default_value = 1; +struct statically_coalesce_impl_id; +template +struct statically_coalesce_impl : std::integral_constant { + using type_id = statically_coalesce_impl_id; }; template using burst_coalesce = burst_coalesce_impl<_B>; @@ -77,21 +80,21 @@ template class lsu final { private: static constexpr int32_t _burst_coalesce_val = - _GetValue::value; + _GetValue, _mem_access_params...>::value; static constexpr uint8_t _burst_coalesce = _burst_coalesce_val == 1 ? BURST_COALESCE : 0; static constexpr int32_t _cache_val = - _GetValue::value; + _GetValue, _mem_access_params...>::value; static constexpr uint8_t _cache = (_cache_val > 0) ? CACHE : 0; static constexpr int32_t _statically_coalesce_val = - _GetValue::value; + _GetValue, _mem_access_params...>::value; static constexpr uint8_t _dont_statically_coalesce = _statically_coalesce_val == 0 ? STATICALLY_COALESCE : 0; static constexpr int32_t _prefetch_val = - _GetValue::value; + _GetValue, _mem_access_params...>::value; static constexpr uint8_t _prefetch = _prefetch_val ? PREFETCH : 0; static_assert(_cache_val >= 0, "cache size parameter must be non-negative"); diff --git a/sycl/include/CL/sycl/INTEL/fpga_utils.hpp b/sycl/include/CL/sycl/INTEL/fpga_utils.hpp index 1fc758f4b4f8b..a9033242e9790 100644 --- a/sycl/include/CL/sycl/INTEL/fpga_utils.hpp +++ b/sycl/include/CL/sycl/INTEL/fpga_utils.hpp @@ -16,18 +16,25 @@ __SYCL_INLINE_NAMESPACE(cl) { namespace sycl { namespace INTEL { -template