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.
- 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.