> > > > Here's the test case I'm looking at with -O2 -ftree-vectorize. > > > > We will lose the restrict info here, and think that image1 and image2 > can point to the same thing, so we can't go further.
Sigh, we don't actually get to that point before we lose due to a missing casezerodiff.diff Attached will get you there.
Index: tree-data-ref.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/tree-data-ref.c,v retrieving revision 2.42 diff -u -p -r2.42 tree-data-ref.c --- tree-data-ref.c 15 Sep 2005 17:21:48 -0000 2.42 +++ tree-data-ref.c 18 Sep 2005 20:46:43 -0000 @@ -2497,7 +2497,17 @@ analyze_subscript_affine_affine (tree ch int init_a, init_b, gamma, gcd_alpha_beta; int tau1, tau2; lambda_matrix A, U, S; + tree difference = chrec_fold_minus (integer_type_node, chrec_a, chrec_b); + if (integer_zerop (difference)) + { + /* The difference is equal to zero: the accessed index + overlaps for each iteration in the loop. */ + *overlaps_a = integer_zero_node; + *overlaps_b = integer_zero_node; + *last_conflicts = chrec_dont_know; + return; + } if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "(analyze_subscript_affine_affine \n");