https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91970
--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- The code snippet you posted looks like exactly what libgcc2.c would typically do for __floatundidf. Given that, I'd prefer building the relevant function from libgcc2.c rather than having an Arm-specific duplicate. /* When the word size is small, we never get any rounding error. */ FSTYPE f = (UWtype) (u >> W_TYPE_SIZE); f *= Wtype_MAXp1_F; f += (UWtype)u; return f;