# 1.27.0[−][src]Function core::arch::x86_64::_mm_round_sd

    pub unsafe fn _mm_round_sd(a: __m128d, b: __m128d, rounding: i32) -> __m128d

This is supported on x86-64 and target feature `sse4.1` only.

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

Intel's documentation