comparison gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
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 }