diff options
author | Jim Cownie <james.h.cownie@intel.com> | 2014-05-10 17:02:09 +0000 |
---|---|---|
committer | Jim Cownie <james.h.cownie@intel.com> | 2014-05-10 17:02:09 +0000 |
commit | 18d8473f185999e418dcb62ee4d8a671c2eacee5 (patch) | |
tree | d212f5cac426b2be33035984fc56623f92f5ddde /openmp/testsuite/c/omp_parallel_num_threads.c | |
parent | 281f9d0e97dca0594a15341e3c927e2667773104 (diff) | |
download | bcm5719-llvm-18d8473f185999e418dcb62ee4d8a671c2eacee5.tar.gz bcm5719-llvm-18d8473f185999e418dcb62ee4d8a671c2eacee5.zip |
Add testsuite from OpenUH
llvm-svn: 208472
Diffstat (limited to 'openmp/testsuite/c/omp_parallel_num_threads.c')
-rw-r--r-- | openmp/testsuite/c/omp_parallel_num_threads.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/openmp/testsuite/c/omp_parallel_num_threads.c b/openmp/testsuite/c/omp_parallel_num_threads.c new file mode 100644 index 00000000000..897fed24c59 --- /dev/null +++ b/openmp/testsuite/c/omp_parallel_num_threads.c @@ -0,0 +1,46 @@ +<ompts:test> +<ompts:testdescription>Test which checks the omp_parallel_num_threads directive by counting the threads in a parallel region which was started with an explicitly stated number of threads.</ompts:testdescription> +<ompts:ompversion>3.0</ompts:ompversion> +<ompts:directive>omp parellel num_threads</ompts:directive> +<ompts:dependences>omp master,omp parallel reduction,omp atomic</ompts:dependences> +<ompts:testcode> +#include <stdio.h> +#include "omp_testsuite.h" + +int <ompts:testcode:functionname>omp_parallel_num_threads</ompts:testcode:functionname>(FILE * logFile){ + <ompts:orphan:vars> + int failed; + int threads; + int nthreads; + </ompts:orphan:vars> + + int max_threads = 0; + + failed = 0; + + /* first we check how many threads are available */ +#pragma omp parallel + { +#pragma omp master + max_threads = omp_get_num_threads (); + } + + /* we increase the number of threads from one to maximum:*/ + for (threads = 1; threads <= max_threads; threads++) + { + nthreads = 0; + + <ompts:orphan> +#pragma omp parallel reduction(+:failed) <ompts:check>num_threads(threads)</ompts:check> + { + failed = failed + !(threads == omp_get_num_threads ()); +#pragma omp atomic + nthreads += 1; + } + </ompts:orphan> + failed = failed + !(nthreads == threads); + } + return (!failed); +} +</ompts:testcode> +</ompts:test> |