diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/testsuite/gcc.dg/gomp/scan-1.c | 51 | 
1 files changed, 51 insertions, 0 deletions
| diff --git a/gcc/testsuite/gcc.dg/gomp/scan-1.c b/gcc/testsuite/gcc.dg/gomp/scan-1.c new file mode 100644 index 0000000..807071d --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/scan-1.c @@ -0,0 +1,51 @@ +int baz (void); +void qux (int); +int r; + +int +foo (void) +{ +  int r = 0, i; +  void bar (void) { r++; } +  #pragma omp parallel for reduction(inscan, +:r) +  for (i = 0; i < 64; i++) +    { +      r += baz (); +      #pragma omp scan inclusive(r) +      qux (r); +    } +  #pragma omp parallel for reduction(inscan, +:r) +  for (i = 0; i < 64; i++) +    { +      qux (r); +      #pragma omp scan exclusive(r) +      r += baz (); +    } +  bar (); +  return r; +} + +int +corge (void) +{ +  int r = 0, i; +  void bar (void) +  { +    #pragma omp parallel for reduction(inscan, +:r) +    for (i = 0; i < 64; i++) +      { +	r += baz (); +	#pragma omp scan inclusive(r) +	qux (r); +      } +    #pragma omp parallel for reduction(inscan, +:r) +    for (i = 0; i < 64; i++) +      { +	qux (r); +	#pragma omp scan exclusive(r) +	r += baz (); +      } +  } +  bar (); +  return r; +} | 
