XSIMD Functions¶
Functions that overload or simulate XSIMD functionality
|
Function load_aligned |
|
Function load_unaligned |
|
Function store_aligned |
|
Function store_unaligned |
|
Function get_alignment_offset |
Functions¶
-
template<typename
T, typenamebatch_type, typenameU= details::remove_cvref_t<batch_type>, typename = std::enable_if_t<details::is_batch<U>::value && !std::is_convertible<U *, simd_base<U> *>::value, T>>
voidxsimd::load_aligned(T *src, batch_type &b)¶ Load aligned data Loads the memory array pointed to by
srcinto a batch and returns it.srcis required to be aligned.- Note
Uses SFINAE to remove this overload from resolution when using the real XSIMD
- Parameters
src: the pointer to the memory array to load.b: the destination batch.
- Template Parameters
T: Type of memory to read from
-
template<typename
T, typenamebatch_type, typenameU= details::remove_cvref_t<batch_type>, typename = std::enable_if_t<details::is_batch<U>::value && !std::is_convertible<U *, simd_base<U> *>::value, T>>
voidxsimd::load_unaligned(T *src, batch_type &b)¶ Load unaligned data Loads the memory array pointed to by
srcinto a batch and returns it.srcis not required to be aligned.- Note
Uses SFINAE to remove this overload from resolution when using the real XSIMD
- Parameters
src: the pointer to the memory array to load.b: the destination batch.
- Template Parameters
T: Type of memory to read from
-
template<typename
T, typenameexpr_type, typenameU= details::remove_cvref_t<expr_type>, typename = std::enable_if_t<(details::is_batch<U>::value && !std::is_convertible<U *, simd_base<U> *>::value) || std::is_convertible<U *, expr_base<U> *>::value, T>>
voidxsimd::store_aligned(T *dest, expr_type &&expr)¶ Store aligned data Stores the expression
exprinto the memory array pointed to bydest.destis required to be aligned.- Note
Uses SFINAE to remove this overload from resolution when using the real XSIMD
- Parameters
dest: the pointer to the memory array.expr: the expression to store
- Template Parameters
T: Type of memory to read from
-
template<typename
T, typenameexpr_type, typenameU= details::remove_cvref_t<expr_type>, typename = std::enable_if_t<(details::is_batch<U>::value && !std::is_convertible<U *, simd_base<U> *>::value) || std::is_convertible<U *, expr_base<U> *>::value, T>>
voidxsimd::store_unaligned(T *dest, expr_type &&expr)¶ Store unaligned data Stores the expression
exprinto the memory array pointed to bydest.destis not required to be aligned.- Note
Uses SFINAE to remove this overload from resolution when using the real XSIMD
- Parameters
dest: the pointer to the memory array.expr: the expression to store
- Template Parameters
T: Type of memory to read from