Thanks for the patch!! We also found the same issue on internal testing works and trying to figure out how to resolve that issue yet, this patch is little bit magic, let me take a closer look.. :P
On Wed, Nov 8, 2023 at 11:08 AM KuanLin Chen <best124...@gmail.com> wrote: > > 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. > >