BFCVT Floating-point convert from single-precision to BFloat16 format (scalar) This instruction converts the single-precision floating-point value in the 32-bit SIMD&FP source register to BFloat16 format and writes the result in the 16-bit SIMD&FP destination register. ID_AA64ISAR1_EL1.BF16 indicates whether this instruction is supported. 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 BFCVT <Hd>, <Sn> if !IsFeatureImplemented(FEAT_BF16) then UNDEFINED; constant integer d = UInt(Rd); constant integer n = UInt(Rn); <Hd> Is the 16-bit name of the SIMD&FP destination register, encoded in the "Rd" field. <Sn> Is the 32-bit name of the SIMD&FP source register, encoded in the "Rn" field. CheckFPEnabled64(); constant bits(32) operand = V[n, 32]; constant boolean merge = IsMerging(FPCR); bits(128) result = if merge then V[d, 128] else Zeros(128); Elem[result, 0, 16] = FPConvertBF(operand, FPCR); V[d, 128] = result;