Zfinx extension[1] had already ratified. Here is the implementation patch set that reuse floating point pattern and ban the use of fpr when use z*inx as a target.
Current works can be find in follow links, binutils and simulator works already supported on upstream. https://github.com/pz9115/riscv-gcc/tree/zfinx-rebase Thanks for Tariq Kurd, Kito Cheng, Jim Willson, Jeremy Bennett helped us a lot with this work. [1] https://github.com/riscv/riscv-zfinx/blob/main/zfinx-1.0.0-rc.pdf Version log: v2: As Kito Cheng's comment, add Changelog part in patches, update imply info in riscv-common.c, remove useless check and update annotation in riscv.c. v3: Update with new isa-spec version 20191213, make zfinx imply zicsr as default, fix the lack of fcsr use in zfinx. v4: Rebase patch with upstream, add zhinx/zhinxmin extensions support. Add additional zhinx/zhinxmin same like zfh/zfhmin. Jiawei (4): RISC-V: Minimal support of z*inx extension. RISC-V: Target support for z*inx extension. RISC-V: Limit regs use for z*inx extension. RISC-V: Add zhinx/zhinxmin testcases. gcc/common/config/riscv/riscv-common.cc | 18 +++++ gcc/config/riscv/arch-canonicalize | 5 ++ gcc/config/riscv/constraints.md | 5 +- gcc/config/riscv/iterators.md | 6 +- gcc/config/riscv/riscv-builtins.cc | 4 +- gcc/config/riscv/riscv-c.cc | 2 +- gcc/config/riscv/riscv-opts.h | 10 +++ gcc/config/riscv/riscv.cc | 21 ++++- gcc/config/riscv/riscv.md | 78 ++++++++++--------- gcc/config/riscv/riscv.opt | 3 + .../gcc.target/riscv/_Float16-zhinx-1.c | 10 +++ .../gcc.target/riscv/_Float16-zhinx-2.c | 9 +++ .../gcc.target/riscv/_Float16-zhinx-3.c | 9 +++ .../gcc.target/riscv/_Float16-zhinxmin-1.c | 10 +++ .../gcc.target/riscv/_Float16-zhinxmin-2.c | 10 +++ .../gcc.target/riscv/_Float16-zhinxmin-3.c | 10 +++ 16 files changed, 160 insertions(+), 50 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinx-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinx-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinx-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-3.c -- 2.25.1