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);
foo1(unsigned short l)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 
foo2()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 
foo3()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" } } */
48