binutils Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
risc-v

RISC-V: Add support for XAndesVBFHCvt extension

Binutils now supports the RISC-V XAndesVBFHCvt extension for vector BF16 and FP32 conversion instructions.

This commit adds support for the RISC-V XAndesVBFHCvt extension, enabling vector conversion instructions between BF16 and FP32 formats. Changes include updates to BFD for ELF handling, GAS for assembler syntax and tests, and the opcode library for instruction definitions. This allows for more efficient mixed-precision floating-point computations.

In Details

This change integrates support for the XAndesVBFHCvt extension into the RISC-V binutils. It modifies BFD's riscv_multi_subset_supports functions to recognize the new extension, updates GAS for assembler syntax and test cases, and augments the opcode tables and instruction classes in opcode/riscv-opc.c and include/opcode/riscv.h. This expansion provides toolchain support for Andes-specific vector format conversion instructions.

For Context
XAndesVBFHCvt
A RISC-V extension from Andes Technology that provides instructions for converting between BF16 (Bfloat16) and FP32 (single-precision floating-point) formats in vectors.
RISC-V
An open-standard Instruction Set Architecture (ISA) based on Reduced Instruction Set Computer principles.
BFD
The Binary File Descriptor library, used by binutils to handle various object file formats like ELF.
GAS
The GNU Assembler, part of binutils, responsible for translating assembly language into machine code.
ELF
Executable and Linkable Format, a common standard file format for object files, executables, and shared libraries on Unix-like systems.
BF16
Bfloat16, a 16-bit floating-point format that uses the same exponent as FP32 but a smaller mantissa, allowing for more efficient storage and computation while retaining a similar dynamic range.
FP32
Single-precision floating-point format, a standard 32-bit representation for floating-point numbers.
Filed Under: risc-vfloating-pointvector instructionsassembler