/* { dg-do compile } */ | |
double a[1024]; | |
int bar(); | |
void foo (int n) | |
{ | |
double x = 0, y = 0; | |
int i = 1023; | |
do | |
{ | |
x += a[i] + a[i+1]; | |
y += a[i] / a[i+1]; | |
if (bar ()) | |
break; | |
} | |
while (--i); | |
/* We want to avoid vectorizing the LC PHI and insert vector CTORs | |
inside of the loop where it is only needed here. */ | |
a[0] = x; | |
a[1] = y; | |
} | |
/* { dg-final { scan-tree-dump-not "vectorizing SLP node starting from: ._\[0-9\]+ = PHI" "slp1" } } */ |