_mm512_mask_loadunpacklo_ps
Classification
KNC, Load, CPUID Test: KNCNI
Header File
immintrin.h
Instruction
VLOADUNPACKLPS zmm {k}, m512
Synopsis
 _mm512_mask_loadunpacklo_ps(__m512 src, __mmask16 k, void const* mt);
Description
Loads the low-64-byte-aligned portion of the doubleword stream starting at element-aligned address mt and expanded into packed single-precision (32-bit) floating-point elements in "dst". The initial values of "dst" are copied from "src". Only those converted doublewords that occur before first 64-byte-aligned address following "mt" are loaded. Elements in the resulting vector that do not map to those doublewords are taken from "src". Elements are loaded from memory according to element selector "k" (elements are skipped when the corresponding mask bit is not set).
Operation
dst[511:0] := src[511:0]
loadOffset := 0
addr := mt
FOR j := 0 to 15
	i := j*32
	IF k[j]
		tmp := MEM[addr + loadOffset*4]
		dst[i+31:i] := tmp[i+31:i]
		loadOffset := loadOffset + 1
		IF (mt + loadOffset * 4) % 64 == 0
			BREAK
		FI
	FI
ENDFOR
dst[MAX:512] := 0