_mm512_mask_extstore_ps
Classification
KNC, Store, CPUID Test: KNCNI
Header File
Instruction
VMOVAPS m512 {k}, zmm
Synopsis
_mm512_mask_extstore_ps(void * mt, __mmask16 k, __m512 v, _MM_DOWNCONV_PS_ENUM conv, int hint);
Description
Downconverts packed single-precision (32-bit) floating-point elements stored in "v" to a smaller type depending on "conv" and stores them in memory location "mt" using writemask "k" (elements are not written to memory when the corresponding mask bit is not set). "hint" indicates to the processor whether the data is non-temporal.
Operation
FOR j := 0 to 15
i := j*32
IF k[j]
CASE conv OF
_MM_DOWNCONV_PS_NONE:
mt[i+31:i] := v[i+31:i]
_MM_DOWNCONV_PS_FLOAT16:
n := j*16
mt[n+15:n] := Convert_FP32_To_FP16(v[i+31:i])
_MM_DOWNCONV_PS_UINT8:
n := j*8
mt[n+7:n] := Convert_FP32_To_UInt8(v[i+31:i])
_MM_DOWNCONV_PS_SINT8:
n := j*8
mt[n+7:n] := Convert_FP32_To_Int8(v[i+31:i])
_MM_DOWNCONV_PS_UINT16:
n := j*16
mt[n+15:n] := Convert_FP32_To_UInt16(v[i+31:i])
_MM_DOWNCONV_PS_SINT16:
n := j*16
mt[n+15:n] := Convert_FP32_To_Int16(v[i+31:i])
ESAC
FI
ENDFOR