VGETMANTPD - GET MANTissa Packed Double

VGETMANTPD xmm1{k1}{z}, xmm2/m128/m64bcst, imm8    (V5+VL
__m128d _mm_getmant_pd(__m128d a, int intv, int sgn)
__m128d _mm_mask_getmant_pd(__m128d s, __mmask8 k, __m128d a, int intv, int sgn)
__m128d _mm_maskz_getmant_pd(__mmask8 k, __m128d a, int intv, int sgn)

For each double, get the mantissa from (1), perform specified normalization and store the result in (2).
VGETMANTPD ymm1{k1}{z}, ymm2/m256/m64bcst, imm8    (V5+VL
__m256d _mm256_getmant_pd(__m256d a, int intv, int sgn)
__m256d _mm256_mask_getmant_pd(__m256d s, __mmask8 k, __m256d a, int intv, int sgn)
__m256d _mm256_maskz_getmant_pd(__mmask8 k, __m256d a, int intv, int sgn)

For each double, get the mantissa from (1), perform specified normalization and store the result in (2).
VGETMANTPD zmm1{k1}{z}, zmm2/m512/m64bcst{sae}, imm8    (V5
__m512d _mm512_getmant_pd(__m512d a, int intv, int sgn)
__m512d _mm512_mask_getmant_pd(__m512d s, __mmask8 k, __m512d a, int intv, int sgn)
__m512d _mm512_maskz_getmant_pd(__mmask8 k, __m512d a, int intv, int sgn)
__m512d _mm512_getmant_round_pd(__m512d a, int intv, int sgn, int sae)
__m512d _mm512_mask_getmant_round_pd(__m512d s, __mmask8 k, __m512d a, int intv, int sgn, int sae)
__m512d _mm512_maskz_getmant_round_pd(__mmask8 k, __m512d a, int intv, int sgn, int sae)

For each double, get the mantissa from (1), perform specified normalization and store the result in (2).
imm8 bit 1:0
intv
Normalization Interval 00b _MM_MANT_NORM_1_2: 1 <= x < 2
01b _MM_MANT_NORM_p5_2: 0.5 <= x < 2
10b _MM_MANT_NORM_p5_1: 0.5 <= x < 1
11b _MM_MANT_NORM_p75_1p5: 0.75 <= x < 1.5
the mantissa is normalized to fit within the range specified.
imm8 bit 3:2
sgn
Sign Control 00b _MM_MANT_SIGN_src: sign is unchanged
01b _MM_MANT_SIGN_zero: sign is set to positive
10b, 11b _MM_MANT_SIGN_nan: if sign of the source is negative, QNaN_Indefinite is stored as the result.

 


x86/x64 SIMD Instruction List  Feedback