https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66739

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
I am testing

Index: gcc/match.pd
===================================================================
--- gcc/match.pd        (revision 225453)
+++ gcc/match.pd        (working copy)
@@ -1336,8 +1353,9 @@ (define_operator_list CBRT BUILT_IN_CBRT
    attempts to synthetize ABS_EXPR.  */
 (for cmp (eq ne)
  (simplify
-  (cmp (minus @0 @1) integer_zerop)
-  (cmp @0 @1)))
+  (cmp (minus@2 @0 @1) integer_zerop)
+  (if (single_use (@2))
+   (cmp @0 @1))))

 /* Transform comparisons of the form X * C1 CMP 0 to X CMP 0 in the
    signed arithmetic case.  That form is created by the compiler

Reply via email to