* auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / linear-2.C
blobeed982276e7f2f0966261636ee8c2202030fed3a
1 // { dg-do compile }
2 // { dg-options "-fopenmp" }
4 #pragma omp declare target
6 int i, j;
8 void
9 f1 ()
11   #pragma omp for linear (i:1)  // { dg-error "iteration variable .i. should not be linear" }
12   for (i = 0; i < 32; i++)
13     ;
16 void
17 f2 ()
19   #pragma omp distribute parallel for linear (i:1)      // { dg-error ".linear. is not valid for .#pragma omp distribute parallel for." }
20   for (i = 0; i < 32; i++)
21     ;
24 void
25 f3 ()
27   #pragma omp parallel for linear (i:1) collapse(1)
28   for (i = 0; i < 32; i++)                              // { dg-error "iteration variable .i. should not be linear" }
29     ;
32 void
33 f4 ()
35   #pragma omp for linear (i:1) linear (j:2) collapse(2) // { dg-error "iteration variable .i. should not be linear" }
36   for (i = 0; i < 32; i++)                              // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 }
37     for (j = 0; j < 32; j+=2)
38       ;
41 void
42 f5 ()
44   #pragma omp target teams distribute parallel for linear (i:1) linear (j:2) collapse(2)        // { dg-error ".linear. is not valid for .#pragma omp target teams distribute parallel for." }
45   for (i = 0; i < 32; i++)
46     for (j = 0; j < 32; j+=2)
47       ;
50 void
51 f6 ()
53   #pragma omp parallel for linear (i:1) collapse(2) linear (j:2)        // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } .+1 }
54   for (i = 0; i < 32; i++)                                              // { dg-error "iteration variable .j. should not be linear" }
55     for (j = 0; j < 32; j+=2)
56       ;
59 template <int N>
60 void
61 f7 ()
63   #pragma omp for linear (i:1)  // { dg-error "iteration variable .i. should not be linear" }
64   for (i = 0; i < 32; i++)
65     ;
68 template <int N>
69 void
70 f8 ()
72   #pragma omp distribute parallel for linear (i:1)      // { dg-error ".linear. is not valid for .#pragma omp distribute parallel for." }
73   for (i = 0; i < 32; i++)
74     ;
77 template <int N>
78 void
79 f9 ()
81   #pragma omp parallel for linear (i:1) collapse(1)
82   for (i = 0; i < 32; i++)                              // { dg-error "iteration variable .i. should not be linear" }
83     ;
86 template <int N>
87 void
88 f10 ()
90   #pragma omp for linear (i:1) linear (j:2) collapse(2) // { dg-error "iteration variable .i. should not be linear" }
91   for (i = 0; i < 32; i++)                              // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 }
92     for (j = 0; j < 32; j+=2)
93       ;
96 template <int N>
97 void
98 f11 ()
100   #pragma omp target teams distribute parallel for linear (i:1) linear (j:2) collapse(2)        // { dg-error ".linear. is not valid for .#pragma omp target teams distribute parallel for." }
101   for (i = 0; i < 32; i++)
102     for (j = 0; j < 32; j+=2)
103       ;
106 template <int N>
107 void
108 f12 ()
110   #pragma omp parallel for linear (i:1) collapse(2) linear (j:2)        // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } .+1 }
111   for (i = 0; i < 32; i++)                                              // { dg-error "iteration variable .j. should not be linear" }
112     for (j = 0; j < 32; j+=2)
113       ;
116 #pragma omp end declare target
118 void
119 f13 ()
121   f7 <0> ();
122   #pragma omp target teams
123   f8 <1> ();
124   f9 <2> ();
125   f10 <3> ();
126   f11 <4> ();
127   f12 <5> ();