Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.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 run } */ | |
2 /* { dg-options "-fcilkplus" } */ | |
3 | |
4 #define NUMBER 100 | |
5 #if HAVE_IO | |
6 #include <stdio.h> | |
7 #endif | |
8 | |
9 int main(void) | |
10 { | |
11 int argc = 1; | |
12 int ii,array[NUMBER], y = 0, y_int = 0, array2[NUMBER], y_int2=0, y2=0; | |
13 double x, yy, array3[NUMBER], array4[NUMBER]; | |
14 int all_zero, all_nonzero, any_zero, any_nonzero; | |
15 for (ii = 0; ii < NUMBER; ii++) | |
16 { | |
17 array[ii] = 0; | |
18 array2[ii] = 5; | |
19 if (ii%2 && ii) | |
20 array3[ii] = (double)(1.0000/(double)ii); | |
21 else | |
22 array3[ii] = (double) ii + 0.00; | |
23 array4[ii] = (double) (1.00000/ (double)(ii+1)); | |
24 } | |
25 __asm volatile ("" : "+r" (argc)); | |
26 y_int = __sec_reduce_any_nonzero (array3[:] + array[4]); | |
27 y_int2 = __sec_reduce_any_zero (array3[:] + array[4]); | |
28 y = __sec_reduce_all_nonzero ((array3[:] + array4[:]) * (argc-1)); | |
29 y2 = __sec_reduce_all_zero ((array3[:] + array4[:]) * (argc-1)); | |
30 | |
31 any_zero = 0; | |
32 any_nonzero = 0; | |
33 for (ii = 0; ii < NUMBER; ii++) | |
34 { | |
35 if ((array3[ii] + array[4]) == 0) | |
36 any_zero = 1; | |
37 else | |
38 any_nonzero = 1; | |
39 } | |
40 | |
41 if (any_nonzero != y_int) | |
42 return 1; | |
43 if (any_zero != y_int2) | |
44 return 2; | |
45 | |
46 | |
47 all_zero = 0; | |
48 all_nonzero = 0; | |
49 for (ii = 0; ii < NUMBER; ii++) | |
50 { | |
51 if (((array3[ii] + array4[ii]) * (argc-1)) == 0) | |
52 all_zero = 1; | |
53 else | |
54 all_nonzero = 1; | |
55 } | |
56 | |
57 if (y != all_nonzero) | |
58 return 3; | |
59 if (all_zero != y2) | |
60 return 4; | |
61 | |
62 | |
63 #if HAVE_IO | |
64 for (ii = 0; ii < NUMBER; ii++) { | |
65 printf("%5.3f ", array3[ii] +array4[ii]); | |
66 } | |
67 printf("\n"); | |
68 for (ii = 0; ii < NUMBER; ii++) { | |
69 printf("%5.3f ", (array3[ii] + array4[ii]) * (argc-1)); | |
70 } | |
71 printf("\n"); | |
72 printf("Any Non-zeros (1st line) = %d\t All non-zeros (1st line) = %d\n", | |
73 y_int, y); | |
74 printf("Any zeros (2nd line) = %d\t All zeros (2nd line) = %d\n", y_int2, y2); | |
75 #endif | |
76 return 0; | |
77 } |