1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-fnsplit-blocks-details" } */
3 void q (void);
4 int b;
5 void test (void);
6 void
split_me(int * a)7 split_me (int *a)
8 {
9   if (__builtin_expect (a==0, 0))
10     do
11     {
12       test();
13       test();
14       test();
15       test();
16       test();
17     }
18     while (b);
19   else
20     q();
21 }
22 
23 int
main(void)24 main(void)
25 {
26   int i;
27   for (i = 0; i < 1000; i++)
28     split_me(&i);
29   return 0;
30 }
31 
32 /* { dg-final { scan-tree-dump-times "Splitting function at:" 1 "fnsplit"} } */
33 /* { dg-final { scan-tree-dump-times "Invalid sum" 0 "fnsplit"} } */
34