Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_cvtfxpnt_roundpd_epi32lo/ _mm512_mask_cvtfxpnt_roundpd_epi32lo

Converts and rounds float64 vector to int32 vector. Corresponding instruction is VCVTFXPNTPD2DQ. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

extern __m512 __cdecl _mm512_cvtfxpnt_roundpd_epi32lo(__m512d v2, int rc);

With Mask

extern __m512 __cdecl _mm512_mask_cvtfxpnt_roundpd_epi32lo(__m512i v1_old, __mmask8 k1, __m512d v2, int rc);

Parameters

v2

float64 vector used for the conversion

v1_old

Source vector that retains old values of the destination vector; the resulting vector gets corresponding elements from v1_old for zero mask bits

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

rc

Rounding control values; these can be one of the following:

  • _MM_ROUND_MODE_NEAREST - round to nearest (even)
  • _MM_ROUND_MODE_DOWN - round toward negative infinity
  • _MM_ROUND_MODE_UP - round toward positive infinity
  • _MM_ROUND_MODE_TOWARD_ZERO - round toward zero

Description

Performs an element-by-element conversion of the rounded fixed-point float64 vector v2 to a int32 vector. The resulting elements are written into the lower half of the result vector. The remaining locations (upper half of the result vector) are set to '0'.

The masked variant has one additional argument: k1. Only those elements in the source vectors with the corresponding bit set in vector mask k1 are used for computing.

Returns

Returns the result of the conversion operation.