Thanks, fixed ( https://gcc.gnu.org/pipermail/gcc-patches/2024-August/660631.html).
On Thu, Aug 15, 2024 at 3:57 PM Sam James <s...@gentoo.org> wrote: > Konstantinos Eleftheriou <konstantinos.elefther...@vrull.eu> writes: > > > From: kelefth <konstantinos.elefther...@vrull.eu> > > > > In expressions like (a != b || ((a ^ b) & CST0) == CST1) and > > (a != b || (a ^ b) == CST), (a ^ b) is folded to false. > > In the equivalent expressions (((a ^ b) & CST0) == CST1 || a != b) and > > ((a ^ b) == CST, (a ^ b) || a != b) this is not happening. > > > > This patch adds the following simplifications in match.pd: > > ((a ^ b) & CST0) == CST1 || a != b --> 0 == (CST1 || a != b) > > (a ^ b) == CST || a != b --> 0 == CST || (a != b) > > > > PR tree-optimization/114326 > > > > gcc/ChangeLog: > > > > * match.pd: Add two patterns to fold a ^ b to 0, when a == b. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.dg/tree-ssa/fold-xor-and-or-1.c: New test. > > * gcc.dg/tree-ssa/fold-xor-and-or-2.c: New test. > > * gcc.dg/tree-ssa/fold-xor-or-1.c: New test. > > * gcc.dg/tree-ssa/fold-xor-or-2.c: New test. > > > > Reviewed-by: Christoph Müllner <christoph.muell...@vrull.eu> > > Signed-off-by: Philipp Tomsich <philipp.toms...@vrull.eu> > > Signed-off-by: Konstantinos Eleftheriou < > konstantinos.elefther...@vrull.eu> > > --- > > gcc/match.pd | 30 +++++++++++++++++++ > > .../gcc.dg/tree-ssa/fold-xor-and-or-1.c | 17 +++++++++++ > > .../gcc.dg/tree-ssa/fold-xor-and-or-2.c | 19 ++++++++++++ > > gcc/testsuite/gcc.dg/tree-ssa/fold-xor-or-1.c | 17 +++++++++++ > > gcc/testsuite/gcc.dg/tree-ssa/fold-xor-or-2.c | 19 ++++++++++++ > > 5 files changed, 102 insertions(+) > > create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/fold-xor-and-or-1.c > > create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/fold-xor-and-or-2.c > > create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/fold-xor-or-1.c > > create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/fold-xor-or-2.c > > > > [...] > > --- /dev/null > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/fold-xor-and-or-2.c > > @@ -0,0 +1,19 @@ > > +/* { dg-do-compile } */ > > /* { dg-do compile } */ > > Please fix each instance of that. Thanks! > > > [...] > > sam >