1 template <int N>
2 struct S
3 {
4 int s;
5 #pragma omp declare simd notinbranch
6 int f0 (int x);
7 #pragma omp declare simd notinbranch uniform(this)
8 int f1 (int x);
9 #pragma omp declare simd notinbranch linear(this:sizeof(this)/sizeof(this))
10 int f2 (int x);
11 };
12
13 template <int N>
14 struct T
15 {
16 int t[64];
17 #pragma omp declare simd aligned(this:32) uniform(this) linear(x)
18 int f3 (int x);
19 };