Skip to content

Commit 9fdf7f1

Browse files
authored
[ESIMD] Refactor simd vector element type traits infra. (#6655)
* [ESIMD] Refactor simd vector element type traits infra. These changes make the type traits infrastructure significantly better structured, more readable, more suitable for addition of a new wrapper type. Particularly: - no cyclic dependence between elem_type_traits.hpp and types.hpp any more, which protects against hard to solve template instantiation errors - move traits implementation for sycl::half into a separate header, now elem_type_traits.hpp don't depend on any specific wrapper type, it only provides generic infra - improve "traits" model - now __esimd* "intrinsics" which implement conversions and operations are replaced with *traits structures templated on the wrapper type, operation and number of elements. This allows partial specializations and makes it easy to identify what needs to be done to implement new wrapper type (implement *traits specializations) - create a new types_elementary.hpp as a container for basic definitions not depending on the rest of ESIMD - remove dependence of is_wrapper_elem_type_v on specific types. Signed-off-by: Konstantin S Bobrovsky <konstantin.s.bobrovsky@intel.com>
1 parent 4ce19d6 commit 9fdf7f1

File tree

6 files changed

+620
-466
lines changed

6 files changed

+620
-466
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181

8282
#include <sycl/ext/intel/esimd/alt_ui.hpp>
8383
#include <sycl/ext/intel/esimd/common.hpp>
84+
#include <sycl/ext/intel/esimd/detail/half_type_traits.hpp>
8485
#include <sycl/ext/intel/esimd/simd.hpp>
8586
#include <sycl/ext/intel/esimd/simd_view.hpp>
8687
#include <sycl/ext/intel/experimental/esimd/kernel_properties.hpp>

0 commit comments

Comments
 (0)