111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O3 -Werror -Wunknown-pragmas -fcilkplus" } */
|
|
3
|
|
4 volatile int *a, *b;
|
|
5
|
|
6 void foo()
|
|
7 {
|
|
8 int i, j, k;
|
|
9
|
|
10 #pragma simd assert /* { dg-error "expected '#pragma simd' clause" } */
|
|
11 for (i=0; i < 100; ++i)
|
|
12 a[i] = b[i];
|
|
13
|
|
14 #pragma simd vectorlength /* { dg-error "expected '\\('" } */
|
|
15 for (int i=0; i < 1000; ++i)
|
|
16 a[i] = b[j];
|
|
17
|
|
18 #pragma simd vectorlength /* { dg-error "expected '\\('" } */
|
|
19 for (int i=0; i < 1000; ++i)
|
|
20 a[i] = b[j];
|
|
21
|
|
22 #pragma simd vectorlength(sizeof (a) == sizeof (float) ? 4 : 8)
|
|
23 for (int i=0; i < 1000; ++i)
|
|
24 a[i] = b[j];
|
|
25
|
|
26 #pragma simd vectorlength(4,8) /* { dg-error "expected '\\)'" } */
|
|
27 for (int i=0; i < 1000; ++i)
|
|
28 a[i] = b[j];
|
|
29
|
|
30 #pragma simd vectorlength(i) /* { dg-error "\(vectorlength must be an integer\|in a constant\)" } */
|
|
31 for (int i=0; i < 1000; ++i)
|
|
32 a[i] = b[j];
|
|
33
|
|
34 #pragma simd linear(35) /* { dg-error "expected identifier" } */
|
|
35 for (int i=0; i < 1000; ++i)
|
|
36 a[i] = b[j];
|
|
37
|
|
38 #pragma simd linear(blah) /* { dg-error "'blah' \(undeclared\|has not been\)" } */
|
|
39 for (int i=0; i < 1000; ++i)
|
|
40 a[i] = b[j];
|
|
41
|
|
42 #pragma simd linear(j, 36, k) /* { dg-error "expected" } */
|
|
43 for (int i=0; i < 1000; ++i)
|
|
44 a[i] = b[j];
|
|
45
|
|
46 #pragma simd linear(i, j)
|
|
47 for (int i=0; i < 1000; ++i)
|
|
48 a[i] = b[j];
|
|
49
|
|
50 #pragma simd linear(i)
|
|
51 for (int i=0; i < 1000; ++i)
|
|
52 a[i] = b[j];
|
|
53
|
|
54 #pragma simd linear(i : 4)
|
|
55 for (int i=0; i < 1000; ++i)
|
|
56 a[i] = b[j];
|
|
57
|
|
58 #pragma simd linear(i : 2, j : 4, k)
|
|
59 for (int i=0; i < 1000; ++i)
|
|
60 a[i] = b[j];
|
|
61
|
|
62 #pragma simd linear(j : sizeof (a) == sizeof (float) ? 4 : 8)
|
|
63 for (int i=0; i < 1000; ++i)
|
|
64 a[i] = b[j];
|
|
65
|
|
66 // And now everyone in unison!
|
|
67 #pragma simd linear(j : 4) vectorlength(4)
|
|
68 for (int i=0; i < 1000; ++i)
|
|
69 a[i] = b[j];
|
|
70
|
|
71 #pragma simd linear(blah2, 36)
|
|
72 /* { dg-error "'blah2' \(undeclared\|has not been\)" "undeclared" { target *-*-* } .-1 } */
|
|
73 /* { dg-error "expected" "expected" { target *-*-* } .-2 } */
|
|
74 for (int i=0; i < 1000; ++i)
|
|
75 a[i] = b[j];
|
|
76
|
|
77 #pragma simd linear(j : k)
|
|
78 for (int i=0; i < 1234; ++i)
|
|
79 a[i] = b[j];
|
|
80 }
|