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.

Reply via email to