]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Nan-box the result of movhf on soft-fp16
authorKuan-Lin Chen <rufus@andestech.com>
Wed, 20 Dec 2023 07:18:59 +0000 (15:18 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Thu, 4 Jan 2024 13:41:30 +0000 (21:41 +0800)
commit057dc349021660c40699fb5c98fd9cac8e168653
tree5e108e6ad0217d4abbbf9214b5b5613a884c5e86
parent3ac58063114cf491891072be6205d32a42c6707d
RISC-V: Nan-box the result of movhf on soft-fp16

According to spec, fmv.h checks if the input operands are correctly
NaN-boxed. If not, the input value is treated as an n-bit canonical NaN.
This patch fixs the issue that operands returned by soft-fp16 libgcc
(i.e., __truncdfhf2) was not correctly NaN-boxed.

gcc/ChangeLog:

* config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
with Nan-boxing value.
* config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/_Float16-nanboxing.c: New test.

Co-authored-by: Patrick Lin <patrick@andestech.com>
Co-authored-by: Rufus Chen <rufus@andestech.com>
Co-authored-by: Monk Chiang <monk.chiang@sifive.com>
gcc/config/riscv/riscv.cc
gcc/config/riscv/riscv.md
gcc/testsuite/gcc.target/riscv/_Float16-nanboxing.c [new file with mode: 0644]