blob: f637fd3d760cc2b539765de10a67941fa0dd1071 [file] [log] [blame]
#ifndef VARS
#define VARS
int a[1500];
float b[10][15][10];
__attribute__((noreturn)) void
noreturn (void)
{
for (;;);
}
#endif
#ifndef SC
#define SC
#endif
#ifndef OMPTGT
#define OMPTGT
#endif
#ifndef OMPTEAMS
#define OMPTEAMS
#endif
#ifndef OMPTO
#define OMPTO(v) do {} while (0)
#endif
#ifndef OMPFROM
#define OMPFROM(v) do {} while (0)
#endif
#ifndef CONDNE
__attribute__((noinline, noclone)) void
N(f0) (void)
{
int i;
OMPTGT
#pragma omp F S
for (i = 0; i < 1500; i++)
a[i] += 2;
}
__attribute__((noinline, noclone)) void
N(f1) (void)
{
OMPTGT
#pragma omp F S
for (unsigned int i = __INT_MAX__; i < 3000U + __INT_MAX__; i += 2)
a[(i - __INT_MAX__) >> 1] -= 2;
}
__attribute__((noinline, noclone)) void
N(f2) (void)
{
unsigned long long i;
OMPTGT
#pragma omp F S
for (i = __LONG_LONG_MAX__ + 4500ULL - 27;
i > __LONG_LONG_MAX__ - 27ULL; i -= 3)
a[(i + 26LL - __LONG_LONG_MAX__) / 3] -= 4;
}
__attribute__((noinline, noclone)) void
N(f3) (long long n1, long long n2, long long s3)
{
OMPTGT
#pragma omp F S
for (long long i = n1 + 23; i > n2 - 25; i -= s3)
a[i + 48] += 7;
}
__attribute__((noinline, noclone)) void
N(f4) (void)
{
unsigned int i;
OMPTGT
#pragma omp F S
for (i = 30; i < 20; i += 2)
a[i] += 10;
}
__attribute__((noinline, noclone)) void
N(f5) (int n11, int n12, int n21, int n22, int n31, int n32,
int s1, int s2, int s3)
{
SC int v1, v2, v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = n11; v1 < n12; v1 += s1)
for (v2 = n21; v2 < n22; v2 += s2)
for (v3 = n31; v3 < n32; v3 += s3)
b[v1][v2][v3] += 2.5;
}
__attribute__((noinline, noclone)) void
N(f6) (int n11, int n12, int n21, int n22, long long n31, long long n32,
int s1, int s2, long long int s3)
{
SC int v1, v2;
SC long long v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = n11; v1 > n12; v1 += s1)
for (v2 = n21; v2 > n22; v2 += s2)
for (v3 = n31; v3 > n32; v3 += s3)
b[v1][v2 / 2][v3] -= 4.5;
}
__attribute__((noinline, noclone)) void
N(f7) (void)
{
SC unsigned int v1, v3;
SC unsigned long long v2;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = 0; v1 < 20; v1 += 2)
for (v2 = __LONG_LONG_MAX__ + 16ULL;
v2 > __LONG_LONG_MAX__ - 29ULL; v2 -= 3)
for (v3 = 10; v3 > 0; v3--)
b[v1 >> 1][(v2 - __LONG_LONG_MAX__ + 64) / 3 - 12][v3 - 1] += 5.5;
}
__attribute__((noinline, noclone)) void
N(f8) (void)
{
SC long long v1, v2, v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = 0; v1 < 20; v1 += 2)
for (v2 = 30; v2 < 20; v2++)
for (v3 = 10; v3 < 0; v3--)
b[v1][v2][v3] += 5.5;
}
__attribute__((noinline, noclone)) void
N(f9) (void)
{
int i;
OMPTGT
#pragma omp F S
for (i = 20; i < 10; i++)
{
a[i] += 2;
noreturn ();
a[i] -= 4;
}
}
__attribute__((noinline, noclone)) void
N(f10) (void)
{
SC int i;
OMPTGT
#pragma omp F S collapse(3)
for (i = 0; i < 10; i++)
for (int j = 10; j < 8; j++)
for (long k = -10; k < 10; k++)
{
b[i][j][k] += 4;
noreturn ();
b[i][j][k] -= 8;
}
}
__attribute__((noinline, noclone)) void
N(f11) (int n)
{
int i;
OMPTGT
#pragma omp F S
for (i = 20; i < n; i++)
{
a[i] += 8;
noreturn ();
a[i] -= 16;
}
}
__attribute__((noinline, noclone)) void
N(f12) (int n)
{
SC int i;
OMPTGT
#pragma omp F S collapse(3)
for (i = 0; i < 10; i++)
for (int j = n; j < 8; j++)
for (long k = -10; k < 10; k++)
{
b[i][j][k] += 16;
noreturn ();
b[i][j][k] -= 32;
}
}
__attribute__((noinline, noclone)) void
N(f13) (void)
{
int *i;
OMPTGT
#pragma omp F S
for (i = a; i < &a[1500]; i++)
i[0] += 2;
}
__attribute__((noinline, noclone)) void
N(f14) (void)
{
SC float *i;
OMPTGT
#pragma omp F S collapse(3)
for (i = &b[0][0][0]; i < &b[0][0][10]; i++)
for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
for (float *k = &b[0][0][10]; k > &b[0][0][0]; --k)
b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
-= 3.5;
}
__attribute__((noinline, noclone)) int
N(test) (void)
{
int i, j, k;
for (i = 0; i < 1500; i++)
a[i] = i - 25;
OMPTO (a);
OMPTEAMS
N(f0) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 23)
return 1;
OMPTEAMS
N(f1) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 25)
return 1;
OMPTEAMS
N(f2) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 29)
return 1;
OMPTEAMS
N(f3) (1500LL - 1 - 23 - 48, -1LL + 25 - 48, 1LL);
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
OMPTEAMS
N(f3) (1500LL - 1 - 23 - 48, 1500LL - 1, 7LL);
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
OMPTEAMS
N(f4) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
OMPTO (b);
OMPTEAMS
N(f5) (0, 10, 0, 15, 0, 10, 1, 1, 1);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f5) (0, 10, 30, 15, 0, 10, 4, 5, 6);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f6) (9, -1, 29, 0, 9, -1, -1, -2, -1);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f7) ();
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f8) ();
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f9) ();
OMPTEAMS
N(f10) ();
OMPTEAMS
N(f11) (10);
OMPTEAMS
N(f12) (12);
OMPFROM (a);
OMPFROM (b);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f13) ();
OMPTEAMS
N(f14) ();
OMPFROM (a);
OMPFROM (b);
for (i = 0; i < 1500; i++)
if (a[i] != i - 20)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
return 1;
return 0;
}
#else
__attribute__((noinline, noclone)) void
N(f20) (void)
{
int i;
OMPTGT
#pragma omp F S
for (i = 0; i != 1500; i++)
a[i] += 2;
}
__attribute__((noinline, noclone)) void
N(f21) (void)
{
OMPTGT
#pragma omp F S
for (unsigned int i = __INT_MAX__; i < 1500U + __INT_MAX__; i += 2 - 1)
a[(i - __INT_MAX__)] -= 2;
}
__attribute__((noinline, noclone)) void
N(f22) (void)
{
unsigned long long i;
OMPTGT
#pragma omp F S
for (i = __LONG_LONG_MAX__ + 1500ULL - 27;
i != __LONG_LONG_MAX__ - 27ULL; i -= 3 - 2)
a[i + 26LL - __LONG_LONG_MAX__] -= 4;
}
__attribute__((noinline, noclone)) void
N(f23) (long long n1, long long n2)
{
OMPTGT
#pragma omp F S
for (long long i = n1 + 23; i != n2 - 25; --i)
a[i + 48] += 7;
}
__attribute__((noinline, noclone)) void
N(f24) (void)
{
unsigned int i;
OMPTGT
#pragma omp F S
for (i = 30; i != 30; i += 1)
a[i] += 10;
}
__attribute__((noinline, noclone)) void
N(f25) (int n11, int n12, int n21, int n22, int n31, int n32,
int s2)
{
SC int v1, v2, v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = n11; v1 != n12; v1 += 17 - 19 + 3)
for (v2 = n21; v2 < n22; v2 += s2)
for (v3 = n31; v3 != n32; ++v3)
b[v1][v2][v3] += 2.5;
}
__attribute__((noinline, noclone)) void
N(f26) (int n11, int n12, int n21, int n22, long long n31, long long n32,
int s2)
{
SC int v1, v2;
SC long long v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = n11; v1 != n12; v1 += -1)
for (v2 = n21; v2 > n22; v2 += s2)
for (v3 = n31; v3 != n32; v3 --)
b[v1][v2 / 2][v3] -= 4.5;
}
__attribute__((noinline, noclone)) void
N(f27) (void)
{
SC unsigned int v1, v3;
SC unsigned long long v2;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = 0; v1 < 20; v1 += 2)
for (v2 = __LONG_LONG_MAX__ + 11ULL;
v2 != __LONG_LONG_MAX__ - 4ULL; -- v2)
for (v3 = 10; v3 != 0; v3--)
b[v1 >> 1][v2 - __LONG_LONG_MAX__ + 3][v3 - 1] += 5.5;
}
__attribute__((noinline, noclone)) void
N(f28) (void)
{
SC long long v1, v2, v3;
OMPTGT
#pragma omp F S collapse(3)
for (v1 = 0; v1 != 20; v1 -= 17 - 18)
for (v2 = 30; v2 < 20; v2++)
for (v3 = 10; v3 < 0; v3--)
b[v1][v2][v3] += 5.5;
}
__attribute__((noinline, noclone)) void
N(f29) (void)
{
int i;
OMPTGT
#pragma omp F S
for (i = 20; i != 20; i++)
{
a[i] += 2;
noreturn ();
a[i] -= 4;
}
}
__attribute__((noinline, noclone)) void
N(f30) (void)
{
SC int i;
OMPTGT
#pragma omp F S collapse(3)
for (i = 0; i != 10; i++)
for (int j = 10; j < 8; j++)
for (long k = -10; k != 10; k++)
{
b[i][j][k] += 4;
noreturn ();
b[i][j][k] -= 8;
}
}
__attribute__((noinline, noclone)) void
N(f31) (int n)
{
int i;
OMPTGT
#pragma omp F S
for (i = 20; i != n; i++)
{
a[i] += 8;
noreturn ();
a[i] -= 16;
}
}
__attribute__((noinline, noclone)) void
N(f32) (int n)
{
SC int i;
OMPTGT
#pragma omp F S collapse(3)
for (i = 0; i != 10; i++)
for (int j = n; j != 12; j++)
for (long k = -10; k != 10; k++)
{
b[i][j][k] += 16;
noreturn ();
b[i][j][k] -= 32;
}
}
__attribute__((noinline, noclone)) void
N(f33) (void)
{
int *i;
OMPTGT
#pragma omp F S
for (i = a; i != &a[1500]; i++)
i[0] += 2;
}
__attribute__((noinline, noclone)) void
N(f34) (void)
{
SC float *i;
OMPTGT
#pragma omp F S collapse(3)
for (i = &b[0][0][0]; i != &b[0][0][10]; i++)
for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
for (float *k = &b[0][0][10]; k != &b[0][0][0]; --k)
b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
-= 3.5;
}
__attribute__((noinline, noclone)) int
N(test) (void)
{
int i, j, k;
for (i = 0; i < 1500; i++)
a[i] = i - 25;
OMPTO (a);
OMPTEAMS
N(f20) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 23)
return 1;
OMPTEAMS
N(f21) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 25)
return 1;
OMPTEAMS
N(f22) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 29)
return 1;
OMPTEAMS
N(f23) (1500LL - 1 - 23 - 48, -1LL + 25 - 48);
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
OMPTEAMS
N(f24) ();
OMPFROM (a);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
OMPTO (b);
OMPTEAMS
N(f25) (0, 10, 0, 15, 0, 10, 1);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f25) (0, 10, 30, 15, 0, 10, 5);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f26) (9, -1, 29, 0, 9, -1, -2);
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f27) ();
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f28) ();
OMPFROM (b);
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f29) ();
OMPTEAMS
N(f30) ();
OMPTEAMS
N(f31) (20);
OMPTEAMS
N(f32) (12);
OMPFROM (a);
OMPFROM (b);
for (i = 0; i < 1500; i++)
if (a[i] != i - 22)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
return 1;
OMPTEAMS
N(f33) ();
OMPTEAMS
N(f34) ();
OMPFROM (a);
OMPFROM (b);
for (i = 0; i < 1500; i++)
if (a[i] != i - 20)
return 1;
for (i = 0; i < 10; i++)
for (j = 0; j < 15; j++)
for (k = 0; k < 10; k++)
if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
return 1;
return 0;
}
#endif