This is supported on x86-64 and target feature
sse4.1
only.Expand description
Round the lower double-precision (64-bit) floating-point element in b
using the ROUNDING
parameter, store the result as a double-precision
floating-point element in the lower element of the intrinsic result,
and copies the upper element from a
to the upper element of the intrinsic
result.
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;
Run