tree-optimization/103514 Missing XOR-EQ-AND Optimization
authorNavid Rahimi <navidrahimi@microsoft.com>
Fri, 28 Jan 2022 22:11:30 +0000 (17:11 -0500)
committerJeff Law <jeffreyalaw@gmail.com>
Fri, 28 Jan 2022 22:13:08 +0000 (17:13 -0500)
commitcb3ac1985a5332fa811a62844adb33ca140bd4ba
treee8b109bf7cac75e22a362e7c3550d0b66e898f58
parent5d8b422818714737bd61d1667461efce96687073
tree-optimization/103514 Missing XOR-EQ-AND Optimization

This patch will add the missed pattern described in bug 103514 [1] to the match.pd. [1] includes proof of correctness for the patch too.

1) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103514

gcc/
PR tree-optimization/103514
* match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
(a & b) == (a ^ b) -> !(a | b): New optimization.

gcc/testsuite
* gcc.dg/tree-ssa/pr103514.c: Testcase for this optimization.
gcc/match.pd
gcc/testsuite/gcc.dg/tree-ssa/pr103514.c [new file with mode: 0644]