blob: dc5704f5607fc94fd02036e5db4a9bd37ce5169b [file] [log] [blame]
/* { dg-options "-O3 -fno-vect-cost-model" } */
struct {
float real;
float img;
} g[11];
float __attribute__ ((noclone))
foo_11 (void)
{
float sum = 0.0;
for (int i = 0; i < 11; ++i)
sum += g[i].real;
return sum;
}
float __attribute__ ((noclone))
foo_10 (void)
{
float sum = 0.0;
for (int i = 0; i < 10; ++i)
sum += g[i].real;
return sum;
}
int main (void)
{
float check_10 = 0.0;
float check_11 = 0.0;
for (int i = 0; i < 11; ++i)
{
asm volatile ("" : : : "memory");
g[i].real = (float) i;
g[i].img = (float) -i;
if (i < 10)
check_10 += (float) i;
check_11 += (float) i;
}
if (foo_10 () != check_10)
__builtin_abort ();
if (foo_11 () != check_11)
__builtin_abort ();
return 0;
}