(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
loop-5.c
       1  __attribute__((noipa)) int
       2  foo (int *a, int *r3)
       3  {
       4    int r = 0, r2[2] = { 0, 0 }, i;
       5    #pragma omp parallel loop default (none) reduction (+:r, r2[:2], r3[:2]) shared (a) lastprivate (i)
       6    for (i = 0; i < 1024; i++)
       7      {
       8        r += a[i];
       9        r2[0] += a[i];
      10        r3[1] += a[i];
      11      };
      12    return r + r2[0] + r3[1] + i;
      13  }
      14  
      15  __attribute__((noipa)) int
      16  bar (int *a, int *r3)
      17  {
      18    int r = 0, r2[2] = { 0, 0 }, i;
      19    #pragma omp target parallel loop default (none) reduction (+:r, r2[0:2], r3[0:2]) shared (a) lastprivate (i)
      20    for (i = 0; i < 1024; i++)
      21      {
      22        r += a[i];
      23        r2[1] += a[i];
      24        r3[0] += a[i];
      25      }
      26    return r + r2[1] + r3[0] + i;
      27  }
      28  
      29  __attribute__((noipa)) int
      30  baz (int *a, int *r3)
      31  {
      32    int r = 0, r2[2] = { 0, 0 }, i;
      33    #pragma omp teams loop default (none) reduction (+:r, r2[0:2], r3[1:1]) shared (a) lastprivate (i)
      34    for (i = 0; i < 1024; i++)
      35      {
      36        r += a[i];
      37        r2[0] += a[i];
      38        r3[1] += a[i];
      39      }
      40    return r + r2[0] + r3[1] + i;
      41  }
      42  
      43  __attribute__((noipa)) int
      44  qux (int *a, int *r3)
      45  {
      46    int r = 0, r2[2] = { 0, 0 }, i;
      47    #pragma omp target teams loop default (none) reduction (+:r, r2[1:1], r3[0:2]) shared (a) lastprivate (i)
      48    for (i = 0; i < 1024; i++)
      49      {
      50        r += a[i];
      51        r2[1] += a[i];
      52        r3[0] += a[i] - 1;
      53        r3[1] += a[i];
      54      }
      55    return r + r2[1] + r3[0] + r3[1] + i;
      56  }