1 /* { dg-options "-fcilkplus" } */
2 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
3 /* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
9 #define FIB_ITERATION 30
11 void fib (int *, int);
16 int ii
= 0, error
= 0;
17 int fib_result
[FIB_ITERATION
+1], fib_serial_result
[FIB_ITERATION
+1];
20 for (ii
= 0; ii
<= FIB_ITERATION
; ii
++)
24 printf("fib (%2d) = %10d\n", ii
, result
);
27 for (ii
= 0; ii
<= FIB_ITERATION
; ii
++)
29 fib (&fib_result
[ii
], ii
);
32 fib_serial_result
[0] = 0;
33 fib_serial_result
[1] = 1;
35 for (ii
= 2; ii
<= FIB_ITERATION
; ii
++)
36 fib_serial_result
[ii
] = fib_serial_result
[ii
-1] + fib_serial_result
[ii
-2];
38 for (ii
= 0; ii
<= FIB_ITERATION
; ii
++)
40 if (fib_result
[ii
] != fib_serial_result
[ii
])
48 int fib_serial (int n
)
61 void fib(int *result
, int n
)
68 _Cilk_spawn
fib(&x
, n
-1);