_mm512_cvtfxpnt_round_adjustps_epi32
Classification
KNC, Convert, CPUID Test: KNCNI
Header File
Instruction
VCVTFXPNTPS2DQ zmm, zmm, imm8
Synopsis
_mm512_cvtfxpnt_round_adjustps_epi32(__m512 v2, int rounding, _MM_EXP_ADJ_ENUM expadj);
Description
Performs element-by-element conversion of packed single-precision (32-bit) floating-point elements in "v2" to packed 32-bit integer elements and performs an optional exponent adjust using "expadj", storing the results in "dst".
[round_note]
Operation
FOR j := 0 to 15
i := j*32
dst[i+31:i] := v2[i+31:i]
CASE expadj OF
_MM_EXPADJ_NONE: dst[i+31:i] := dst[i+31:i] * (2 << 0)
_MM_EXPADJ_4: dst[i+31:i] := dst[i+31:i] * (2 << 4)
_MM_EXPADJ_5: dst[i+31:i] := dst[i+31:i] * (2 << 5)
_MM_EXPADJ_8: dst[i+31:i] := dst[i+31:i] * (2 << 8)
_MM_EXPADJ_16: dst[i+31:i] := dst[i+31:i] * (2 << 16)
_MM_EXPADJ_24: dst[i+31:i] := dst[i+31:i] * (2 << 24)
_MM_EXPADJ_31: dst[i+31:i] := dst[i+31:i] * (2 << 31)
_MM_EXPADJ_32: dst[i+31:i] := dst[i+31:i] * (2 << 32)
ESAC
dst[i+31:i] := Float32ToInt32(dst[i+31:i])
ENDFOR
dst[MAX:512] := 0