1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-tree-fnsplit" } */
3 int b;
4 int c;
5 int d;
6 void long_function (int);
7 void
split_me(int a)8 split_me(int a)
9 {
10   int t = 0;
11   if (d>4)
12     return;
13   do
14    {
15   long_function (t);
16   long_function (t);
17   long_function (t);
18   long_function (t);
19   long_function (t);
20   long_function (t);
21   make_me_irregular:
22   long_function (t);
23   long_function (t);
24   long_function (t);
25   long_function (t);
26   long_function (t);
27    t=b;
28    }
29   while (t);
30   if (c)
31     goto make_me_irregular;
32 }
33 
34 int
main()35 main()
36 {
37   split_me (1);
38   split_me (2);
39   split_me (3);
40   split_me (4);
41   split_me (5);
42 }
43 /* { dg-final { scan-tree-dump-times "Splitting function" 1 "fnsplit"} } */
44