]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/c-c++-common/gomp/distribute-1.c
gcc/
[thirdparty/gcc.git] / gcc / testsuite / c-c++-common / gomp / distribute-1.c
1 int s1, s2, s3, s4, s5, s6, s7, s8;
2 #pragma omp declare target (s1, s2, s3, s4, s5, s6, s7, s8)
3
4 void
5 f1 (void)
6 {
7 int i;
8 #pragma omp distribute
9 for (i = 0; i < 64; i++)
10 ;
11 #pragma omp distribute private (i)
12 for (i = 0; i < 64; i++)
13 ;
14 #pragma omp distribute
15 for (int j = 0; j < 64; j++)
16 ;
17 #pragma omp distribute lastprivate (s1)
18 for (s1 = 0; s1 < 64; s1 += 2)
19 ;
20 #pragma omp distribute lastprivate (s2)
21 for (i = 0; i < 64; i++)
22 s2 = 2 * i;
23 #pragma omp distribute simd
24 for (i = 0; i < 64; i++)
25 ;
26 #pragma omp distribute simd lastprivate (s3, s4) collapse(2)
27 for (s3 = 0; s3 < 64; s3++)
28 for (s4 = 0; s4 < 3; s4++)
29 ;
30 #pragma omp distribute parallel for
31 for (i = 0; i < 64; i++)
32 ;
33 #pragma omp distribute parallel for private (i)
34 for (i = 0; i < 64; i++)
35 ;
36 #pragma omp distribute parallel for lastprivate (s5)
37 for (s5 = 0; s5 < 64; s5++)
38 ;
39 #pragma omp distribute firstprivate (s7) private (s8)
40 for (i = 0; i < 64; i++)
41 s8 = s7++;
42 }
43
44 void
45 f2 (void)
46 {
47 int i;
48 #pragma omp distribute lastprivate (i) /* { dg-error "lastprivate variable .i. is private in outer context" } */
49 for (i = 0; i < 64; i++)
50 ;
51 #pragma omp distribute firstprivate (s6) lastprivate (s6) /* { dg-error "same variable used in .firstprivate. and .lastprivate. clauses on .distribute. construct" } */
52 for (i = 0; i < 64; i++)
53 s6 += i;
54 }
55
56 #pragma omp declare target to(f1, f2)