1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-rtl-loop2_unroll -funroll-loops" } */
       3  struct a {int a[7];};
       4  int t(struct a *a, int n)
       5  {
       6    int i;
       7    for (i=0;i<n;i++)
       8      a->a[i]++;
       9  }
      10  /* { dg-final { scan-rtl-dump-not "Unrolled loop" "loop2_unroll" } } */
      11  /* { dg-final { scan-rtl-dump "likely upper bound: 7" "loop2_unroll" } } */
      12  /* { dg-final { scan-rtl-dump "realistic bound: -1" "loop2_unroll" } } */
      13  /* { dg-final { scan-rtl-dump "Not unrolling loop, doesn't roll" "loop2_unroll" } } */
      14  /* { dg-final { scan-rtl-dump-not "Invalid sum" "loop2_unroll" } } */
      15  /* { dg-final { scan-rtl-dump-not "upper bound: -1" "loop2_unroll" } } */