VGETMANTPH - GET MANTissa Packed Half

VGETMANTPH xmm1{k1}{z}, xmm2/m128/m16bcst, imm8    (V5+FP16+VL
__m128h _mm_getmant_ph(__m128h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m128h _mm_mask_getmant_ph(__m128h s, __mmask8 k, __m128h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m128h _mm_maskz_getmant_ph(__mmask8 k, __m128h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)

各FP16について、①の仮数部を取り出し、指定された正規化を行い、結果を②にセット
VGETMANTPH ymm1{k1}{z}, ymm2/m256/m16bcst, imm8    (V5+FP16+VL
__m256h _mm256_getmant_ph(__m256h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m256h _mm256_mask_getmant_ph(__m256h s, __mmask16 k, __m256h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m256h _mm256_maskz_getmant_ph(__mmask16 k, __m256h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)

各FP16について、①の仮数部を取り出し、指定された正規化を行い、結果を②にセット
VGETMANTPH zmm1{k1}{z}, zmm2/m512/m16bcst{sae}, imm8    (V5+FP16
__m512h _mm512_getmant_ph(__m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m512h _mm512_mask_getmant_ph(__m512h s, __mmask32 k, __m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m512h _mm512_maskz_getmant_ph(__mmask32 k, __m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn)
__m512h _mm512_getmant_round_ph(__m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn, int sae)
__m512h _mm512_mask_getmant_round_ph(__m512h s, __mmask32 k, __m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn, int sae)
__m512h _mm512_maskz_getmant_round_ph(__mmask32 k, __m512h a, _MM_MANTISSA_NORM_ENUM intv, _MM_MANTISSA_SIGN_ENUM sgn, int sae)

各FP16について、①の仮数部を取り出し、指定された正規化を行い、結果を②にセット
imm8 ビット1:0
intv
正規化区間 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
仮数部は指定された範囲に収まるように正規化される
imm8 ビット3:2
sgn
符号制御 00b _MM_MANT_SIGN_src: 符号を変えない
01b _MM_MANT_SIGN_zero: 符号を正にする
10b, 11b _MM_MANT_SIGN_nan: 元のデータが負であれば、結果にQNaN_Indefiniteをセット

 


x86/x64 SIMD命令一覧表  フィードバック