Developer Guide and Reference

Contents

_mm256_round_pd

Rounds off double-precision floating point values to nearest upper/lower integer depending on rounding mode. The corresponding Intel® AVX instruction is
VROUNDPD
.

Syntax

extern __m256d _mm256_round_pd(__m256d a, int iRoundMode);
Arguments
a
float64 vector
iRoundMode
A hexadecimal value dependent on rounding mode:
  • For rounding off to upper integer, the value is
    0x0A
  • For rounding off to lower integer, the value is
    0x09
Description
Rounds off the elements of a float64 vector
a
to the nearest upper/lower integer value. Two shortcuts, in the form of
#defines
, are used to achieve these two separate operations:
#define _mm256_ceil_pd(a) _mm256_round_pd((a), 0x0A)
#define _mm256_floor_pd(a) _mm256_round_pd((a), 0x09)
These
#defines
tell the preprocessor to replace all instances of
_mm256_ceil_pd(a
) with
_mm256_round_pd((a), 0x0A)
and all instances of
_mm256_floor_pd(a)
with
_mm256_round_pd((a), 0x09)
.
For example, if you write the following:
__m256 a, b;
a = _mm256_ceil_pd(b);
the preprocessor will modify it to:
a = _mm256_round_pd(b, 0x0a);
The Precision Floating Point Exception is signaled according to the (immediate operand)
iRoundMode
value.
Returns
Result of the rounding off operation as a vector with double-precision floating point values.