/* { dg-do compile } */ /* { dg-require-effective-target vect_double } */ double x[1024]; void foo (double *p) { x[0] = 1.; x[1] = 2.; *p = 7.; // aliasing store x[0] = x[0] + 1; x[1] = x[1] + 1; *p = 8.; // aliasing store x[1] = x[1] + 1; x[0] = x[0] + 1; } /* See that we vectorize three SLP instances. */ /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "slp2" } } */