1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_double } */
3
4 double x[1024];
5
6 void foo (double *p)
7 {
8 x[0] = 1.;
9 x[1] = 2.;
10 *p = 7.; // aliasing store
11 x[0] = x[0] + 1;
12 x[1] = x[1] + 1;
13 *p = 8.; // aliasing store
14 x[1] = x[1] + 1;
15 x[0] = x[0] + 1;
16 }
17
18 /* See that we vectorize three SLP instances. */
19 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "slp2" { target { ! s390*-*-* } } } } */
20 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 5 "slp2" { target { s390*-*-* } } } } */