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)5int 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()19int 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()33int 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