Richard Biener <rguent...@suse.de> writes: > Whether a vector DR is aligned or not depends on the vectorization > scheme but at the point of computing peeling for alignment > that has not been determined so we try to work with scalar DRs. > > For the uses by vectorizable_load/store I pondered to pass > the memory_access_type down to vect_supportable_dr_alignment but > that obviously doesn't work for peeling. > > I suppose we should delay peeling/versioning for alignment until > after vectorizable_load/store computes the actual vector DRs > and align/version those (won't versioning for alias have the > same issues?).
Yeah, I guess it's a bit chicken-and-egg: vectorizable_load/store need to know whether the operation can be aligned by peeling before deciding how to implement it, whereas peeling needs to know how vectorizable_load/store would implement something in order to know what alignment is needed. Richard