/* { dg-do compile } */ | |
/* { dg-options "-O2 -ftree-loop-distribution -fdump-tree-ldist-all" } */ | |
int foo (int * __restrict__ ia, | |
int * __restrict__ ib, | |
int * __restrict__ oxa, | |
int * __restrict__ oxb) | |
{ | |
int i; | |
int oya[52], oyb[52]; | |
for (i=0; i < 52; i++) | |
{ | |
oya[i] = (ia[i] * oxa[i]) >> 10; | |
oyb[i] = (ib[i] * oxb[i]) >> 10; | |
} | |
return oya[22] + oyb[21]; | |
} | |
/* Distributing the loop doesn't expose more parallelism. */ | |
/* { dg-final { scan-tree-dump-times "distributed: split to 2 loops" 0 "ldist" } } */ |