]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/g++.dg/cilk-plus/AN/preincr_test.cc
[Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd
[thirdparty/gcc.git] / gcc / testsuite / g++.dg / cilk-plus / AN / preincr_test.cc
1 /* { dg-do run } */
2 /* { dg-options "-fcilkplus" } */
3
4
5 #define HAVE_IO 0
6
7 #if HAVE_IO
8 #include <cstdio>
9 #endif
10
11 #include <cstdlib>
12 template <class T> int main2(int argc);
13
14 int main (void)
15 {
16 return (main2<int>(1) + main2<long> (1) + main2<long long> (1));
17 }
18
19 #if HAVE_IO
20 template <class T> int print_array (T *array, int size);
21 template <class T> int print_array (T *array, int size)
22 {
23 for (int ii = 0; ii < size; ii++)
24 printf("%d ", array[ii]);
25 printf("\n");
26 return 0;
27 }
28 #endif
29
30 template <class T>
31 int main2(int argc)
32 {
33 int array[10], array_serial[10];
34
35 for (int ii = 0; ii < 10; ii++) {
36 array[ii] = 0;
37 array_serial[ii] = 0;
38 }
39
40 array[:] = 19383;
41 for (int ii = 0; ii < 10; ii++)
42 array_serial[ii] = 19383;
43
44 ++array[:];
45
46 for (int ii = 0; ii < 10; ii++)
47 ++array_serial[ii];
48
49 #if HAVE_IO
50 print_array<T>(array, 10);
51 print_array<T>(array_serial, 10);
52 #endif
53 for (int ii = 0; ii < 10; ii++)
54 if (array_serial[ii] != array[ii])
55 return 1;
56
57 for (int ii = 0; ii < 10; ii++)
58 ++array[:];
59
60 for (int ii = 0; ii < 10; ii++)
61 for (int jj = 0; jj < 10; jj++)
62 ++array_serial[jj];
63
64 #if HAVE_IO
65 print_array<T>(array, 10);
66 print_array<T>(array_serial, 10);
67 #endif
68 for (int ii = 0; ii < 10; ii++)
69 if (array_serial[ii] != array[ii])
70 return 2;
71
72 if (argc == 2)
73 ++array[0:10:1];
74
75 if (argc == 2)
76 {
77 for (int ii = 0; ii < 10; ii++)
78 ++array_serial[ii];
79 }
80
81 #if HAVE_IO
82 print_array<T>(array, 10);
83 print_array<T>(array_serial, 10);
84 #endif
85 for (int ii = 0; ii < 10; ii++)
86 if (array_serial[ii] != array[ii])
87 return 3;
88
89 ++array[0:10/argc:argc];
90
91 for (int ii = 0; ii < 10; ii += argc)
92 {
93 ++array_serial[ii];
94 }
95
96 #if HAVE_IO
97 print_array<T>(array, 10);
98 print_array<T>(array_serial, 10);
99 #endif
100
101 for (int ii = 0; ii < 10; ii++)
102 if (array_serial[ii] != array[ii])
103 return 4;
104
105 return 0;
106 }