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

RISC-V: Add support for XAndesBFHCvt extension

Binutils now supports the RISC-V XAndesBFHCvt extension for scalar BF16 and FP32 conversion instructions.

This commit adds support for the RISC-V XAndesBFHCvt extension, enabling scalar 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 improves the efficiency of mixed-precision floating-point operations.

In Details

This change integrates support for the XAndesBFHCvt 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 scalar format conversion instructions.

For Context
XAndesBFHCvt
A RISC-V extension from Andes Technology that provides instructions for converting between BF16 (Bfloat16) and FP32 (single-precision floating-point) formats in scalar operations.
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-pointassembler