_mm512_mask_i32loextgather_epi64
Classification
AVX-512, Load, CPUID Test: AVX512F
Header File
immintrin.h
Instruction
VPGATHERDQ zmm {k}, m512
Synopsis
 _mm512_mask_i32loextgather_epi64(__m512i src, __mmask8 k, __m512i vindex, void const * base_addr, _MM_UPCONV_EPI64_ENUM conv, int scale, int hint);
Description
Up-converts 8 double-precision (64-bit) memory locations starting at location "base_addr" at packed 32-bit integer indices stored in the lower half of "vindex" scaled by "scale" using "conv" to 64-bit integer elements and stores them in "dst" using writemask "k" (elements are copied from "src" when the corresponding mask bit is not set).
Operation
FOR j := 0 to 7
	i := j*64
	m := j*32
	addr := base_addr + SignExtend64(vindex[m+31:m]) * ZeroExtend64(scale) * 8
	
	IF k[j]
		CASE conv OF
		_MM_UPCONV_EPI64_NONE: dst[i+63:i] := MEM[addr+63:addr]
		ESAC
	ELSE
		dst[i+63:i] := src[i+63:i]
	FI
ENDFOR
dst[MAX:512] := 0