On Tue, Jan 21, 2025 at 9:55 AM Jeff Law <jeffreya...@gmail.com> wrote: > > > > 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. > gcc-16, unless there's a good tie-in to a regression?
I have not found a testcase which shows not generating an extra `and` or not generating the `andn/bic` is a regression yet. Thanks, Andrew > > jeff >