view gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* { dg-do compile } */
/* { dg-options "-fopenmp" } */

void
foo (void)
{
  int i;
  #pragma omp for simd schedule (simd, simd: static, 5)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for simd schedule (monotonic, simd: static)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for simd schedule (simd , monotonic : static, 6)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic, monotonic : static, 7)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic, nonmonotonic : dynamic)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for simd schedule (nonmonotonic , simd : dynamic, 3)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for simd schedule (nonmonotonic,simd:guided,4)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic: static, 2)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : static)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : dynamic)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : dynamic, 3)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : guided)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : guided, 7)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : runtime)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic : auto)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : dynamic)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : dynamic, 3)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : guided)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : guided, 7)
  for (i = 0; i < 64; i++)
    ;
}

void
bar (void)
{
  int i;
  #pragma omp for schedule (nonmonotonic: static, 2)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : static)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : runtime)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : auto)
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (nonmonotonic : static) ordered	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    #pragma omp ordered
      ;
  #pragma omp for ordered schedule (nonmonotonic: static, 4)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    #pragma omp ordered
      ;
  #pragma omp for schedule (nonmonotonic : dynamic) ordered	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    #pragma omp ordered
      ;
  #pragma omp for ordered schedule(nonmonotonic : dynamic, 5)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    #pragma omp ordered
      ;
  #pragma omp for schedule (nonmonotonic : guided) ordered(1)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    {
      #pragma omp ordered depend(sink: i - 1)
      #pragma omp ordered depend(source)
    }
  #pragma omp for ordered(1) schedule(nonmonotonic : guided, 2)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    {
      #pragma omp ordered depend(source)
      #pragma omp ordered depend(sink: i - 1)
    }
  #pragma omp for schedule(nonmonotonic : runtime) ordered(1)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
  for (i = 0; i < 64; i++)
    {
      #pragma omp ordered depend(source)
      #pragma omp ordered depend(sink: i - 1)
    }
  #pragma omp for schedule (nonmonotonic , monotonic : dynamic)	/* { dg-error "both .monotonic. and .nonmonotonic. modifiers specified" } */
  for (i = 0; i < 64; i++)
    ;
  #pragma omp for schedule (monotonic,nonmonotonic:dynamic)	/* { dg-error "both .monotonic. and .nonmonotonic. modifiers specified" } */
  for (i = 0; i < 64; i++)
    ;
}