summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/goacc/default-4.c
blob: 867175d484734aba553f8ee9a81109b21176a8dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* OpenACC default clause inside data construct.  */

/* { dg-additional-options "-fdump-tree-gimple" } */

void f1 ()
{
  int f1_a = 2;
  float f1_b[2];

#pragma acc data copyin (f1_a) copyout (f1_b)
  /* { dg-final { scan-tree-dump-times "omp target oacc_data map\\(from:f1_b \[^\\)\]+\\) map\\(to:f1_a" 1 "gimple" } } */
  {
#pragma acc kernels
    /* { dg-final { scan-tree-dump-times "omp target oacc_kernels map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } */
    {
      f1_b[0] = f1_a;
    }
#pragma acc parallel
    /* { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } */
    {
      f1_b[0] = f1_a;
    }
  }
}

void f2 ()
{
  int f2_a = 2;
  float f2_b[2];

#pragma acc data copyin (f2_a) copyout (f2_b)
  /* { dg-final { scan-tree-dump-times "omp target oacc_data map\\(from:f2_b \[^\\)\]+\\) map\\(to:f2_a" 1 "gimple" } } */
  {
#pragma acc kernels default (none)
    /* { dg-final { scan-tree-dump-times "omp target oacc_kernels default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" } } */
    {
      f2_b[0] = f2_a;
    }
#pragma acc parallel default (none)
    /* { dg-final { scan-tree-dump-times "omp target oacc_parallel default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" } } */
    {
      f2_b[0] = f2_a;
    }
  }
}

void f3 ()
{
  int f3_a = 2;
  float f3_b[2];

#pragma acc data copyin (f3_a) copyout (f3_b)
  /* { dg-final { scan-tree-dump-times "omp target oacc_data map\\(from:f3_b \[^\\)\]+\\) map\\(to:f3_a" 1 "gimple" } } */
  {
#pragma acc kernels default (present)
    /* { dg-final { scan-tree-dump-times "omp target oacc_kernels default\\(present\\) map\\(tofrom:f3_b \[^\\)\]+\\) map\\(tofrom:f3_a" 1 "gimple" } } */
    {
      f3_b[0] = f3_a;
    }
#pragma acc parallel default (present)
    /* { dg-final { scan-tree-dump-times "omp target oacc_parallel default\\(present\\) map\\(tofrom:f3_b \[^\\)\]+\\) map\\(tofrom:f3_a" 1 "gimple" } } */
    {
      f3_b[0] = f3_a;
    }
  }
}