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