20 #include <immintrin.h> 28 constexpr ETL_STRONG_INLINE(
size_t) prev_multiple(
size_t N,
size_t size) {
29 return N & (size_t(-size));
38 template <vector_mode_t V,
typename T,
typename VT>
67 #if defined __GNUC__ && __GNUC__>=6 68 #pragma GCC diagnostic ignored "-Wignored-attributes" 75 #include "etl/no_vectorization.hpp" 77 #if defined __GNUC__ && __GNUC__>=6 78 #pragma GCC diagnostic pop 87 template <vector_mode_t V>
101 template <vector_mode_t V>
117 template <
typename T>
118 using type = avx512_intrinsic_traits<T>;
126 using type = avx512_vec;
142 template <
typename T>
143 using type = avx_intrinsic_traits<T>;
151 using type = avx_vec;
167 template <
typename T>
168 using type = sse_intrinsic_traits<T>;
176 using type = sse_vec;
181 #ifdef ETL_VECTORIZE_EXPR 193 template <
typename T>
196 #elif defined(__AVX__) 206 template <
typename T>
209 #elif defined(__SSE3__) 219 template <
typename T>
232 template <
typename T>
235 #endif //defined(__SSE__) 237 #else //ETL_VECTORIZE_EXPR 247 template <
typename T>
250 #endif //ETL_VECTORIZE_EXPR 255 template <
typename T>
Traits to get the intrinsic traits for a vector mode.
Definition: vectorization.hpp:88
Traits to get the vector implementation for a vector mode.
Definition: vectorization.hpp:102
intrinsic_type value
The vector of value.
Definition: vectorization.hpp:45
Contains AVX-512 vectorized functions for the vectorized assignment of expressions.
vector_mode_t
Vectorization mode.
Definition: config.hpp:184
static constexpr vector_mode_t vector_mode
The vector implementation mode.
Definition: vectorization.hpp:43
Define traits to get vectorization information for types when no vector mode is available.
Definition: no_vectorization.hpp:16
SSE3 is the max vectorization available.
VT intrinsic_type
The used intrinsic type.
Definition: vectorization.hpp:41
Contains SSE vectorized functions for the vectorized assignment of expressions.
Root namespace for the ETL library.
Definition: adapter.hpp:15
typename default_intrinsic_traits< T >::intrinsic_type default_intrinsic_type
Helper to get the intrinsic corresponding type of a vectorizable type.
Definition: vectorization.hpp:256
T intrinsic_type
The intrinsic type.
Definition: no_vectorization.hpp:21
ETL_STRONG_INLINE(value_type) operator[](size_t i) const noexcept
Extract an element of the vector value.
Definition: vectorization.hpp:60
simd_pack(intrinsic_type value)
Construct a new simd_pack around the given vector.
Definition: vectorization.hpp:51
AVX is the max vectorization available.
const_return_type operator[](size_t j) const
Returns the element at the given index.
Definition: dyn_matrix_view.hpp:71
Contains AVX vectorized functions for the vectorized assignment of expressions.
T value_type
The real value type.
Definition: vectorization.hpp:40
AVX-512F is the max vectorization available.
SIMD pack of some type, using a vector implementation type.
Definition: vectorization.hpp:39
Vectorization support when no vectorization is enabled.
Definition: no_vectorization.hpp:29