_mm512_mask_prefetch_i64gather_pd
Classification
AVX-512, Load, CPUID Test: AVX512PF
Header File
Instruction
VGATHERPF0QPD vm32z {k}
Synopsis
_mm512_mask_prefetch_i64gather_pd(__m512i vindex, __mmask8 k, void const* base_addr, int scale, int hint);
Description
Prefetch double-precision (64-bit) floating-point elements from memory into cache level specified by "hint" using 64-bit indices. 64-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"). Prefetched elements are merged in cache using writemask "k" (elements are copied from memory when the 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+63:addr], hint)
FI
ENDFOR