aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c
blob: 27d117ec2f076f8a03177ef208dfead3b4b7f523 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/* { dg-do compile } */
/* { dg-options "-O3 -Werror -Wunknown-pragmas -fcilkplus" } */

volatile int *a, *b;

void foo()
{
  int i, j, k;

#pragma simd assert /* { dg-error "expected '#pragma simd' clause" } */
  for (i=0; i < 100; ++i)
    a[i] = b[i];

#pragma simd vectorlength /* { dg-error "expected '\\('" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd vectorlength /* { dg-error "expected '\\('" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd vectorlength(sizeof (a) == sizeof (float) ? 4 : 8)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd vectorlength(4,8) /* { dg-error "expected '\\)'" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd vectorlength(i) /* { dg-error "\(vectorlength must be an integer\|in a constant\)" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(35) /* { dg-error "expected identifier" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(blah) /* { dg-error "'blah' \(undeclared\|has not been\)" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(j, 36, k) /* { dg-error "expected" } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(i, j)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(i)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(i : 4)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(i : 2, j : 4, k)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(j : sizeof (a) == sizeof (float) ? 4 : 8)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

  // And now everyone in unison!
#pragma simd linear(j : 4) vectorlength(4)
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(blah2, 36)
  /* { dg-error "'blah2' \(undeclared\|has not been\)" "undeclared" { target *-*-* } 71 } */
  /* { dg-error "expected" "expected" { target *-*-* } 71 } */
  for (int i=0; i < 1000; ++i)
    a[i] = b[j];

#pragma simd linear(j : k)
  for (int i=0; i < 1234; ++i)
    a[i] = b[j];
}