[Bug target/125752] [avr] Missing 64-bit fixed point <-> 64-bit double conversions

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jun 28 10:21:15 GMT 2026


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125752

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Georg-Johann Lay
<gjl@gcc.gnu.org>:

https://gcc.gnu.org/g:4beef96eba0034595f27db768d37e7a40d7e4b5c

commit r15-11322-g4beef96eba0034595f27db768d37e7a40d7e4b5c
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sun Jun 28 12:08:04 2026 +0200

    AVR: ad target/125752 - Simplify double -> 64-bit fixed conversions.

    When converting a fixed-point value to double, there is no need to
    use ldexp to adjust for FBIT of the result.  Instead, FBIT can be
    added to the double exponent without any further ado.  When the
    input is +/-0.0 then the outcome of adding FBIT to the exponent
    is a small number that __fix[uns]dfdi converts to 0.

            PR target/125752
    libgcc/config/avr/libf7/
            * libf7.c (d_to_ufx, d_to_sfx): Remove prototypes.
            (__fractdfda, __fractdfuda, __fractdfta, __fractdfuta)
            (__fractdfdq, __fractdfudq): Move implementation to...
            * libf7-asm.sx: ...here.
            (d_to_fx64): Remove.
            * libf7-common.mk (F7_ASM_PARTS): Add D2dq, D2udq, D2da,
            D2uda, D2ta, D2uta.
            (F7F_asm): Remove d_to_fx64.
            * t-libf7 (LIBF7_DF_CONV): Remove fractdfda, fractdfta,
            fractdfdq, fractdfuda, fractdfuta, fractdfudq.
            * f7-renames.h: Rebuild.

    (cherry picked from commit 997a7e79258e7209718c5366b6a1d3be31c76b8b)


More information about the Gcc-bugs mailing list