/* { dg-do compile } */ /* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-profile_estimate -fno-finite-loops -fdisable-tree-ethread" } */ /* Note: Threader causes removal of for loop. */ extern int global; extern int global2; extern int global3; void foo (int base) { int i; while (global < 10) { if(global || global2 || global3) return; for (i = base; i < 10; i++) if (i > 123) return; } } /* { dg-final { scan-tree-dump-times "first match heuristics: 2.20%" 3 "profile_estimate"} } */ /* { dg-final { scan-tree-dump-times "first match heuristics: 5.50%" 1 "profile_estimate"} } */