simdpp::permute4

From libsimdpp-docs
template<unsigned s0, unsigned s1, unsigned s2, unsigned s3,

         unsigned N, class E>

Vec<N,_DETAIL_> permute4( const Vec<N,E>& a );

Permutes groups of four elements within the source vector. The implementation behaves as if the following set of overloads is provided:

Ret Vec
int16 int16
uint16 uint16
uint16 mask_int16
int32 int32
uint32 uint32
uint32 mask_int32
int64 int64
uint64 uint64
uint64 mask_int64
float32 float32
float32 mask_float32
float64 float64
float64 mask_float64

The selectors s0, s1, s2 and s3 must be in range [0..3].

The return type is a vector expression.

Parameters[edit]

a - source vector
s0, s1, s2, s3 - the permutation indices

Return value[edit]

A vector expression evaluating to the permuted vector.

Equivalent operation[edit]

r0 = a[s0]
...
r3 = a[s3]
r4 = a[s0+4]
...
r7 = a[s3+4]
...

See also[edit]