[Bug middle-end/28545] [4.1 Regression] Wrong code for hoisted multiplication

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Oct 14 10:19:00 GMT 2006



------- Comment #8 from rguenth at gcc dot gnu dot org  2006-10-14 10:18 -------
Confirmed.  Reduced testcase, -O -ftree-vrp

int solver_set(int);

void solver(int c, int r, char *number)
{
  int cr = c*r;
  int x, y, x2, y2, n, ret;

  for (x = 0; x < cr; x++)
    for (y = 0; y < r; y++)
      for (n = 1; n <= cr; n++)
        ;

  for (x = 0; x < cr; x += r)
    for (y = 0; y < r; y++)
      ret = solver_set(r*cr);

  for (y = 0; y < cr; y++)
    ret = solver_set(cr*cr);

  for (x = 0; x < cr; x++)
    ret = solver_set(cr);

  for (n = 1; n <= cr; n++)
    ret = solver_set(cr*cr);

  for (y = 0; y+1 < cr; y++)
    for (x = 0; x+1 < cr; x++)
      for (y2 = y+1; y2 < cr; y2++)
        for (x2 = x+1; x2 < cr; x2++)
          if (x/r == x2/r && y%r == y2%r)
            continue;

  for (y = 0; y < cr; y++)
    for (x = 0; x < cr; x++) {
      for (n = 1; n <= cr; n++)
        ;
      __builtin_memset(number, cr+1, cr*cr);
    }
}

shows the failure in the t36.vrp1 dump.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-10-14 10:18:53
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28545



More information about the Gcc-bugs mailing list