On Tue, Nov 16, 2021 at 11:51 PM Navid Rahimi via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > Hi GCC community, > > This patch will add the missed pattern described in bug 102232 [1] to the > match.pd. > > Tree-optimization/96779: Adding new optimization to match.pd: > > * match.pd (-x == x) -> (x == 0): New optimization. > * gcc.dg/tree-ssa/pr96779.c: testcase for this optimization. > * gcc.dg/tree-ssa/pr96779-disabled.c: testcase for this > optimization when -fwrapv passed. > > 1) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96779
+/* -x == x -> x == 0 */ +(for cmp (eq ne) + (simplify + (cmp:c @0 (negate @0)) + (if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) + && !TYPE_OVERFLOW_WRAPS (type)) you need to check TYPE_OVERFLOW_WRAPS on TREE_TYPE (@0), otherwise you check on boolean. + (cmp:c @0 { build_zero_cst (TREE_TYPE(@0)); })))) + no need for :c on the result pattern. Otherwise it looks OK, but how did you check the patch? Thanks, Richard. > Best wishes, > Navid.