_mm512_mask_prefetch_i32gather_pd
Classification
AVX-512, Load, CPUID Test: AVX512PF
Header File
immintrin.h
Instruction
VGATHERPF0DPD vm32y {k}
Synopsis
 _mm512_mask_prefetch_i32gather_pd(__m256i vindex, __mmask8 k, void const* base_addr, int scale, int hint);
Description
Prefetch double-precision (64-bit) floating-point elements from memory using 32-bit indices. 64-bit elements are loaded from addresses starting at "base_addr" and offset by each 32-bit element in "vindex" (each index is scaled by the factor in "scale"). Gathered elements are merged in cache using writemask "k" (elements are brought into cache only when their corresponding mask bits are set). "scale" should be 1, 2, 4 or 8. The "hint" parameter may be 1 (_MM_HINT_T0) for prefetching to L1 cache, or 2 (_MM_HINT_T1) for prefetching to L2 cache.
Operation
FOR j := 0 to 7
	i := j*64
	m := j*32
	IF k[j]
		addr := base_addr + SignExtend64(vindex[m+31:m]) * ZeroExtend64(scale) * 8
		Prefetch(MEM[addr+63:addr], hint)
	FI
ENDFOR