_mm512_mask_prefetch_i32gather_ps
Classification
KNC, Load, CPUID Test: KNCNI
Header File
Instruction
VGATHERPF0DPS vm32y {k}
Synopsis
_mm512_mask_prefetch_i32gather_ps(__m512i vindex, __mmask16 k, void const* base_addr, int scale, int hint);
Description
Prefetch single-precision (32-bit) floating-point elements from memory using 32-bit indices. 32-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 15
i := j*32
m := j*32
IF k[j]
addr := base_addr + SignExtend64(vindex[m+31:m]) * ZeroExtend64(scale) * 8
Prefetch(MEM[addr+31:addr], hint)
FI
ENDFOR