| /* { dg-do compile } */ |
| /* { dg-require-effective-target vect_int } */ |
| |
| #include "tree-vect.h" |
| |
| int a[1020]; |
| |
| void __attribute__((noinline)) |
| foo () |
| { |
| for (int i = 0; i < 1020; i += 5) |
| { |
| a[i] = i; |
| a[i+1] = i; |
| a[i+2] = i; |
| a[i+3] = i; |
| a[i+4] = i; |
| } |
| } |
| |
| int main () |
| { |
| check_vect (); |
| |
| foo (); |
| |
| /* check results */ |
| for (int i = 0; i < 1020; ++i) |
| if (a[i] != ((i + 4) / 5) * 5) |
| abort (); |
| |
| return 0; |
| } |
| |
| /* Make sure we are not triggering hybrid SLP due to the IV update. */ |
| /* { dg-final { scan-tree-dump "Loop contains only SLP stmts" "vect" } } */ |
| /* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */ |