[Bug target/93494] [10 Regression] wrong code with __builtin_add_overflow since r10-3989

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 30 11:59:00 GMT 2020


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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:efd26bbc81e94a324b3d3331a32eac089af8db1d

commit r10-6349-gefd26bbc81e94a324b3d3331a32eac089af8db1d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jan 30 12:58:20 2020 +0100

    arm: Fix uaddvdi4 expander [PR93494]

    uaddvdi4 expander has an optimization for the low 32-bits of the 2nd input
    operand known to be 0.  Unfortunately, in that case it only emits copying
of
    the low 32 bits to the low 32 bits of the destination, but doesn't emit the
    addition with overflow detection for the high 64 bits.
    Well, to be precise, it emits it, but into an RTL sequence returned by
    gen_uaddvsi4, but that sequence isn't emitted anywhere.

    2020-01-30  Jakub Jelinek  <jakub@redhat.com>

        PR target/93494
        * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
        returned.

        * gcc.c-torture/execute/pr93494.c: New test.


More information about the Gcc-bugs mailing list