Function core::arch::x86::_mm_getmant_round_sh
source · pub unsafe fn _mm_getmant_round_sh(
a: __m128h,
b: __m128h,
const NORM: _MM_MANTISSA_NORM_ENUM,
const SIGN: _MM_MANTISSA_SIGN_ENUM,
const SAE: i32,
) -> __m128h
🔬This is a nightly-only experimental API. (
stdarch_x86_avx512_f16
#127213)Available on (x86 or x86-64) and target feature
avx512fp16
and x86 only.Expand description
Normalize the mantissas of the lower half-precision (16-bit) floating-point element in b, store
the result in the lower element of dst, and copy the upper 7 packed elements from a to the upper
elements of dst. 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