1  /* { dg-do compile { target size32plus } } */
       2  /* { dg-options "-O2 -ftree-loop-distribution -ftree-loop-distribute-patterns -fdump-tree-ldist-details" } */
       3  
       4  void bar(char *s);
       5  int foo1(unsigned short l)
       6  {
       7    char c[10000] = {};
       8    unsigned short nchar = 9999;
       9  
      10    while(nchar-- != l)
      11      {
      12        c[nchar] = 'A';
      13      }
      14  
      15    bar (c);
      16    return 0;
      17  }
      18  
      19  int foo2()
      20  {
      21    char c[100000] = {};
      22    unsigned short nchar;
      23  
      24    for (nchar = 0; nchar != 1000; --nchar)
      25      {
      26        c[nchar] = 'A';
      27      }
      28  
      29    bar (c);
      30    return 0;
      31  }
      32  
      33  int foo3()
      34  {
      35    char c[100000] = {};
      36    unsigned short nchar;
      37  
      38    for (nchar = 0; nchar != 1000; nchar += 3)
      39      {
      40        c[nchar] = 'A';
      41      }
      42  
      43    bar (c);
      44    return 0;
      45  }
      46  
      47  /* { dg-final { scan-tree-dump-times "failed: evolution of offset is not affine" 3 "ldist" } } */