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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|tree-optimization           |rtl-optimization

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
What PRE does is OK.  In fact this looks like it goes wrong somewhere on RTL
(or 
during expansion).

@@ -19,17 +356,18 @@
   e_7 = 1 << _1;
   _9 = g_5(D) & e_7;
   if (_9 != 0)
-    goto <bb 3>; [48.89%]
+    goto <bb 4>; [48.89%]
   else
-    goto <bb 4>; [51.11%]
+    goto <bb 3>; [51.11%]

-  <bb 3> [local count: 524952376]:
+  <bb 3> [local count: 548789448]:
+  _14 = g_5(D) + 5;

   <bb 4> [local count: 1073741824]:
   # RANGE [irange] int [0, 0][5, 5] MASK 0x5 VALUE 0x0
-  # _10 = PHI <5(2), 0(3)>
-  _2 = g_5(D) + _10;
-  _3 = _2 + g_5(D);
+  # _10 = PHI <5(3), 0(2)>
+  # prephitmp_15 = PHI <_14(3), g_5(D)(2)>
+  _3 = g_5(D) + prephitmp_15;
   # RANGE [irange] int [0, 1] MASK 0x1 VALUE 0x0
   _4 = _3 & 1;
   if (_4 == 0)

Reply via email to