blob: 3eb4c1c004a11078caa6c318ec43631cd86c5d28 [file]
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-original" } */
/* Check that map clauses are only merged if they have the same modifiers. */
#define DIM 17
void f (int *x)
{
#pragma omp target map(always, to: x) map(tofrom: x)
{
for (int i = 0; i < DIM; i++)
x[i] += i;
}
#pragma omp target map(tofrom: x) map(always, from: x)
{
for (int i = 0; i < DIM; i++)
x[i] += i;
}
#pragma omp target map(to: x) map(present, alloc: x) map(from: x)
{
for (int i = 0; i < DIM; i++)
x[i] += i;
}
#pragma omp target map(close,always,from: x) map(close,present,alloc: x) map(present,to: x)
{
for (int i = 0; i < DIM; i++)
x[i] += i;
}
#pragma omp target map(always,to: x) map(always,present,alloc: x) map(present,from: x)
{
for (int i = 0; i < DIM; i++)
x[i] += i;
}
}
/* { dg-final { scan-tree-dump-times {map\(tofrom:x\) map\(always,to:x\)} 1 "original" } } */
/* { dg-final { scan-tree-dump-times {map\(always,from:x\) map\(tofrom:x\)} 1 "original" } } */
/* { dg-final { scan-tree-dump-times {map\(present,alloc:x\) map\(tofrom:x\)} 1 "original" } } */
/* { dg-final { scan-tree-dump-times {map\(present,to:x\) map\(always,from:x\)} 1 "original" } } */
/* { dg-final { scan-tree-dump-times {map\(present,from:x\) map\(always,to:x\)} 1 "original" } } */