T-SIMD v31.1.0
A C++ template SIMD library
|
Swizzle/deinterleave functions on Vec's.
Functions | |
template<size_t N, typename T , size_t SIMD_WIDTH> | |
static void | simd::swizzle (Vec< T, SIMD_WIDTH > v[N]) |
Swizzle/de-interleave/convert from AoS to SoA multiple Vec's in-place. | |
template<size_t N, typename T , size_t SIMD_WIDTH> | |
static void | simd::swizzle2 (Vec< T, SIMD_WIDTH > v[2 *N]) |
Swizzle/de-interleave/convert from AoS to SoA multiple Vec's in-place. | |
template<size_t N, typename T , size_t SIMD_WIDTH> | |
static void | simd::unswizzle (Vec< T, SIMD_WIDTH > v[2 *N]) |
Unswizzle/interleave/convert from SoA to AoS multiple Vec's in-place. | |
|
inlinestatic |
Swizzle/de-interleave/convert from AoS to SoA multiple Vec's in-place.
This function swizzles/de-interleaves/converts from AoS (Array of Structs) to SoA (Struct of Arrays) multiple Vec's in-place.
Example for a swizzle distance of 3 with 3 Vec's of 8 elements each:
input stream (structures indicated by curly brackets):
input vectors:
output vectors:
N | swizzle distance, must be between 1 and 5 |
[in,out] | v | array of Vec's to swizzle |
|
inlinestatic |
Swizzle/de-interleave/convert from AoS to SoA multiple Vec's in-place.
This function swizzles/de-interleaves/converts from AoS (Array of Structs) to SoA (Struct of Arrays) multiple Vec's in-place.
In contrast to swizzle(), this function takes double the number of Vec's as input and might be faster.
Example for a swizzle distance of 3 with 6 Vec's of 8 elements each:
input stream (structures indicated by curly brackets):
input vectors:
output vectors:
N | swizzle distance, must be between 1 and 5 |
[in,out] | v | array of Vec's to swizzle |
|
inlinestatic |
Unswizzle/interleave/convert from SoA to AoS multiple Vec's in-place.
This function unswizzles/interleaves/converts from SoA (Struct of Arrays) to AoS (Array of Structs) multiple Vec's in-place.
Example for an unswizzle distance of 3 with 6 Vec's of 8 elements each:
input vectors:
output vectors:
N | unswizzle distance |
[in,out] | v | array of Vec's to unswizzle |