(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
linear-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fopenmp" } */
       3  
       4  int i;
       5  
       6  #pragma omp declare simd linear (x : val, step (1)) linear (y : step (2))
       7  int bar (int x, int y, int z);
       8  #pragma omp declare simd linear (x : step (1), val)
       9  int baz (int x, int y, int z);
      10  #pragma omp declare simd linear (val (x) : val) uniform (val)
      11  int qux (int x, int val);
      12  #pragma omp declare simd linear (x : val, step (val)) uniform (val)
      13  int corge (int x, int val);
      14  #pragma omp declare simd linear (x : val)
      15  int grault (int x);
      16  int step (int);
      17  
      18  void
      19  foo (int x, int y)
      20  {
      21    int val = 1;
      22    #pragma omp simd linear (i: step (3))
      23    for (i = 0; i < 33; i += 3)
      24      ;
      25    #pragma omp simd linear (i: val, step (3))
      26    for (i = 0; i < 33; i += 3)
      27      ;
      28    #pragma omp simd linear (x: step (y + 1))
      29    for (i = 0; i < 10; i++)
      30      x += y + 1;
      31    #pragma omp simd linear (x: step (y + 1), val)
      32    for (i = 0; i < 10; i++)
      33      x += y + 1;
      34    #pragma omp parallel for linear (x: step (y + 1))
      35    for (i = 0; i < 10; i++)
      36      x += y + 1;
      37    #pragma omp parallel for linear (x: val, step (y + 1))
      38    for (i = 0; i < 10; i++)
      39      x += y + 1;
      40    #pragma omp parallel for simd linear (i: step (3))
      41    for (i = 0; i < 33; i += 3)
      42      ;
      43    #pragma omp parallel for simd linear (i: step (3), val)
      44    for (i = 0; i < 33; i += 3)
      45      ;
      46    #pragma omp parallel for simd linear (x: step (y + 1))
      47    for (i = 0; i < 10; i++)
      48      x += y + 1;
      49    #pragma omp parallel for simd linear (x: val, step (y + 1))
      50    for (i = 0; i < 10; i++)
      51      x += y + 1;
      52    #pragma omp parallel for simd linear (i: val + 0)
      53    for (i = 0; i < 10; i++)
      54      ;
      55    #pragma omp parallel for simd linear (i: step (1) * 1)
      56    for (i = 0; i < 10; i++)
      57      ;
      58  }