1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_load_lanes } */
3 
4 struct s { int x[100]; };
5 
6 void
f(struct s * s1,int a,int b)7 f (struct s *s1, int a, int b)
8 {
9   for (int i = 0; i < 32; ++i)
10     s1->x[a + i] = s1->x[b + i * 2] + s1->x[b + i * 3];
11 }
12 
13 /* { dg-final { scan-tree-dump {flags: *[^\n]*MIXED_STEPS} "vect" } } */
14 /* { dg-final { scan-tree-dump "using an address-based overlap test" "vect" } } */
15 /* { dg-final { scan-tree-dump-not "using an index-based" "vect" } } */
16