https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109989
--- Comment #6 from Jeffrey A. Law <law at gcc dot gnu.org> --- floatsisf is going to be called through the libcall interface which has different paths than normal function calls and I don't think the usual type promotion rules apply to libcalls. The details escape me, but we've run into similar kinds of problems with narrow arguments on libcalls for other targets. This is almost certainly a bad interaction between the risc-v backend and the libcall code.