https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88877
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- Sure, with 32-bit ABIs the registers are just 32 bits, for all intents and purposes. But we have -m64 here. (see also the "lwa" insn). I think that because __floatunsidf has no prototype all its args are taken to be int?