gcc/libgomp/testsuite/libgomp.c-c++-common/target-1.c
Tom de Vries 92243e7cea [libgomp, testsuite] Move tests to libgomp.c-c++-common
2018-05-02  Tom de Vries  <tom@codesourcery.com>

	PR testsuite/83791
	* testsuite/libgomp.c++/udr-9.C: Update.
	* testsuite/libgomp.c++/atomic-16.C: Remove.
	* testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
	* testsuite/libgomp.c++/loop-13.C: Remove.
	* testsuite/libgomp.c++/loop-14.C: Remove.
	* testsuite/libgomp.c++/loop-15.C: Remove.
	* testsuite/libgomp.c++/monotonic-1.C: Remove.
	* testsuite/libgomp.c++/monotonic-2.C: Remove.
	* testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
	* testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
	* testsuite/libgomp.c++/ordered-1.C: Remove.
	* testsuite/libgomp.c++/pr45784.C: Remove.
	* testsuite/libgomp.c++/pr64824.C: Remove.
	* testsuite/libgomp.c++/pr64868.C: Remove.
	* testsuite/libgomp.c++/pr66199-1.C: Remove.
	* testsuite/libgomp.c++/pr66199-2.C: Remove.
	* testsuite/libgomp.c++/pr66199-3.C: Remove.
	* testsuite/libgomp.c++/pr66199-4.C: Remove.
	* testsuite/libgomp.c++/pr66199-5.C: Remove.
	* testsuite/libgomp.c++/pr66199-6.C: Remove.
	* testsuite/libgomp.c++/pr66199-7.C: Remove.
	* testsuite/libgomp.c++/pr66199-8.C: Remove.
	* testsuite/libgomp.c++/pr66199-9.C: Remove.
	* testsuite/libgomp.c++/pr69389.C: Remove.
	* testsuite/libgomp.c++/simd10.C: Remove.
	* testsuite/libgomp.c++/simd11.C: Remove.
	* testsuite/libgomp.c++/simd12.C: Remove.
	* testsuite/libgomp.c++/simd13.C: Remove.
	* testsuite/libgomp.c++/target-1.C: Remove.
	* testsuite/libgomp.c++/target-3.C: Remove.
	* testsuite/libgomp.c++/target-4.C: Remove.
	* testsuite/libgomp.c++/target-5.C: Remove.
	* testsuite/libgomp.c++/taskgroup-1.C: Remove.
	* testsuite/libgomp.c++/taskloop-1.C: Remove.
	* testsuite/libgomp.c++/taskloop-2.C: Remove.
	* testsuite/libgomp.c++/taskloop-3.C: Remove.
	* testsuite/libgomp.c++/taskloop-4.C: Remove.
	* testsuite/libgomp.c++/udr-9.C: Remove.
	* testsuite/libgomp.c++/for-10.C: Remove.
	* testsuite/libgomp.c++/for-11.C: Remove.
	* testsuite/libgomp.c++/for-12.C: Remove.
	* testsuite/libgomp.c++/for-13.C: Remove.
	* testsuite/libgomp.c++/for-14.C: Remove.
	* testsuite/libgomp.c++/for-9.C: Remove.
	* testsuite/libgomp.c/atomic-18.c: Move ...
	* testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
	* testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
	* testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
	* testsuite/libgomp.c/loop-13.c: Move ...
	* testsuite/libgomp.c-c++-common/loop-13.c: ... here.
	* testsuite/libgomp.c/loop-14.c: Move ...
	* testsuite/libgomp.c-c++-common/loop-14.c: ... here.
	* testsuite/libgomp.c/loop-15.c: Remove.
	* testsuite/libgomp.c-c++-common/loop-15.c: New test.
	* testsuite/libgomp.c/monotonic-1.c: Move ...
	* testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
	* testsuite/libgomp.c/monotonic-2.c: Move ...
	* testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
	* testsuite/libgomp.c/nonmonotonic-1.c: Move ...
	* testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
	* testsuite/libgomp.c/nonmonotonic-2.c: Move ...
	* testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
	* testsuite/libgomp.c/ordered-4.c: Move ...
	* testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
	* testsuite/libgomp.c/pr45784.c: Move ...
	* testsuite/libgomp.c-c++-common/pr45784.c: ... here.
	* testsuite/libgomp.c/pr64824.c: Move ...
	* testsuite/libgomp.c-c++-common/pr64824.c: ... here.
	* testsuite/libgomp.c/pr64868.c: Move ...
	* testsuite/libgomp.c-c++-common/pr64868.c: ... here.
	* testsuite/libgomp.c/pr66199-1.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
	* testsuite/libgomp.c/pr66199-2.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
	* testsuite/libgomp.c/pr66199-3.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
	* testsuite/libgomp.c/pr66199-4.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
	* testsuite/libgomp.c/pr66199-5.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
	* testsuite/libgomp.c/pr66199-6.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
	* testsuite/libgomp.c/pr66199-7.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
	* testsuite/libgomp.c/pr66199-8.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
	* testsuite/libgomp.c/pr66199-9.c: Move ...
	* testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
	* testsuite/libgomp.c/pr69389.c: Move ...
	* testsuite/libgomp.c-c++-common/pr69389.c: ... here.
	* testsuite/libgomp.c/simd-14.c: Move ...
	* testsuite/libgomp.c-c++-common/simd-14.c: ... here.
	* testsuite/libgomp.c/simd-15.c: Move ...
	* testsuite/libgomp.c-c++-common/simd-15.c: ... here.
	* testsuite/libgomp.c/simd-16.c: Move ...
	* testsuite/libgomp.c-c++-common/simd-16.c: ... here.
	* testsuite/libgomp.c/simd-17.c: Move ...
	* testsuite/libgomp.c-c++-common/simd-17.c: ... here.
	* testsuite/libgomp.c/target-1.c: Move ...
	* testsuite/libgomp.c-c++-common/target-1.c: ... here.
	* testsuite/libgomp.c/target-10.c: Move ...
	* testsuite/libgomp.c-c++-common/target-10.c: ... here.
	* testsuite/libgomp.c/target-13.c: Move ...
	* testsuite/libgomp.c-c++-common/target-13.c: ... here.
	* testsuite/libgomp.c/target-2.c: Move ...
	* testsuite/libgomp.c-c++-common/target-2.c: ... here.
	* testsuite/libgomp.c/taskgroup-1.c: Move ...
	* testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
	* testsuite/libgomp.c/taskloop-1.c: Move ...
	* testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
	* testsuite/libgomp.c/taskloop-2.c: Move ...
	* testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
	* testsuite/libgomp.c/taskloop-3.c: Move ...
	* testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
	* testsuite/libgomp.c/taskloop-4.c: Move ...
	* testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
	* testsuite/libgomp.c/udr-1.c: Move ...
	* testsuite/libgomp.c-c++-common/udr-1.c: ... here.
	* testsuite/libgomp.c/for-1.c: Move ...
	* testsuite/libgomp.c-c++-common/for-1.c: ... here.
	* testsuite/libgomp.c/for-1.h: Move ...
	* testsuite/libgomp.c-c++-common/for-1.h: ... here.
	* testsuite/libgomp.c/for-2.c: Move ...
	* testsuite/libgomp.c-c++-common/for-2.c: ... here.
	* testsuite/libgomp.c/for-2.h: Move ...
	* testsuite/libgomp.c-c++-common/for-2.h: ... here.
	* testsuite/libgomp.c/for-3.c: Move ...
	* testsuite/libgomp.c-c++-common/for-3.c: ... here.
	* testsuite/libgomp.c/for-4.c: Move ...
	* testsuite/libgomp.c-c++-common/for-4.c: ... here.
	* testsuite/libgomp.c/for-5.c: Move ...
	* testsuite/libgomp.c-c++-common/for-5.c: ... here.
	* testsuite/libgomp.c/for-6.c: Move ...
	* testsuite/libgomp.c-c++-common/for-6.c: ... here.

From-SVN: r259851
2018-05-02 17:53:43 +00:00

92 lines
1.7 KiB
C

extern
#ifdef __cplusplus
"C"
#endif
void abort (void);
void
fn1 (double *x, double *y, int z)
{
int i;
for (i = 0; i < z; i++)
{
x[i] = i & 31;
y[i] = (i & 63) - 30;
}
}
#pragma omp declare target
int tgtv = 6;
int
tgt (void)
{
#pragma omp atomic update
tgtv++;
return 0;
}
#pragma omp end declare target
double
fn2 (int x, int y, int z)
{
double b[1024], c[1024], s = 0;
int i, j;
fn1 (b, c, x);
#pragma omp target data map(to: b)
{
#pragma omp target map(tofrom: c, s)
#pragma omp teams num_teams(y) thread_limit(z) reduction(+:s) firstprivate(x)
#pragma omp distribute dist_schedule(static, 4) collapse(1)
for (j=0; j < x; j += y)
#pragma omp parallel for reduction(+:s)
for (i = j; i < j + y; i++)
tgt (), s += b[i] * c[i];
#pragma omp target update from(b, tgtv)
}
return s;
}
double
fn3 (int x)
{
double b[1024], c[1024], s = 0;
int i;
fn1 (b, c, x);
#pragma omp target map(to: b, c) map(tofrom:s)
#pragma omp parallel for reduction(+:s)
for (i = 0; i < x; i++)
tgt (), s += b[i] * c[i];
return s;
}
double
fn4 (int x, double *p)
{
double b[1024], c[1024], d[1024], s = 0;
int i;
fn1 (b, c, x);
fn1 (d + x, p + x, x);
#pragma omp target map(to: b, c[0:x], d[x:x]) map(to:p[x:64 + (x & 31)]) \
map(tofrom: s)
#pragma omp parallel for reduction(+:s)
for (i = 0; i < x; i++)
s += b[i] * c[i] + d[x + i] + p[x + i];
return s;
}
int
main ()
{
double a = fn2 (128, 4, 6);
int b = tgtv;
double c = fn3 (61);
#pragma omp target update from(tgtv)
int d = tgtv;
double e[1024];
double f = fn4 (64, e);
if (a != 13888.0 || b != 6 + 128 || c != 4062.0 || d != 6 + 128 + 61
|| f != 8032.0)
abort ();
return 0;
}