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.