_mm512_loadunpackhi_epi32
Classification
KNC, Load, CPUID Test: KNCNI
Header File
immintrin.h
Instruction
VLOADUNPACKHD zmm, m512
Synopsis
 _mm512_loadunpackhi_epi32(__m512i src, void const* mt);
Description
Loads the high-64-byte-aligned portion of the byte/word/doubleword stream starting at element-aligned address mt-64 and expands them into packed 32-bit integers in "dst". The initial values of "dst" are copied from "src". Only those converted doublewords that occur at or after the first 64-byte-aligned address following (mt-64) are loaded. Elements in the resulting vector that do not map to those doublewords are taken from "src".
Operation
dst[511:0] := src[511:0]
loadOffset := 0
foundNext64BytesBoundary := false
addr := mt-64
FOR j := 0 to 15
	IF foundNext64BytesBoundary == false
		IF (addr + (loadOffset + 1)*4 % 64) == 0
			foundNext64BytesBoundary := true
		FI
	ELSE
		i := j*32
		tmp := MEM[addr + loadOffset*4]
		dst[i+31:i] := tmp[i+31:i]
	FI
	loadOffset := loadOffset + 1
ENDFOR
dst[MAX:512] := 0