aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/tree-prof/peel-1.c
blob: 65f0c562cd45c839cba68c2174e2e18bca6d4728 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* { dg-options "-O3 -fdump-rtl-loop2_unroll -fno-unroll-loops -fpeel-loops" } */
void abort();

int a[1000];
int
__attribute__ ((noinline))
t()
{
  int i;
  for (i=0;i<1000;i++)
    if (!a[i])
      return 1;
  abort ();
}
main()
{
  int i;
  for (i=0;i<1000;i++)
    t();
  return 0;
}
/* { dg-final-use { scan-rtl-dump "Considering simply peeling loop" "loop2_unroll" } } */
/* In fact one peeling is enough; we however mispredict number of iterations of the loop
   at least until loop_ch is schedule ahead of profiling pass.  */
/* { dg-final-use { cleanup-rtl-dump "loop2_unroll" } } */