Retro68/gcc/libgomp/testsuite/libgomp.c-c++-common/loop-14.c
Wolfgang Thaller 6fbf4226da gcc-9.1
2019-06-20 20:10:10 +02:00

254 lines
6.5 KiB
C

/* { dg-do run } */
volatile int ji = 100, ki = 2;
volatile unsigned int ju = 100, ku = 2;
volatile long long int jll = 100, kll = 2;
volatile unsigned long long int jull = 100, kull = 2;
unsigned long long l;
void
f0 (void)
{
int i, j, k;
unsigned int j2, k2;
#pragma omp for reduction(+: l) schedule(static, 2)
for (i = ji; i < ki; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) schedule(static, 2)
for (i = ji; i < ki; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ji; i < ki; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ji; i < ki; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = ji; i < ki; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = ji; i < ki; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ji; i < ki; i++)
for (k = ki + 10; k < ji - 10; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = ki + 10; j < ji - 10; j++)
for (i = ji; i < ki; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
}
void
f1 (void)
{
unsigned int i, j, k;
int j2, k2;
#pragma omp for reduction(+: l) schedule(static, 2)
for (i = ju; i < ku; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) schedule(static, 2)
for (i = ju; i < ku; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ju; i < ku; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ju; i < ku; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = ju; i < ku; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = ju; i < ku; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = ju; i < ku; i++)
for (k = ku; k < ju; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = ku; j < ju; j++)
for (i = ju; i < ku; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
}
void
f2 (void)
{
long long int i, j, k;
unsigned long long int j2, k2;
#pragma omp for reduction(+: l) schedule(static, 2)
for (i = jll; i < kll; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) schedule(static, 2)
for (i = jll; i < kll; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jll; i < kll; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jll; i < kll; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = jll; i < kll; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = jll; i < kll; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jll; i < kll; i++)
for (k = kll; k < jll; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = kll; j < jll; j++)
for (i = jll; i < kll; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
}
void
f3 (void)
{
unsigned long long int i, j, k;
long long int j2, k2;
#pragma omp for reduction(+: l) schedule(static, 2)
for (i = jull; i < kull; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) schedule(static, 2)
for (i = jull; i < kull; i++)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jull; i < kull; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jull; i < kull; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = jull; i < kull; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j2 = 0; j2 < 4; j2++)
for (i = jull; i < kull; i++)
for (k2 = 0; k2 < 5; k2 += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = 0; j < 4; j++)
for (i = jull; i < kull; i++)
for (k = kull; k < jull; k += 2)
l++;
if (l != 0)
__builtin_abort ();
#pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2)
for (j = kull; j < jull; j++)
for (i = jull; i < kull; i++)
for (k = 0; k < 5; k += 2)
l++;
if (l != 0)
__builtin_abort ();
}
int
main ()
{
f0 ();
f1 ();
f2 ();
f3 ();
return 0;
}