mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-03 10:49:58 +00:00
56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
/* Test large vector lengths. */
|
|
|
|
#include <assert.h>
|
|
|
|
#define n 10000
|
|
int a1[n], a2[n];
|
|
|
|
#define gentest(name, outer, inner) \
|
|
void name () \
|
|
{ \
|
|
long i, j, t1, t2, t3; \
|
|
_Pragma(outer) \
|
|
for (i = 0; i < n; i++) \
|
|
{ \
|
|
t1 = 0; \
|
|
t2 = 0; \
|
|
_Pragma(inner) \
|
|
for (j = i; j < n; j++) \
|
|
{ \
|
|
t1++; \
|
|
t2--; \
|
|
} \
|
|
a1[i] = t1; \
|
|
a2[i] = t2; \
|
|
} \
|
|
for (i = 0; i < n; i++) \
|
|
{ \
|
|
assert (a1[i] == n-i); \
|
|
assert (a2[i] == -(n-i)); \
|
|
} \
|
|
} \
|
|
|
|
gentest (test1, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)",
|
|
"acc loop vector reduction(+:t1) reduction(-:t2)")
|
|
|
|
gentest (test2, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)",
|
|
"acc loop worker vector reduction(+:t1) reduction(-:t2)")
|
|
|
|
gentest (test3, "acc parallel loop gang worker vector_length (128) firstprivate (t1, t2)",
|
|
"acc loop vector reduction(+:t1) reduction(-:t2)")
|
|
|
|
gentest (test4, "acc parallel loop firstprivate (t1, t2)",
|
|
"acc loop reduction(+:t1) reduction(-:t2)")
|
|
|
|
|
|
int
|
|
main ()
|
|
{
|
|
test1 ();
|
|
test2 ();
|
|
test3 ();
|
|
test4 ();
|
|
|
|
return 0;
|
|
}
|