// RUN: %libomptarget-compilexx-generic -O3 && %libomptarget-run-generic
// XFAIL: intelgpu

#include <stdio.h>

// CHECK: rx: 16, ry: 16;
// CHECK: rx: 16, ry: 16;
// CHECK: rx: 16, ry: 16;
// CHECK: rx: 16, ry: 16;

template <bool Aligned> void test() {
  printf("Test %saligned firstprivate\n", Aligned ? "" : "non-");
  char z1[3 + Aligned], z2[3 + Aligned];
  int x[4];
  int y[4];
  y[0] = y[1] = y[2] = y[3] = 4;
  x[0] = x[1] = x[2] = x[3] = 4;
  int rx = -1, ry = -1;
#pragma omp target firstprivate(z1, y, z2) map(from : ry, rx) map(to : x)
  {
    ry = (y[0] + y[1] + y[2] + y[3]);
    rx = (x[0] + x[1] + x[2] + x[3]);
  }
  printf(" rx:%i, ry:%i\n", rx, ry);
#pragma omp target firstprivate(z1, y, z2) map(from : ry, rx) map(to : x)
  {
    z1[2] += 5;
    ry = (y[0] + y[1] + y[2] + y[3]);
    rx = (x[0] + x[1] + x[2] + x[3]);
    z2[2] += 7;
  }
  printf(" rx:%i, ry:%i\n", rx, ry);
}

int main() {
  test<true>();
  test<false>();
}
