Commit 9fdf7f1
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 <[email protected]>1 parent 4ce19d6 commit 9fdf7f1
File tree
6 files changed
+620
-466
lines changed- sycl/include/sycl/ext/intel
- esimd/detail
- experimental/esimd
6 files changed
+620
-466
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
| |||
0 commit comments