| /* { dg-require-effective-target vect_int } */ |
| |
| #include "tree-vect.h" |
| |
| #define M 10 |
| #define N 3 |
| |
| void __attribute__((noinline)) |
| foo (int n, int *ub, int *uc) |
| { |
| int i, j, tmp1; |
| |
| for (i = 0; i < n; i++) |
| { |
| tmp1 = 0; |
| for (j = 0; j < M; j++) |
| { |
| tmp1 += uc[i] * ((int)(j << N) / M); |
| } |
| ub[i] = tmp1; |
| } |
| } |
| |
| int main() |
| { |
| int uc[16], ub[16]; |
| check_vect (); |
| foo (16, uc, ub); |
| return 0; |
| } |
| |
| /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_int_mult } } } */ |
| /* { dg-final { cleanup-tree-dump "vect" } } */ |