_mm512_maskz_getmant_round_ph in core::arch::x86 - Rust
Description: Normalize the mantissas of packed half-precision (16-bit) floating-point elements in a, and store the results in dst using zeromask k (elements are zeroed out when the corresponding mask bit is not set). This intrinsic essentially calculates `±(2^k)*|x.significand|`, where k depends on the interval range defined by norm and the sign depends on sign and the source sign. Exceptions can be suppressed by passing _MM_FROUND_NO_EXC in the sae parameter

## _mm512_maskz_getmant_round_ph

# Function _mm512_maskz_getmant_round_ph

1.94.0 · Source

    pub fn _mm512_maskz_getmant_round_ph(
        k: __mmask32,
        a: __m512h,
        const NORM: _MM_MANTISSA_NORM_ENUM,
        const SIGN: _MM_MANTISSA_SIGN_ENUM,
        const SAE: i32,
    ) -> __m512h

Available on x86 and target feature `avx512fp16` only.
Expand description

Normalize the mantissas of packed half-precision (16-bit) floating-point elements in a, and store the results in dst using zeromask k (elements are zeroed out when the corresponding mask bit is not set). This intrinsic essentially calculates `±(2^k)*|x.significand|`, where k depends on the interval range defined by norm and the sign depends on sign and the source sign. Exceptions can be suppressed by passing _MM_FROUND_NO_EXC in the sae parameter

The mantissa is normalized to the interval specified by interv, which can take the following values:

    _MM_MANT_NORM_1_2     // interval [1, 2)
    _MM_MANT_NORM_p5_2    // interval [0.5, 2)
    _MM_MANT_NORM_p5_1    // interval [0.5, 1)
    _MM_MANT_NORM_p75_1p5 // interval [0.75, 1.5)

The sign is determined by sc which can take the following values:

    _MM_MANT_SIGN_src     // sign = sign(src)
    _MM_MANT_SIGN_zero    // sign = 0
    _MM_MANT_SIGN_nan     // dst = NaN if sign(src) = 1

Exceptions can be suppressed by passing _MM_FROUND_NO_EXC in the sae parameter

Intel’s documentation