brintos

brintos / llvm-project-archived public Read only

0
0
Text · 598 B · 1826101 Raw
26 lines · c
1// RUN: %libomp-compile2// RUN: env KMP_AFFINITY=disabled %libomp-run3// RUN: env KMP_AFFINITY=disabled,reset %libomp-run4// REQUIRES: affinity5#include <stdio.h>6#include <stdlib.h>7#include <omp.h>8 9int main() {10  int nthreads, correct_value;;11  int a = 0;12  #pragma omp parallel reduction(+: a)13  {14    a += omp_get_thread_num();15    #pragma omp single16    nthreads = omp_get_num_threads();17  }18  correct_value = nthreads * (nthreads - 1) / 2;19  if (a != correct_value) {20    printf("Incorrect value: %d should be %d\n", a, correct_value);21    return EXIT_FAILURE;22  }23  return EXIT_SUCCESS;24}25 26