Shuffling operations

From libsimdpp-docs

The following shuffle operations are provided.

Shuffling

blends two vectors according to a mask
(function template)
sets all elements to a specific element within vector
(function template)
permutes pairs of elements within vector
(function template)
permutes quadruples of elements within vector
(function template)
shuffles two vectors at two-element granularity
(function template)
shuffles two vectors at four-element granularity
(function template)
transposes 2x2 blocks within two vectors
(function template)
transposes 4x4 blocks within four vectors
(function template)

Combining and splitting

combines two vectors into a vector twice as wide
(function template)
splits a vector into two vectors half as wide
(function template)

Shuffling (128 bit granularity)

exctracts a vector from two concatenated vectors
(function template)
moves elements in the vector to the left
(function template)
moves elements in the vector to the right
(function template)
sets all elements in each group of elements to n-th element in that group
(function template)
interleaves higher halves of two vectors
(function template)
interleaves lower halves of two vectors
(function template)
de-interleaves odd(high) elements of two vectors
(function template)
de-interleaves even(lower) elements of two vectors
(function template)
creates a shuffle mask for shuffle_bytes16 or permute_bytes16
(function template)
selects elements from two vectors according to another vector
(function template)
selects or zeroes elements from two vectors according to another vector
(function template)
permutes elements in a vector according to another vector
(function template)
permutes or zeroes elements in a vector according to another vector
(function template)