https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84571

            Bug ID: 84571
           Summary: [og7, openacc, nvptx] 32-bit value passed in 64 bits
                    to offloading function
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

Consider the following openacc program:
...
static
void foo(int n, int p[N][N])
{
  #pragma acc parallel copy(p[0:N][0:N])
  for (int k = 0; k < n; k++)
    {
      #pragma acc loop gang
      for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
          p[i][j] = ...;
    }
}
...

The offloaded function parameters are pointer p, and int n. For some reason, n
is passed as a 64-bit value:
...
.entry foo$_omp_fn$0 (.param .u64 %in_ar0, .param .u64 %in_ar1)
...

Reply via email to