On 1/20/25 9:38 PM, Andrew Pinski wrote:
In a similar way find_split_point handles `a+b*C`, this adds
the split point for `~a & b`.  This allows for better instruction
selection when the target has this instruction (aarch64, arm and x86_64
are examples which have this).

Built and tested for aarch64-linux-gnu.

        PR rtl-optmization/111949

gcc/ChangeLog:

        * combine.cc (find_split_point): Add a split point
        for `(and (not X) Y)` if not in the outer set already.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/bic-1.c: New test.
OK.

FWIW we were already handling the first two cases well on risc-v, but the patch does help the 3rd case.

Jeff

Reply via email to