[Bug target/94646] New: [arm] invalid codegen for conversion from 64-bit int to double hardfloat

bugdal at aerifal dot cx gcc-bugzilla@gcc.gnu.org
Sat Apr 18 05:33:28 GMT 2020


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.


More information about the Gcc-bugs mailing list