_mm512_mask_prefetch_i64gather_ps
Classification
AVX-512, Load, CPUID Test: AVX512PF
Header File
immintrin.h
Instruction
VGATHERPF0QPS vm64z {k}
Synopsis
 _mm512_mask_prefetch_i64gather_ps(__m512i vindex, __mmask8 k, void const* base_addr, int scale, int hint);
Description
Prefetch single-precision (32-bit) floating-point elements from memory using 64-bit indices. 32-bit elements are loaded from addresses starting at "base_addr" and offset by each 64-bit element in "vindex" (each index is scaled by the factor in "scale"). Gathered elements are merged in cache using writemask "k" (elements are only brought into cache when their corresponding mask bit is 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*64
	IF k[j]
		addr := base_addr + vindex[m+63:m] * ZeroExtend64(scale) * 8
		Prefetch(MEM[addr+31:addr], hint)
	FI
ENDFOR