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)7split_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)24main(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