On Mon, 3 Feb 2014, Richard Biener wrote: > And note that for the case in question we > can derive non-aliasing because with > > p[i] += q[i]; > > p[i] is both read _and_ written in the same iteration thus > it cannot have the dynamic type of q[i] before it's stored > into. Of course data-dependence doesn't do this kind of > analysis currently, but it certainly could.
The vectorizer already has code to analyzes data-refs for groups, not for read-write of the same loc as needed here, so it could be reasonably easy to extend its analysis to detect this case and mark the write DR with a flag so that in vect_analyze_data_ref_dependence the _vectorizer_ could apply TBAA to disambiguate the two DRs. Richard.