_mm512_mask_i64extgather_epi64
Classification
KNC, Load, CPUID Test: KNCNI
Header File
immintrin.h
Synopsis
 _mm512_mask_i64extgather_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 64-bit integer indices stored in "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). "hint" indicates to the processor whether the load is non-temporal.
Operation
FOR j := 0 to 7
	i := j*32
	m := j*64
	addr := base_addr + vindex[m+63: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