1  /* PR target/90811 */
       2  
       3  int
       4  main ()
       5  {
       6    long long a[100], b[100];
       7    int i;
       8    for (i = 0; i < 100; i++)
       9      {
      10        a[i] = i;
      11        b[i] = i % 10;
      12      }
      13    #pragma omp target teams distribute parallel for simd map(tofrom: a[:100], b[:100])
      14    for (i = 0; i < 100; i++)
      15      {
      16        long long c = 0;
      17        const long long d[] = { 1, 3, 5, 7, 9 };
      18        for (int j = 4; j >= 0; j--)
      19           c = d[j] + b[i] * c;
      20        a[i] += c;
      21      }
      22    for (i = 0; i < 100; i++)
      23      {
      24        const long long r[] = { 1, 26, 229, 976, 2849, 6646, 13381, 24284, 40801, 64594 };
      25        if (a[i] != r[i % 10] + (i / 10 * 10))
      26  	__builtin_abort ();
      27      }
      28    return 0;
      29  }