(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
for-2.h
       1  #ifndef VARS
       2  #define VARS
       3  int a[1500];
       4  float b[10][15][10];
       5  __attribute__((noreturn)) void
       6  noreturn (void)
       7  {
       8    for (;;);
       9  }
      10  #endif
      11  #ifndef SC
      12  #define SC
      13  #endif
      14  #ifndef OMPTGT
      15  #define OMPTGT
      16  #endif
      17  #ifndef OMPTEAMS
      18  #define OMPTEAMS
      19  #endif
      20  #ifndef OMPTO
      21  #define OMPTO(v) do {} while (0)
      22  #endif
      23  #ifndef OMPFROM
      24  #define OMPFROM(v) do {} while (0)
      25  #endif
      26  
      27  #ifndef CONDNE
      28  __attribute__((noinline, noclone)) void
      29  N(f0) (void)
      30  {
      31    int i;
      32    OMPTGT
      33  #pragma omp F S
      34    for (i = 0; i < 1500; i++)
      35      a[i] += 2;
      36  }
      37  
      38  __attribute__((noinline, noclone)) void
      39  N(f1) (void)
      40  {
      41    OMPTGT
      42  #pragma omp F S
      43    for (unsigned int i = __INT_MAX__; i < 3000U + __INT_MAX__; i += 2)
      44      a[(i - __INT_MAX__) >> 1] -= 2;
      45  }
      46  
      47  __attribute__((noinline, noclone)) void
      48  N(f2) (void)
      49  {
      50    unsigned long long i;
      51    OMPTGT
      52  #pragma omp F S
      53    for (i = __LONG_LONG_MAX__ + 4500ULL - 27;
      54         i > __LONG_LONG_MAX__ - 27ULL; i -= 3)
      55      a[(i + 26LL - __LONG_LONG_MAX__) / 3] -= 4;
      56  }
      57  
      58  __attribute__((noinline, noclone)) void
      59  N(f3) (long long n1, long long n2, long long s3)
      60  {
      61    OMPTGT
      62  #pragma omp F S
      63    for (long long i = n1 + 23; i > n2 - 25; i -= s3)
      64      a[i + 48] += 7;
      65  }
      66  
      67  __attribute__((noinline, noclone)) void
      68  N(f4) (void)
      69  {
      70    unsigned int i;
      71    OMPTGT
      72  #pragma omp F S
      73    for (i = 30; i < 20; i += 2)
      74      a[i] += 10;
      75  }
      76  
      77  __attribute__((noinline, noclone)) void
      78  N(f5) (int n11, int n12, int n21, int n22, int n31, int n32,
      79         int s1, int s2, int s3)
      80  {
      81    SC int v1, v2, v3;
      82    OMPTGT
      83  #pragma omp F S collapse(3)
      84    for (v1 = n11; v1 < n12; v1 += s1)
      85      for (v2 = n21; v2 < n22; v2 += s2)
      86        for (v3 = n31; v3 < n32; v3 += s3)
      87  	b[v1][v2][v3] += 2.5;
      88  }
      89  
      90  __attribute__((noinline, noclone)) void
      91  N(f6) (int n11, int n12, int n21, int n22, long long n31, long long n32,
      92         int s1, int s2, long long int s3)
      93  {
      94    SC int v1, v2;
      95    SC long long v3;
      96    OMPTGT
      97  #pragma omp F S collapse(3)
      98    for (v1 = n11; v1 > n12; v1 += s1)
      99      for (v2 = n21; v2 > n22; v2 += s2)
     100        for (v3 = n31; v3 > n32; v3 += s3)
     101  	b[v1][v2 / 2][v3] -= 4.5;
     102  }
     103  
     104  __attribute__((noinline, noclone)) void
     105  N(f7) (void)
     106  {
     107    SC unsigned int v1, v3;
     108    SC unsigned long long v2;
     109    OMPTGT
     110  #pragma omp F S collapse(3)
     111    for (v1 = 0; v1 < 20; v1 += 2)
     112      for (v2 = __LONG_LONG_MAX__ + 16ULL;
     113  	 v2 > __LONG_LONG_MAX__ - 29ULL; v2 -= 3)
     114        for (v3 = 10; v3 > 0; v3--)
     115  	b[v1 >> 1][(v2 - __LONG_LONG_MAX__ + 64) / 3 - 12][v3 - 1] += 5.5;
     116  }
     117  
     118  __attribute__((noinline, noclone)) void
     119  N(f8) (void)
     120  {
     121    SC long long v1, v2, v3;
     122    OMPTGT
     123  #pragma omp F S collapse(3)
     124    for (v1 = 0; v1 < 20; v1 += 2)
     125      for (v2 = 30; v2 < 20; v2++)
     126        for (v3 = 10; v3 < 0; v3--)
     127  	b[v1][v2][v3] += 5.5;
     128  }
     129  
     130  __attribute__((noinline, noclone)) void
     131  N(f9) (void)
     132  {
     133    int i;
     134    OMPTGT
     135  #pragma omp F S
     136    for (i = 20; i < 10; i++)
     137      {
     138        a[i] += 2;
     139        noreturn ();
     140        a[i] -= 4;
     141      }
     142  }
     143  
     144  __attribute__((noinline, noclone)) void
     145  N(f10) (void)
     146  {
     147    SC int i;
     148    OMPTGT
     149  #pragma omp F S collapse(3)
     150    for (i = 0; i < 10; i++)
     151      for (int j = 10; j < 8; j++)
     152        for (long k = -10; k < 10; k++)
     153  	{
     154  	  b[i][j][k] += 4;
     155  	  noreturn ();
     156  	  b[i][j][k] -= 8;
     157  	}
     158  }
     159  
     160  __attribute__((noinline, noclone)) void
     161  N(f11) (int n)
     162  {
     163    int i;
     164    OMPTGT
     165  #pragma omp F S
     166    for (i = 20; i < n; i++)
     167      {
     168        a[i] += 8;
     169        noreturn ();
     170        a[i] -= 16;
     171      }
     172  }
     173  
     174  __attribute__((noinline, noclone)) void
     175  N(f12) (int n)
     176  {
     177    SC int i;
     178    OMPTGT
     179  #pragma omp F S collapse(3)
     180    for (i = 0; i < 10; i++)
     181      for (int j = n; j < 8; j++)
     182        for (long k = -10; k < 10; k++)
     183  	{
     184  	  b[i][j][k] += 16;
     185  	  noreturn ();
     186  	  b[i][j][k] -= 32;
     187  	}
     188  }
     189  
     190  __attribute__((noinline, noclone)) void
     191  N(f13) (void)
     192  {
     193    int *i;
     194    OMPTGT
     195  #pragma omp F S
     196    for (i = a; i < &a[1500]; i++)
     197      i[0] += 2;
     198  }
     199  
     200  __attribute__((noinline, noclone)) void
     201  N(f14) (void)
     202  {
     203    SC float *i;
     204    OMPTGT
     205  #pragma omp F S collapse(3)
     206    for (i = &b[0][0][0]; i < &b[0][0][10]; i++)
     207      for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
     208        for (float *k = &b[0][0][10]; k > &b[0][0][0]; --k)
     209  	b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
     210  	  -= 3.5;
     211  }
     212  
     213  __attribute__((noinline, noclone)) int
     214  N(test) (void)
     215  {
     216    int i, j, k;
     217    for (i = 0; i < 1500; i++)
     218      a[i] = i - 25;
     219    OMPTO (a);
     220    OMPTEAMS
     221    N(f0) ();
     222    OMPFROM (a);
     223    for (i = 0; i < 1500; i++)
     224      if (a[i] != i - 23)
     225        return 1;
     226    OMPTEAMS
     227    N(f1) ();
     228    OMPFROM (a);
     229    for (i = 0; i < 1500; i++)
     230      if (a[i] != i - 25)
     231        return 1;
     232    OMPTEAMS
     233    N(f2) ();
     234    OMPFROM (a);
     235    for (i = 0; i < 1500; i++)
     236      if (a[i] != i - 29)
     237        return 1;
     238    OMPTEAMS
     239    N(f3) (1500LL - 1 - 23 - 48, -1LL + 25 - 48, 1LL);
     240    OMPFROM (a);
     241    for (i = 0; i < 1500; i++)
     242      if (a[i] != i - 22)
     243        return 1;
     244    OMPTEAMS
     245    N(f3) (1500LL - 1 - 23 - 48, 1500LL - 1, 7LL);
     246    OMPFROM (a);
     247    for (i = 0; i < 1500; i++)
     248      if (a[i] != i - 22)
     249        return 1;
     250    OMPTEAMS
     251    N(f4) ();
     252    OMPFROM (a);
     253    for (i = 0; i < 1500; i++)
     254      if (a[i] != i - 22)
     255        return 1;
     256    for (i = 0; i < 10; i++)
     257      for (j = 0; j < 15; j++)
     258        for (k = 0; k < 10; k++)
     259  	b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
     260    OMPTO (b);
     261    OMPTEAMS
     262    N(f5) (0, 10, 0, 15, 0, 10, 1, 1, 1);
     263    OMPFROM (b);
     264    for (i = 0; i < 10; i++)
     265      for (j = 0; j < 15; j++)
     266        for (k = 0; k < 10; k++)
     267  	if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
     268  	  return 1;
     269    OMPTEAMS
     270    N(f5) (0, 10, 30, 15, 0, 10, 4, 5, 6);
     271    OMPFROM (b);
     272    for (i = 0; i < 10; i++)
     273      for (j = 0; j < 15; j++)
     274        for (k = 0; k < 10; k++)
     275  	if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
     276  	  return 1;
     277    OMPTEAMS
     278    N(f6) (9, -1, 29, 0, 9, -1, -1, -2, -1);
     279    OMPFROM (b);
     280    for (i = 0; i < 10; i++)
     281      for (j = 0; j < 15; j++)
     282        for (k = 0; k < 10; k++)
     283  	if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
     284  	  return 1;
     285    OMPTEAMS
     286    N(f7) ();
     287    OMPFROM (b);
     288    for (i = 0; i < 10; i++)
     289      for (j = 0; j < 15; j++)
     290        for (k = 0; k < 10; k++)
     291  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     292  	  return 1;
     293    OMPTEAMS
     294    N(f8) ();	  
     295    OMPFROM (b);
     296    for (i = 0; i < 10; i++)
     297      for (j = 0; j < 15; j++)
     298        for (k = 0; k < 10; k++)
     299  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     300  	  return 1;
     301    OMPTEAMS
     302    N(f9) ();
     303    OMPTEAMS
     304    N(f10) ();
     305    OMPTEAMS
     306    N(f11) (10);
     307    OMPTEAMS
     308    N(f12) (12);
     309    OMPFROM (a);
     310    OMPFROM (b);
     311    for (i = 0; i < 1500; i++)
     312      if (a[i] != i - 22)
     313        return 1;
     314    for (i = 0; i < 10; i++)
     315      for (j = 0; j < 15; j++)
     316        for (k = 0; k < 10; k++)
     317  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     318  	  return 1;
     319    OMPTEAMS
     320    N(f13) ();
     321    OMPTEAMS
     322    N(f14) ();
     323    OMPFROM (a);
     324    OMPFROM (b);
     325    for (i = 0; i < 1500; i++)
     326      if (a[i] != i - 20)
     327        return 1;
     328    for (i = 0; i < 10; i++)
     329      for (j = 0; j < 15; j++)
     330        for (k = 0; k < 10; k++)
     331  	if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
     332  	  return 1;
     333    return 0;
     334  }
     335  
     336  #else
     337  
     338  __attribute__((noinline, noclone)) void
     339  N(f20) (void)
     340  {
     341    int i;
     342    OMPTGT
     343  #pragma omp F S
     344    for (i = 0; i != 1500; i++)
     345      a[i] += 2;
     346  }
     347  
     348  __attribute__((noinline, noclone)) void
     349  N(f21) (void)
     350  {
     351    OMPTGT
     352  #pragma omp F S
     353    for (unsigned int i = __INT_MAX__; i < 1500U + __INT_MAX__; i += 2 - 1)
     354      a[(i - __INT_MAX__)] -= 2;
     355  }
     356  
     357  __attribute__((noinline, noclone)) void
     358  N(f22) (void)
     359  {
     360    unsigned long long i;
     361    OMPTGT
     362  #pragma omp F S
     363    for (i = __LONG_LONG_MAX__ + 1500ULL - 27;
     364         i != __LONG_LONG_MAX__ - 27ULL; i -= 3 - 2)
     365      a[i + 26LL - __LONG_LONG_MAX__] -= 4;
     366  }
     367  
     368  __attribute__((noinline, noclone)) void
     369  N(f23) (long long n1, long long n2)
     370  {
     371    OMPTGT
     372  #pragma omp F S
     373    for (long long i = n1 + 23; i != n2 - 25; --i)
     374      a[i + 48] += 7;
     375  }
     376  
     377  __attribute__((noinline, noclone)) void
     378  N(f24) (void)
     379  {
     380    unsigned int i;
     381    OMPTGT
     382  #pragma omp F S
     383    for (i = 30; i != 30; i += 1)
     384      a[i] += 10;
     385  }
     386  
     387  __attribute__((noinline, noclone)) void
     388  N(f25) (int n11, int n12, int n21, int n22, int n31, int n32,
     389  	int s2)
     390  {
     391    SC int v1, v2, v3;
     392    OMPTGT
     393  #pragma omp F S collapse(3)
     394    for (v1 = n11; v1 != n12; v1 += 17 - 19 + 3)
     395      for (v2 = n21; v2 < n22; v2 += s2)
     396        for (v3 = n31; v3 != n32; ++v3)
     397  	b[v1][v2][v3] += 2.5;
     398  }
     399  
     400  __attribute__((noinline, noclone)) void
     401  N(f26) (int n11, int n12, int n21, int n22, long long n31, long long n32,
     402  	int s2)
     403  {
     404    SC int v1, v2;
     405    SC long long v3;
     406    OMPTGT
     407  #pragma omp F S collapse(3)
     408    for (v1 = n11; v1 != n12; v1 += -1)
     409      for (v2 = n21; v2 > n22; v2 += s2)
     410        for (v3 = n31; v3 != n32; v3 --)
     411  	b[v1][v2 / 2][v3] -= 4.5;
     412  }
     413  
     414  __attribute__((noinline, noclone)) void
     415  N(f27) (void)
     416  {
     417    SC unsigned int v1, v3;
     418    SC unsigned long long v2;
     419    OMPTGT
     420  #pragma omp F S collapse(3)
     421    for (v1 = 0; v1 < 20; v1 += 2)
     422      for (v2 = __LONG_LONG_MAX__ + 11ULL;
     423  	 v2 != __LONG_LONG_MAX__ - 4ULL; -- v2)
     424        for (v3 = 10; v3 != 0; v3--)
     425  	b[v1 >> 1][v2 - __LONG_LONG_MAX__ + 3][v3 - 1] += 5.5;
     426  }
     427  
     428  __attribute__((noinline, noclone)) void
     429  N(f28) (void)
     430  {
     431    SC long long v1, v2, v3;
     432    OMPTGT
     433  #pragma omp F S collapse(3)
     434    for (v1 = 0; v1 != 20; v1 -= 17 - 18)
     435      for (v2 = 30; v2 < 20; v2++)
     436        for (v3 = 10; v3 < 0; v3--)
     437  	b[v1][v2][v3] += 5.5;
     438  }
     439  
     440  __attribute__((noinline, noclone)) void
     441  N(f29) (void)
     442  {
     443    int i;
     444    OMPTGT
     445  #pragma omp F S
     446    for (i = 20; i != 20; i++)
     447      {
     448        a[i] += 2;
     449        noreturn ();
     450        a[i] -= 4;
     451      }
     452  }
     453  
     454  __attribute__((noinline, noclone)) void
     455  N(f30) (void)
     456  {
     457    SC int i;
     458    OMPTGT
     459  #pragma omp F S collapse(3)
     460    for (i = 0; i != 10; i++)
     461      for (int j = 10; j < 8; j++)
     462        for (long k = -10; k != 10; k++)
     463  	{
     464  	  b[i][j][k] += 4;
     465  	  noreturn ();
     466  	  b[i][j][k] -= 8;
     467  	}
     468  }
     469  
     470  __attribute__((noinline, noclone)) void
     471  N(f31) (int n)
     472  {
     473    int i;
     474    OMPTGT
     475  #pragma omp F S
     476    for (i = 20; i != n; i++)
     477      {
     478        a[i] += 8;
     479        noreturn ();
     480        a[i] -= 16;
     481      }
     482  }
     483  
     484  __attribute__((noinline, noclone)) void
     485  N(f32) (int n)
     486  {
     487    SC int i;
     488    OMPTGT
     489  #pragma omp F S collapse(3)
     490    for (i = 0; i != 10; i++)
     491      for (int j = n; j != 12; j++)
     492        for (long k = -10; k != 10; k++)
     493  	{
     494  	  b[i][j][k] += 16;
     495  	  noreturn ();
     496  	  b[i][j][k] -= 32;
     497  	}
     498  }
     499  
     500  __attribute__((noinline, noclone)) void
     501  N(f33) (void)
     502  {
     503    int *i;
     504    OMPTGT
     505  #pragma omp F S
     506    for (i = a; i != &a[1500]; i++)
     507      i[0] += 2;
     508  }
     509  
     510  __attribute__((noinline, noclone)) void
     511  N(f34) (void)
     512  {
     513    SC float *i;
     514    OMPTGT
     515  #pragma omp F S collapse(3)
     516    for (i = &b[0][0][0]; i != &b[0][0][10]; i++)
     517      for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
     518        for (float *k = &b[0][0][10]; k != &b[0][0][0]; --k)
     519  	b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
     520  	  -= 3.5;
     521  }
     522  
     523  __attribute__((noinline, noclone)) int
     524  N(test) (void)
     525  {
     526    int i, j, k;
     527    for (i = 0; i < 1500; i++)
     528      a[i] = i - 25;
     529    OMPTO (a);
     530    OMPTEAMS
     531    N(f20) ();
     532    OMPFROM (a);
     533    for (i = 0; i < 1500; i++)
     534      if (a[i] != i - 23)
     535        return 1;
     536    OMPTEAMS
     537    N(f21) ();
     538    OMPFROM (a);
     539    for (i = 0; i < 1500; i++)
     540      if (a[i] != i - 25)
     541        return 1;
     542    OMPTEAMS
     543    N(f22) ();
     544    OMPFROM (a);
     545    for (i = 0; i < 1500; i++)
     546      if (a[i] != i - 29)
     547        return 1;
     548    OMPTEAMS
     549    N(f23) (1500LL - 1 - 23 - 48, -1LL + 25 - 48);
     550    OMPFROM (a);
     551    for (i = 0; i < 1500; i++)
     552      if (a[i] != i - 22)
     553        return 1;
     554    OMPTEAMS
     555    N(f24) ();
     556    OMPFROM (a);
     557    for (i = 0; i < 1500; i++)
     558      if (a[i] != i - 22)
     559        return 1;
     560    for (i = 0; i < 10; i++)
     561      for (j = 0; j < 15; j++)
     562        for (k = 0; k < 10; k++)
     563  	b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
     564    OMPTO (b);
     565    OMPTEAMS
     566    N(f25) (0, 10, 0, 15, 0, 10, 1);
     567    OMPFROM (b);
     568    for (i = 0; i < 10; i++)
     569      for (j = 0; j < 15; j++)
     570        for (k = 0; k < 10; k++)
     571  	if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
     572  	  return 1;
     573    OMPTEAMS
     574    N(f25) (0, 10, 30, 15, 0, 10, 5);
     575    OMPFROM (b);
     576    for (i = 0; i < 10; i++)
     577      for (j = 0; j < 15; j++)
     578        for (k = 0; k < 10; k++)
     579  	if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
     580  	  return 1;
     581    OMPTEAMS
     582    N(f26) (9, -1, 29, 0, 9, -1, -2);
     583    OMPFROM (b);
     584    for (i = 0; i < 10; i++)
     585      for (j = 0; j < 15; j++)
     586        for (k = 0; k < 10; k++)
     587  	if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
     588  	  return 1;
     589    OMPTEAMS
     590    N(f27) ();
     591    OMPFROM (b);
     592    for (i = 0; i < 10; i++)
     593      for (j = 0; j < 15; j++)
     594        for (k = 0; k < 10; k++)
     595  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     596  	  return 1;
     597    OMPTEAMS
     598    N(f28) ();
     599    OMPFROM (b);
     600    for (i = 0; i < 10; i++)
     601      for (j = 0; j < 15; j++)
     602        for (k = 0; k < 10; k++)
     603  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     604  	  return 1;
     605    OMPTEAMS
     606    N(f29) ();
     607    OMPTEAMS
     608    N(f30) ();
     609    OMPTEAMS
     610    N(f31) (20);
     611    OMPTEAMS
     612    N(f32) (12);
     613    OMPFROM (a);
     614    OMPFROM (b);
     615    for (i = 0; i < 1500; i++)
     616      if (a[i] != i - 22)
     617        return 1;
     618    for (i = 0; i < 10; i++)
     619      for (j = 0; j < 15; j++)
     620        for (k = 0; k < 10; k++)
     621  	if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
     622  	  return 1;
     623    OMPTEAMS
     624    N(f33) ();
     625    OMPTEAMS
     626    N(f34) ();
     627    OMPFROM (a);
     628    OMPFROM (b);
     629    for (i = 0; i < 1500; i++)
     630      if (a[i] != i - 20)
     631        return 1;
     632    for (i = 0; i < 10; i++)
     633      for (j = 0; j < 15; j++)
     634        for (k = 0; k < 10; k++)
     635  	if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
     636  	  return 1;
     637    return 0;
     638  }
     639  #endif