/* { dg-do run { target { ! openacc_host_selected } } } */

#include <assert.h>
#include "da-utils.h"

int main (void)
{
  int n = 20, x = 5, y = 12;
  int *****a = (int *****) create_da (sizeof (int), n, 5);

  int sum1 = 0, sum2 = 0, sum3 = 0;

  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      for (int k = 0; k < n; k++)
	for (int l = 0; l < n; l++)
	  for (int m = 0; m < n; m++)
	    {
	      a[i][j][k][l][m] = 1;
	      sum1++;
	    }

  #pragma acc parallel copy (a[x:y][x:y][x:y][x:y][x:y]) copy(sum2)
  {
    for (int i = x; i < x + y; i++)
      for (int j = x; j < x + y; j++)
	for (int k = x; k < x + y; k++)
	  for (int l = x; l < x + y; l++)
	    for (int m = x; m < x + y; m++)
	      {
		a[i][j][k][l][m] = 0;
		sum2++;
	      }
  }

  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      for (int k = 0; k < n; k++)
	for (int l = 0; l < n; l++)
	  for (int m = 0; m < n; m++)
	    sum3 += a[i][j][k][l][m];

  assert (sum1 == sum2 + sum3);
  return 0;
}
