On Wed, Sep 24, 2025 at 12:20 AM Matteo Nicoli <[email protected]> wrote: > > Dear Richard, > > Thank you for your review. This new patch fixes all the problems of the > previous one. In particular: > > Fixes the indentation of the commit message; > Removes the “:c” on the “!=“; > Replaces integer_{zero, one}_node with build_{zero, one}_cst (type); > Added two more tests.
The patch looks OK to me. It's still going to be rejected by the commit hooks because of malformed ChangeLog parts - you can use git gcc-verify to check that yourself even when you do not have write access to the repository (assuming you ran gcc-git-customization.sh) Please always state how you tested the patch. I'm looking for sth like "Bootstrapped and tested on x86_64-unknown-linux-gnu" Thanks, Richard. > > Best regards, > Matteo > > > > On Sep 15, 2025, at 3:28 PM, Richard Biener <[email protected]> > wrote: > > On Thu, Sep 11, 2025 at 3:16 PM Matteo Nicoli > <[email protected]> wrote: > > > I am writing this follow-up email to specify that I executed the tests > contained in this patch on aarch64-arm64-linux-gnu > > > The changelog part of the commit message is formatted wrongly. > > * gcc/match.pd: added the following optimizations for bitwise operations: > - (a != b) & ((a|b) != 0) -> (a != b) > > all lines should be indented exactly by 1 tab, the 'gcc/' part is > superfluous, it > should be just '* match.pd' > > * gcc.dg/int-bwise-opt-1.c: Tests the following optimisation patterns: > - (a != b) & ((a|b) != 0) -> (a != b) > > Likewise for the indenting. > > +(simplify > + (bit_and:c (ne:c @0 @1) (ne:c (bit_ior @0 @1) integer_zerop)) > + (ne:c @0 @1)) > > The ':c' on the != 0 is superfluous. Canonicalization guarantees constants > are ordered second. The :c on the simplification result is useless. So: > > (simplify > (bit_and:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop)) > (ne @0 @1)) > > +(simplify > + (bit_and:c (ne:c @0 @1) (eq:c (bit_ior @0 @1) integer_zerop)) > + { integer_zero_node; }) > +(simplify > + (bit_ior:c (eq:c @0 @1) (ne:c (bit_ior @0 @1) integer_zerop)) > + { integer_one_node; }) > > Using integer_zero/one_node is wrong, you should use > build_zero_cst (type); and build_one_cst (type) instead to get > appropriately typed results. This probably means you do not have > coverage for these cases. > > Otherwise this looks OK to me. > > Thanks, > Richard. > > Best regards, > Matteo > > > On Sep 9, 2025, at 10:39 PM, Matteo Nicoli <[email protected]> wrote: > > Dear reviewers, > > I attached the patch for this Bugzilla issue: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117760 > I also attached an SMT file for the formal verifications of these properties. > At the bottom of the file I pasted its output (executed with Z3). > > Best regards, > Matteo > > <117760.smt2> > <tree-optimization-117760.patch> > > >
