/* { dg-do compile } */ /* { dg-options "-O3 -fdump-tree-fnsplit" } */ int b; int c; int d; split_me(int a) { int t = 0; if (d>4) return; do { long_function (t); long_function (t); long_function (t); long_function (t); long_function (t); long_function (t); make_me_irregular: long_function (t); long_function (t); long_function (t); long_function (t); long_function (t); t=b; } while (t); if (c) goto make_me_irregular; } main() { split_me (1); split_me (2); split_me (3); split_me (4); split_me (5); } /* { dg-final { scan-tree-dump-times "Splitting function" 1 "fnsplit"} } */ /* { dg-final { cleanup-tree-dump "fnsplit" } } */