Create an interleave shuffle mask.
Declared in <llvm/Analysis/VectorUtils.h>
llvm::SmallVector<int, 16>
createInterleaveMask(
unsigned int VF,
unsigned int NumVecs);
This function creates a shuffle mask for interleaving NumVecs vectors of vectorization factor VF into a single wide vector. The mask is of the form:
<0, VF, VF * 2, ..., VF * (NumVecs - 1), 1, VF + 1, VF * 2 + 1, ...>
For example, the mask for VF = 4 and NumVecs = 2 is:
<0, 4, 1, 5, 2, 6, 3, 7>.
An interleave shuffle mask for NumVecs vectors of factor VF.
| Name | Description |
|---|---|
| VF | Vectorization factor of each input vector. |
| NumVecs | Number of vectors to interleave. |