_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.


Submit feedback on this help topic

Copyright © 1996-2011, Intel Corporation. All rights reserved.