Rounds off single-precision floating point values to nearest upper/lower integer depending on rounding mode. The corresponding Intel® AVX instruction is VROUNDPS.
extern __m256 _mm256_round_ps(__m256 a, int iRoundMode ); |
a |
float32 vector |
iRoundMode |
A hexadecimal value dependent on rounding mode:
|
Rounds off the elements of a float32 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_ps(a) _mm256_round_ps((a), 0x0A)
#define _mm256_floor_ps(a) _mm256_round_ps((a), 0x09)
These #defines tells the preprocessor to replace all instances of _mm256_ceil_ps(a) with _mm256_round_ps((a), 0x0A) and all instances of _mm256_floor_ps(a) with _mm256_round_ps((a), 0x09).
For example, if you write the following:
__m256 a, b;
a = _mm256_ceil_ps(b);
the preprocessor will modify it to:
a = _mm256_round_ps(b, 0x0a);
The Precision Floating Point Exception is signaled according to the (immediate operand) iRoundMode value.
Copyright © 1996-2011, Intel Corporation. All rights reserved.