2 /* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-optimized" } */
4 extern void abort (void);
5 extern void exit (int);
12 return n
+ sum (n
- 1);
20 return n
* fac (n
- 1);
28 return n
* n
+ sq_sum (n
- 1);
36 return 2 * pow2m1 (n
- 1) + 1;
44 return fib (n
- 2) + fib (n
- 1);
67 /* There is one call of sum in main and then 2 instances of the word in
68 ;; Function sum (sum) and one in the function header. */
69 /* { dg-final { scan-tree-dump-times "\\msum\\M" 4 "optimized"} } */
70 /* { dg-final { scan-tree-dump-times "\\mfac\\M" 4 "optimized"} } */
71 /* { dg-final { scan-tree-dump-times "\\msq_sum\\M" 4 "optimized"} } */
72 /* { dg-final { scan-tree-dump-times "\\mpow2m1\\M" 4 "optimized"} } */
74 /* There is one recursive call to fib. */
75 /* { dg-final { scan-tree-dump-times "\\mfib\\M" 5 "optimized"} } */
77 /* { dg-final { cleanup-tree-dump "optimized" } } */