Forgot to add test files for doacross and task priority.

llvm-svn: 262533
This commit is contained in:
Jonathan Peyton 2016-03-02 22:43:14 +00:00
parent 71909c57ca
commit a0d7a2cd3f
2 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,22 @@
// RUN: %libomp-compile && env OMP_MAX_TASK_PRIORITY=42 %libomp-run
// Test OMP 4.5 task priorities
// Currently only API function and envirable parsing implemented.
// Test environment sets envirable: OMP_MAX_TASK_PRIORITY=42 as tested below.
#include <stdio.h>
#include <omp.h>
int main (void) {
int passed;
passed = (omp_get_max_task_priority() == 42);
printf("Got %d\n", omp_get_max_task_priority());
if (passed) {
printf("passed\n");
return 0;
}
printf("failed\n");
return 1;
}

View File

@ -0,0 +1,56 @@
// RUN: %libomp-compile-and-run
#include <stdio.h>
#define N 1000
struct dim {
long long lo; // lower
long long up; // upper
long long st; // stride
};
extern void __kmpc_doacross_init(void*, int, int, struct dim *);
extern void __kmpc_doacross_wait(void*, int, long long*);
extern void __kmpc_doacross_post(void*, int, long long*);
extern void __kmpc_doacross_fini(void*, int);
extern int __kmpc_global_thread_num(void*);
int main()
{
int i;
int iter[N];
struct dim dims;
for( i = 0; i < N; ++i )
iter[i] = 1;
dims.lo = 1;
dims.up = N-1;
dims.st = 1;
#pragma omp parallel
{
int i, gtid;
long long vec;
gtid = __kmpc_global_thread_num(NULL);
__kmpc_doacross_init(NULL,gtid,1,&dims); // thread starts the loop
#pragma omp for nowait schedule(dynamic)
for( i = 1; i < N; ++i )
{
// runtime call corresponding to #pragma omp ordered depend(sink:i-1)
vec=i-1;
__kmpc_doacross_wait(NULL,gtid,&vec);
// user's code
iter[i] = iter[i-1] + 1;
// runtime call corresponding to #pragma omp ordered depend(source)
vec=i;
__kmpc_doacross_post(NULL,gtid,&vec);
}
// thread finishes the loop (should be before the loop barrier)
__kmpc_doacross_fini(NULL,gtid);
}
if( iter[N-1] == N ) {
printf("passed\n");
} else {
printf("failed %d != %d\n", iter[N-1], N);
return 1;
}
return 0;
}