_mm512_swizzle_epi32
Classification
KNC, Swizzle, CPUID Test: KNCNI
Header File
Synopsis
_mm512_swizzle_epi32(__m512i v, _MM_SWIZZLE_ENUM s);
Description
Performs a swizzle transformation of each of the four groups of packed 4x 32-bit integer elements in "v" using swizzle parameter "s", storing the results in "dst".
Operation
CASE s OF
_MM_SWIZ_REG_NONE:
dst[511:0] := v[511:0]
_MM_SWIZ_REG_DCBA:
dst[511:0] := v[511:0]
_MM_SWIZ_REG_CDAB:
FOR j := 0 to 7
i := j*64
dst[i+31:i] := v[i+63:i+32]
dst[i+63:i+32] := v[i+31:i]
ENDFOR
_MM_SWIZ_REG_BADC:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+95:i+64]
dst[i+63:i+32] := v[i+127:i+96]
dst[i+95:i+64] := v[i+31:i]
dst[i+127:i+96] := v[i+63:i+32]
ENDFOR
_MM_SWIZ_REG_AAAA:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+31:i]
dst[i+63:i+32] := v[i+31:i]
dst[i+95:i+64] := v[i+31:i]
dst[i+127:i+96] := v[i+31:i]
ENDFOR
_MM_SWIZ_REG_BBBB:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+63:i+32]
dst[i+63:i+32] := v[i+63:i+32]
dst[i+95:i+64] := v[i+63:i+32]
dst[i+127:i+96] := v[i+63:i+32]
ENDFOR
_MM_SWIZ_REG_CCCC:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+95:i+64]
dst[i+63:i+32] := v[i+95:i+64]
dst[i+95:i+64] := v[i+95:i+64]
dst[i+127:i+96] := v[i+95:i+64]
ENDFOR
_MM_SWIZ_REG_DDDD:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+127:i+96]
dst[i+63:i+32] := v[i+127:i+96]
dst[i+95:i+64] := v[i+127:i+96]
dst[i+127:i+96] := v[i+127:i+96]
ENDFOR
_MM_SWIZ_REG_DACB:
FOR j := 0 to 3
i := j*128
dst[i+31:i] := v[i+63:i+32]
dst[i+63:i+32] := v[i+95:i+64]
dst[i+95:i+64] := v[i+31:i]
dst[i+127:i+96] := v[i+127:i+96]
ENDFOR
ESAC
dst[MAX:512] := 0