Function core::arch::x86_64::_mm512_mask_getmant_round_ph
source · pub unsafe fn _mm512_mask_getmant_round_ph(
src: __m512h,
k: __mmask32,
a: __m512h,
const NORM: _MM_MANTISSA_NORM_ENUM,
const SIGN: _MM_MANTISSA_SIGN_ENUM,
const SAE: i32,
) -> __m512h
🔬This is a nightly-only experimental API. (
stdarch_x86_avx512_f16
#127213)Available on (x86 or x86-64) and target feature
avx512fp16
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 writemask k (elements are copied from src 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