Shuffling operations

From cppreference.com

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)