[Bug tree-optimization/94914] Failure to optimize check of high part of 64-bit result of 32 by 32 multiplication into overflow check

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 5 09:35:35 GMT 2020


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

--- 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:6d938a5d770d0e94ecd923d20006b05126659235

commit r11-63-g6d938a5d770d0e94ecd923d20006b05126659235
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue May 5 11:31:43 2020 +0200

    match.pd: Optimize (((type)A * B) >> prec) != 0 into __imag__ .MUL_OVERFLOW
[PR94914]

    On x86 (the only target with umulv4_optab) one can use mull; seto to check
    for overflow instead of performing wider multiplication and performing
    comparison on the high bits.

    2020-05-05  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/94914
            * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) !=
0):
            New simplification.

            * gcc.target/i386/pr94914.c: New test.


More information about the Gcc-bugs mailing list