1 /* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */
2 /* { dg-options "-O2 -m64 -fdump-tree-ivopts-details" } */
3
4 #ifndef TYPE
5 #define TYPE char*
6 #endif
7
8 extern char a[];
9
10 /* Can not infer loop iteration from array -- exit test can not be
11 replaced by the array address. */
foo(unsigned int i_width,TYPE dst)12 void foo (unsigned int i_width, TYPE dst)
13 {
14 unsigned long long i = 0;
15 unsigned long long j = 0;
16 for ( ; j < i_width; )
17 {
18 *dst = a[i];
19 dst++;
20 i += 2;
21 j += 1;
22 }
23 }
24
25 /* { dg-final { scan-tree-dump-times "\[^:\]*if \\(.*j_\[0-9\]+.*\\)" 1 "ivopts"} } */
26