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