This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/62630] [5 regression] gcc.dg/graphite/vect-pr43423.c FAILs


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62630

--- Comment #14 from Mircea Namolaru <mircea.namolaru at inria dot fr> ---
It seems to me that scalar evolution succeeds to determine
the number of iterations for the case of signed longs. Looking
in vectorization dump, first a symbolic expression for the number of 
iterations of a loop is found, and then vect_analyze_refs is entered.
The problem is that the code expect an offset of a load to be an induction
variable, 
but in our case an offset is only a cast of an induction variable, like
below:

 _56 = (intD.6) graphite_IV.5_53;
 _55 = aD.1830[_56];

The offset is found not to be an affine expression, and vectorization don't
succeed. But as the offset is a cast of an induction variable, it has the same
behaviour as an induction variable even if formally is not one. It seems to me
that somehow extending the code to support casts of induction variables
will solve our this problem.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]