(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
doloop-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fno-unroll-loops" } */
       3  
       4  unsigned int
       5  foo1 (unsigned int l, int *a)
       6  {
       7    unsigned int i;
       8    for(i = 0;i < l; i++)
       9      a[i] = i;
      10    return l;
      11  }
      12  
      13  int
      14  foo2 (int l, int *a)
      15  {
      16    int i;
      17    for(i = 0;i < l; i++)
      18      a[i] = i;
      19    return l;
      20  }
      21  
      22  /* The place where we were getting an extra -1 is when converting from 32bits
      23     to 64bits as the ctr register is used as 64bits on powerpc64.  We should be
      24     able to do this loop without "add -1/zero_ext/add 1" to the l to get the
      25     number of iterations of this loop still doing a do-loop.  */
      26  
      27  /* { dg-final { scan-assembler-not {(?n)\maddi .*,.*,-1$} } } */
      28  /* { dg-final { scan-assembler-times "bdnz" 2 } } */
      29  /* { dg-final { scan-assembler-times "mtctr" 2 } } */