core::arch::x86_64

Function _mm_round_pd

1.27.0 · Source
pub unsafe fn _mm_round_pd(a: __m128d, const ROUNDING: i32) -> __m128d
Available on (x86 or x86-64) and target feature sse4.1 and x86-64 only.
Expand description

Round the packed double-precision (64-bit) floating-point elements in a using the ROUNDING parameter, and stores the results as packed double-precision floating-point elements. Rounding is done according to the rounding parameter, which can be one of:

#[cfg(target_arch = "x86")]
use std::arch::x86::*;
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;

// round to nearest, and suppress exceptions:
_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC;
// round down, and suppress exceptions:
_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC;
// round up, and suppress exceptions:
_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC;
// truncate, and suppress exceptions:
_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC;
// use MXCSR.RC; see `_MM_SET_ROUNDING_MODE`:
_MM_FROUND_CUR_DIRECTION;

Intel’s documentation