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
src
into a batch and returns it.src
is 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
src
into a batch and returns it.src
is 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
expr
into the memory array pointed to bydest
.dest
is 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
expr
into the memory array pointed to bydest
.dest
is 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