xref: /llvm-project/openmp/runtime/test/parallel/omp_parallel_default.c (revision 373107699709f6fb06992bf6b76274091570aaf2)
1*614c7ef8SJonathan Peyton // RUN: %libomp-compile-and-run
2*614c7ef8SJonathan Peyton #include <stdio.h>
3*614c7ef8SJonathan Peyton #include "omp_testsuite.h"
4*614c7ef8SJonathan Peyton 
test_omp_parallel_default()5*614c7ef8SJonathan Peyton int test_omp_parallel_default()
6*614c7ef8SJonathan Peyton {
7*614c7ef8SJonathan Peyton   int i;
8*614c7ef8SJonathan Peyton   int sum;
9*614c7ef8SJonathan Peyton   int mysum;
10*614c7ef8SJonathan Peyton   int known_sum;
11*614c7ef8SJonathan Peyton   sum =0;
12*614c7ef8SJonathan Peyton   known_sum = (LOOPCOUNT * (LOOPCOUNT + 1)) / 2 ;
13*614c7ef8SJonathan Peyton 
14*614c7ef8SJonathan Peyton   #pragma omp parallel default(shared) private(i) private(mysum)
15*614c7ef8SJonathan Peyton   {
16*614c7ef8SJonathan Peyton     mysum = 0;
17*614c7ef8SJonathan Peyton     #pragma omp for
18*614c7ef8SJonathan Peyton     for (i = 1; i <= LOOPCOUNT; i++) {
19*614c7ef8SJonathan Peyton       mysum = mysum + i;
20*614c7ef8SJonathan Peyton     }
21*614c7ef8SJonathan Peyton     #pragma omp critical
22*614c7ef8SJonathan Peyton     {
23*614c7ef8SJonathan Peyton       sum = sum + mysum;
24*614c7ef8SJonathan Peyton     }   /* end of critical */
25*614c7ef8SJonathan Peyton   }   /* end of parallel */
26*614c7ef8SJonathan Peyton   if (known_sum != sum) {
27*614c7ef8SJonathan Peyton     fprintf(stderr, "KNOWN_SUM = %d; SUM = %d\n", known_sum, sum);
28*614c7ef8SJonathan Peyton   }
29*614c7ef8SJonathan Peyton   return (known_sum == sum);
30*614c7ef8SJonathan Peyton }
31*614c7ef8SJonathan Peyton 
main()32*614c7ef8SJonathan Peyton int main()
33*614c7ef8SJonathan Peyton {
34*614c7ef8SJonathan Peyton   int i;
35*614c7ef8SJonathan Peyton   int num_failed=0;
36*614c7ef8SJonathan Peyton 
37*614c7ef8SJonathan Peyton   for(i = 0; i < REPETITIONS; i++) {
38*614c7ef8SJonathan Peyton     if(!test_omp_parallel_default()) {
39*614c7ef8SJonathan Peyton       num_failed++;
40*614c7ef8SJonathan Peyton     }
41*614c7ef8SJonathan Peyton   }
42*614c7ef8SJonathan Peyton   return num_failed;
43*614c7ef8SJonathan Peyton }
44