core::arch::x86_64

Function _mm_maskz_getmant_ph

Source
pub unsafe fn _mm_maskz_getmant_ph(
    k: __mmask8,
    a: __m128h,
    const NORM: _MM_MANTISSA_NORM_ENUM,
    const SIGN: _MM_MANTISSA_SIGN_ENUM,
) -> __m128h
🔬This is a nightly-only experimental API. (stdarch_x86_avx512_f16 #127213)
Available on (x86 or x86-64) and target feature avx512fp16,avx512vl and x86-64 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.

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

Intel’s documentation