Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_extstore_ps/_mm512_mask_extstore_ps

Stores with conversion of float32 vector. Corresponding instruction is VMOVAPS. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

extern void __cdecl _mm512_extstore_ps(void* mt, __m512 v1, _MM_DOWNCONV_PS_ENUM conv, int hint);

With Mask

extern void __cdecl _mm512_mask_extstore_ps(void* mt, __mmask16 k1, __m512 v1, _MM_DOWNCONV_PS_ENUM conv, int hint);

Arguments

v1

source vector to store elements from

conv

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

  • _MM_DOWNCONV_PS_NONE - no conversion
  • _MM_DOWNCONV_PS_FLOAT16 - float32 => float16
  • _MM_DOWNCONV_PS_UINT8 - float32 => uint8
  • _MM_DOWNCONV_PS_SINT8 - float32 => sint8
  • _MM_DOWNCONV_PS_UINT16 - float32 => uint16
  • _MM_DOWNCONV_PS_SINT16 - float32 => sint16

k1

vector mask to select elements to add to the stream

mt

memory location to store vector elements

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

Converts single precision floating point elements of the float32 vector v1 to a smaller type, specified by the conv parameter, and stores converted elements to the memory address mt with non-temporal hint hint. The type and the size of elements stored to memory depend on the parameter conv .

In the masked variant, only those elements with the corresponding bit set in vector mask k1 are converted and stored to memory. Elements in the destination memory vector with the corresponding bit clear in k1retain their previous value.

Note

This intrinsic requires the memory address mt to be aligned to the data size granularity dictated by the conv parameters. If a conversion is done from a 8-bit type (uint8, sint8) then the required alignment is 16 bytes. For a conversion from 16-bit types the alignment must be 32 bytes. If no conversion is used, the alignment must be 64 bytes.

Returns

Returns nothing.