| /* { 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" { target { ! s390*-*-* } } } } */ |
| /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 5 "slp2" { target { s390*-*-* } } } } */ |