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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-bisection
     Ever confirmed|0                           |1
                 CC|                            |rguenth at gcc dot gnu.org
   Target Milestone|---                         |13.0
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2023-02-14

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
reassoc1 does

   <bb 3> [local count: 966367643]:
   # a_4(ab) = PHI <x_9(D)(2), a_5(ab)(4)>
+  _14 = a_4(ab) != 0;
   foo (x_9(D), y_12(D));
   goto <bb 5>; [99.96%]

@@ -36,8 +59,7 @@
   <bb 5> [local count: 1073312329]:
   _1 = y_12(D) != 0;
   _2 = a_4(ab) != 0;
-  _3 = _1 & _2;
-  _10 = _2 & _3;
+  _10 = _14 & _1;
   _15 = (int) _10;
   return _15;

Confirmed.  It also inserts a new use of a_4(ab) which we try to generally
avoid
(but in this specific case it shouldn't be a problem).

Not sure why reassoc expands _2 and re-emits the _14 definition here.

Reply via email to