vbfcvt

Vector Convert BFloat16 (A32)

VBFCVT<c>.BF16.F32 <Qd>, <Qm>

Converts Float32 to BFloat16.

Details

Converts 128-bit SIMD register containing single-precision floating-point elements to BFloat16 (16-bit brain floating-point) format by rounding the mantissa to 7 bits and preserving the sign and exponent. The result is stored as 64 BFloat16 elements in the destination 128-bit register. Condition flags are unaffected. This instruction requires the NEON BFloat16 extension and executes in A32 (ARM) instruction set only.

Pseudocode Operation

for i = 0 to 3 do
  f32_val = Qm[i*32 + 0:31]
  bf16_val = F32_to_BF16(f32_val)
  Qd[i*16 + 0:15] = bf16_val

Example

VBFCVT.BF16.F32 q0, q2

Encoding

Binary Layout
11110011
1
D
11
01
10
Vd
00110
Q
M
0
Vm
 
Format NEON BFloat16
Opcode 0xF3B60640
Extension NEON (BFloat16)

Operands

  • Qd
    Destination 128-bit SIMD register
  • Qm
    Second source 128-bit SIMD register