brintos

brintos / llvm-project-archived public Read only

0
0
Text · 846 B · 3342e63 Raw
49 lines · c
1// RUN: %libomp-compile-and-run2#include "omp_testsuite.h"3#include <stdlib.h>4#include <stdio.h>5 6static int i;7#pragma omp threadprivate(i)8 9int test_omp_threadprivate_for()10{11  int known_sum;12  int sum;13 14  known_sum = (LOOPCOUNT * (LOOPCOUNT + 1)) / 2;15  sum = 0;16 17  #pragma omp parallel18  {19    int sum0 = 0, i0;20    #pragma omp for21    for (i0 = 1; i0 <= LOOPCOUNT; i0++) {22      i = i0;23      sum0 = sum0 + i;24    }25    #pragma omp critical26    {27      sum = sum + sum0;28    }29  } /* end of parallel */30 31  if (known_sum != sum ) {32    fprintf(stderr, " known_sum = %d, sum = %d\n", known_sum, sum);33  }34  return (known_sum == sum);35} /* end of check_threadprivate*/36 37int main()38{39  int i;40  int num_failed=0;41 42  for(i = 0; i < REPETITIONS; i++) {43    if(!test_omp_threadprivate_for()) {44      num_failed++;45    }46  }47  return num_failed;48}49