_mm_i32gather_epi32
Classification
AVX_ALL, Load, CPUID Test: AVX2
Header File
immintrin.h
Instruction
VPGATHERDD xmm, vm32x, xmm
Synopsis
 _mm_i32gather_epi32(int const* base_addr, __m128i vindex, const int scale);
Description
Gather 32-bit integers 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 into "dst". "scale" should be 1, 2, 4 or 8.
Operation
FOR j := 0 to 3
	i := j*32
	m := j*32
	addr := base_addr + SignExtend64(vindex[m+31:m]) * ZeroExtend64(scale) * 8
	dst[i+31:i] := MEM[addr+31:addr]
ENDFOR
dst[MAX:128] := 0