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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
      Known to work|                            |4.8.5, 5.5.0
   Target Milestone|---                         |7.5
            Summary|Wrong loop distribution     |[7/8/9/10 Regression] Wrong
                   |with aliasing               |loop distribution with
                   |                            |aliasing
      Known to fail|                            |6.5.0, 8.3.0

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Note vectorization also "breaks" it at -O2 -ftree-vectorize.  

void g(int*__restrict x, int*y){*x=*y;}
void __attribute__((noipa)) f(int* a,int* b)
{
  for(int i=0;i<1024;++i)
    g(a+i,b+i);
}
int main()
{
  int x[1025];
  for (int i = 0; i < 1025; ++i)
    x[i] = i+1;
  f(x+1, x);
  for (int i = 0; i < 1025; ++i)
    if (x[i] != 1)
      __builtin_abort ();
  return 0;
}

Reply via email to