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
Operands
-
Qd
Destination 128-bit SIMD register -
Qm
Second source 128-bit SIMD register