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

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

https://gcc.gnu.org/g:2a2e6784074e1f7b679bc09b1a66982bf60645a5

commit r15-5024-g2a2e6784074e1f7b679bc09b1a66982bf60645a5
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Mon Oct 28 16:40:34 2024 -0700

    ifcombine: For short circuit case, allow 2 convert defining statements
[PR85605]

    r0-126134-g5d2a9da9a7f7c1 added support for circuiting and combing the ifs
    into using either AND or OR. But it only allowed the inner condition
    basic block having the conditional only. This changes to allow up to 2
defining
    statements as long as they are just integer to integer conversions for
    either the lhs or rhs of the conditional.

    This should allow to use ccmp on aarch64 and x86_64 (APX) slightly more
than before.

    Boootstrapped and tested on x86_64-linux-gnu.

            PR tree-optimization/85605

    gcc/ChangeLog:

            * tree-ssa-ifcombine.cc (can_combine_bbs_with_short_circuit): New
function.
            (ifcombine_ifandif): Use can_combine_bbs_with_short_circuit
            instead of checking if iterator is one before the last statement.

    gcc/testsuite/ChangeLog:

            * g++.dg/tree-ssa/ifcombine-ccmp-1.C: New test.
            * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-7.c: New test.
            * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-8.c: New test.
            * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-9.c: New test.

    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Reply via email to