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

--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> So maybe finally a testcase where that SCEV analysis did sth useful...
> 
> x86_64 testcase should be possible with changing the datatype to double?

Yep.

This fails to vectorize with -O2 -ftree-slp-vectorize:
....
double p[1000] __attribute__((aligned(8)));
double p2[1000] __attribute__((aligned(8)));

void __attribute__((noinline, noclone))
foo ()
{
  double a, b;

  unsigned int i;
  for (i = 0; i < 1000; i += 2)
    {
      a = p[i];
      b = p[i+1];

      p2[i] = a;
      p2[i+1] = b;
    }
}
...

Changing 'i' to type int allows it to be vectorized.

Reply via email to