https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106379
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:375668e0508fbe173af1ed519d8ae2b79f388d94 commit r13-1779-g375668e0508fbe173af1ed519d8ae2b79f388d94 Author: Richard Biener <rguent...@suse.de> Date: Thu Jul 21 13:20:47 2022 +0200 tree-optimization/106379 - add missing ~(a ^ b) folding for _Bool The following makes sure to fold ~(a ^ b) to a == b for truth values (but not vectors, we'd have to check for vector support of equality). That turns the PR106379 testcase into a ranger one. Note that while we arrive at ~(a ^ b) in a convoluted way from original !a == !b one can eventually write the expression this way directly as well. PR tree-optimization/106379 * match.pd (~(a ^ b) -> a == b): New pattern. * gcc.dg/pr106379-1.c: New testcase.