https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105983
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:9642d07c35f14b9917cd115e8a9f0210fbcdcf4f commit r13-1134-g9642d07c35f14b9917cd115e8a9f0210fbcdcf4f Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Jun 16 14:37:06 2022 +0200 match.pd: Improve y == MIN || x < y optimization [PR105983] On the following testcase, we only optimize bar where this optimization is performed at GENERIC folding time, but on GIMPLE it doesn't trigger anymore, as we actually don't see (bit_and (ne @1 min_value) (ge @0 @1)) but (bit_and (ne @1 min_value) (le @1 @0)) genmatch handles :c modifier not just on commutative operations, but also comparisons and in that case it means it swaps the comparison. 2022-06-16 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/105983 * match.pd (y == XXX_MIN || x < y -> x <= y - 1, y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s on non-equality comparisons. * gcc.dg/tree-ssa/pr105983.c: New test.