Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_i64[ext]scatter_epi32lo/ _mm512_mask_i64[ext]scatter_epi32lo

Scatter int32 vector with int64 indices to memory locations. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

void _mm512_i64extscatter_epi32lo(void* mv, __m512i index, __m512i v1, _MM_DOWNCONV_EPI32_ENUM conv, int scale, int hint);

void _mm512_i64scatter_epi32lo(void* mv, __m512i index, __m512i v1, int scale);

With Mask

void _mm512_mask_i64extscatter_epi32lo(void* mv, __mmask8 k1, __m512i index, __m512i v1, _MM_DOWNCONV_EPI32_ENUM conv, int scale, int hint);

void _mm512_mask_i64scatter_epi32lo(void* mv, __mmask8 k1, __m512i index, __m512i v1, int scale);

Parameters

mv

Pointer to base address in memory

k1

Writemask; only those elements of the source vectors with corresponding bit set to '1' in the k1 mask are computed and stored in the result; elements in the result vector corresponding to zero bit in k1 are copied from corresponding elements of vector v1_old

index

int32 vector containing indexes in memory mv

v1

source vector

conv

Type of downconversion, which can be one of the following:

  • _MM_DOWNCONV_EPI32_NONE - no conversion
  • _MM_DOWNCONV_EPI32_UINT8 - uint32 => uint8
  • _MM_DOWNCONV_EPI32_SINT8 - sint32 => sint8
  • _MM_DOWNCONV_EPI32_UINT16 - uint32 => uint16
  • _MM_DOWNCONV_EPI32_SINT16 - sint32 => sint16

scale

Scaling factor for calculating address of elements. Takes following values: 1, 2, 4, and 8. The address of the i-th element in memory is calculated as: mv + index[i] * scale

hint

Hint that indicates to the processor that the data is non-temporal. Takes the value 0 or 1, where:

  • _MM_HINT_NONE = 0
  • _MM_HINT_NT = 1 (Store is non-temporal)

Description

Down-converts and stores low 8 elements in int32 vector v1 to the memory locations to which the base address(es) mv and vector index index, with scale scale point.

The non-masked variant of the intrinsic is equivalent to the masked variant with full mask (k1=0xffff).

You can use the simplified version of this intrinsic, without ext in the name, if no conversion and no temporal hint are required.

Returns

None.