_mm512_i64extscatter_epi32lo
Classification
KNC, Store, CPUID Test: KNCNI
Header File
immintrin.h
Synopsis
 _mm512_i64extscatter_epi32lo(void * base_addr, __m512i vindex, __m512i a, _MM_DOWNCONV_EPI32_ENUM conv, int scale, int hint);
Description
Down-converts the low 8 packed 32-bit integer elements in "a" using "conv" and stores them in memory locations starting at location "base_addr" at packed 64-bit integer indices stored in "vindex" scaled by "scale". "hint" indicates to the processor whether the data is non-temporal.
Operation
FOR j := 0 to 7
	i := j*32
	m := j*64
	addr := base_addr + vindex[m+63:m] * ZeroExtend64(scale) * 8
	
	CASE conv OF
	_MM_DOWNCONV_EPI32_NONE:   MEM[addr+31:addr] := a[i+31:i]
	_MM_DOWNCONV_EPI32_UINT8:  MEM[addr+ 7:addr] := Truncate8(a[i+31:i])
	_MM_DOWNCONV_EPI32_SINT8:  MEM[addr+ 7:addr] := Saturate8(a[i+31:i])
	_MM_DOWNCONV_EPI32_UINT16: MEM[addr+15:addr] := Truncate16(a[i+31:i])
	_MM_DOWNCONV_EPI32_SINT16: MEM[addr+15:addr] := Saturate16(a[i+31:i])
	ESAC
ENDFOR