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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
                 CC|                            |amacleod at redhat dot com

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
It works with -fno-tree-loop-optimize but the difference from loop opts is just

 int main ()
 {
   int D.2782;
   int b_lsm.13;
   int a_lsm.12;
   char c;
-  unsigned char c.6_2;
-  unsigned char _3;
   int iftmp.1_11;
   int _12(D);
   int iftmp.1_15;
+  unsigned char ivtmp_36;
+  unsigned char ivtmp_37;
   int _38;
   long int _39;
   long int _40;
@@ -23,8 +21,8 @@
   <bb 2> [local count: 10737416]:

   <bb 3> [local count: 1063004409]:
-  # c_21 = PHI <c_18(5), 0(2)>
   # a_lsm.12_4 = PHI <iftmp.1_11(5), 0(2)>
+  # ivtmp_37 = PHI <ivtmp_36(5), 253(2)>
   if (a_lsm.12_4 != 0)
     goto <bb 4>; [50.00%]
   else
@@ -35,10 +33,8 @@

   <bb 5> [local count: 1063004409]:
   # iftmp.1_11 = PHI <iftmp.1_15(4), 2(3)>
-  c.6_2 = (unsigned char) c_21;
-  _3 = c.6_2 + 1;
-  c_18 = (char) _3;
-  if (c_18 != -3)
+  ivtmp_36 = ivtmp_37 - 1;
+  if (ivtmp_36 != 0)
     goto <bb 3>; [98.99%]
   else

with that indeed threadfull2 miscompiles this somehow.  Andrew?

Reply via email to