https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94646
Bug ID: 94646 Summary: [arm] invalid codegen for conversion from 64-bit int to double hardfloat Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: bugdal at aerifal dot cx Target Milestone: --- GCC emits a call to __aeabi_l2d to convert from long long to double. This is invalid for hardfloat ABI because it does not honor rounding modes or raise exception flags. That in turn causes the implementation of fma in musl libc to produce wrong results for non-default rounding modes.