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

--- Comment #20 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Wilco Dijkstra <wi...@gcc.gnu.org>:

https://gcc.gnu.org/g:8187d2630fac77176a4a806a60b0399a1e0376d8

commit r16-3439-g8187d2630fac77176a4a806a60b0399a1e0376d8
Author: Wilco Dijkstra <wilco.dijks...@arm.com>
Date:   Wed Aug 13 14:56:57 2025 +0000

    AArch64: Add isinf expander [PR 66462]

    Add an expander for isinf using integer arithmetic.  This is
    typically faster and avoids generating spurious exceptions on
    signaling NaNs.  This fixes part of PR66462.

    int isinf1 (float x) { return __builtin_isinf (x); }

    Before:
            fabs    s0, s0
            mov     w0, 2139095039
            fmov    s31, w0
            fcmp    s0, s31
            cset    w0, le
            eor     w0, w0, 1
            ret

    After:
            fmov    w1, s0
            mov     w0, -16777216
            cmp     w0, w1, lsl 1
            cset    w0, eq
            ret

    gcc:
            PR middle-end/66462
            * config/aarch64/aarch64.md (isinf<mode>2): Add new expander.
            * config/aarch64/iterators.md (mantissa_bits): Add new mode_attr.

    gcc/testsuite:
            PR middle-end/66462
            * gcc.target/aarch64/pr66462.c: Add new test.

Reply via email to