VCVTNEPS2BF16—Convert Packed Single Data to Packed BF16 DataInstruction Operand EncodingDescriptionConverts one SIMD register of packed single data into a single register of packed BF16 data.This instruction uses “Round to nearest (even)” rounding mode. Output denormals are always flushed to zero and input denormals are always treated as zero. MXCSR is not consulted nor updated. As the instruction operand encoding table shows, the EVEX.vvvv field is not used for encoding an operand. EVEX.vvvv is reserved and must be 0b1111 otherwise instructions will #UD.OperationDefine convert_fp32_to_bfloat16(x):IF x is zero or denormal:dest[15] := x[31] // sign preserving zero (denormal go to zero)dest[14:0] := 0ELSE IF x is infinity:dest[15:0] := x[31:16]ELSE IF x is NAN:dest[15:0] := x[31:16] // truncate and set MSB of the mantissa to force QNANdest[6] := 1ELSE // normal numberLSB := x[16]rounding_bias := 0x00007FFF + LSBtemp[31:0] := x[31:0] + rounding_bias // integer adddest[15:0] := temp[31:16]RETURN destOpcode/InstructionOp/En64/32 bit Mode SupportCPUID Feature FlagDescriptionEVEX.128.F3.0F38.W0 72 /rVCVTNEPS2BF16 xmm1{k1}{z}, xmm2/m128/m32bcstAV/VAVX512VLAVX512_BF16Convert packed single data from xmm2/m128 to packed BF16 data in xmm1 with writemask k1.EVEX.256.F3.0F38.W0 72 /rVCVTNEPS2BF16 xmm1{k1}{z}, ymm2/m256/m32bcstAV/VAVX512VLAVX512_BF16Convert packed single data from ymm2/m256 to packed BF16 data in xmm1 with writemask k1.EVEX.512.F3.0F38.W0 72 /rVCVTNEPS2BF16 ymm1{k1}{z}, zmm2/m512/m32bcstAV/VAVX512FAVX512_BF16Convert packed single data from zmm2/m512 to packed BF16 data in ymm1 with writemask k1.Op/EnTupleOperand 1Operand 2Operand 3Operand 4AFullModRM:reg (w)ModRM:r/m (r)NANA
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.