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

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

https://gcc.gnu.org/g:3d1bdbf64c2ed5be70fbff687b2927e328297b81

commit r14-6777-g3d1bdbf64c2ed5be70fbff687b2927e328297b81
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Dec 21 11:13:42 2023 +0100

    lower-bitint: Avoid nested casts in muldiv/float operands [PR112941]

    Multiplication/division/modulo/float operands are handled by libgcc calls
    and so need to be passed as array of limbs with precision argument,
    using handle_operand_addr.  That code can't deal with more than one cast,
    so the following patch avoids merging those cases.
    .MUL_OVERFLOW calls use the same code, but we don't actually try to merge
    the operands in that case already.

    2023-12-21  Jakub Jelinek  <ja...@redhat.com>

            PR tree-optimization/112941
            * gimple-lower-bitint.cc (gimple_lower_bitint): Disallow merging
            a cast with multiplication, division or conversion to floating
point
            if rhs1 of the cast is result of another single use cast in the
same
            bb.

            * gcc.dg/bitint-56.c: New test.
            * gcc.dg/bitint-57.c: New test.

Reply via email to