brintos

brintos / llvm-project-archived public Read only

0
0
Text · 804 B · 4963579 Raw
45 lines · c
1// RUN: %libomp-compile-and-run2#include <stdio.h>3#include "omp_testsuite.h"4 5int test_omp_single()6{7  int nr_threads_in_single;8  int result;9  int nr_iterations;10  int i;11 12  nr_threads_in_single = 0;13  result = 0;14  nr_iterations = 0;15 16  #pragma omp parallel private(i)17  {18    for (i = 0; i < LOOPCOUNT; i++) {19      #pragma omp single20      {21        #pragma omp flush22        nr_threads_in_single++;23        #pragma omp flush24        nr_iterations++;25        nr_threads_in_single--;26        result = result + nr_threads_in_single;27      }28    }29  }30  return ((result == 0) && (nr_iterations == LOOPCOUNT));31} /* end of check_single*/32 33int main()34{35  int i;36  int num_failed=0;37 38  for(i = 0; i < REPETITIONS; i++) {39    if(!test_omp_single()) {40      num_failed++;41    }42  }43  return num_failed;44}45