[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized
ienkovich at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 29 11:31:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729
--- Comment #14 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #13)
> (In reply to Yuri Rumyantsev from comment #12)
> > Created attachment 38367 [details]
> > modified patch
>
> The loop->aux flagging looks redundant to me. Why is ->safelen only valid
> before vectorization? I suppose we're lucky that no pass before
> vectorization
> applies any unrolling (like predictive commoning for example) as such pass
> must adjust ->safelen accordingly. But as LIM only cares for safelen > 0
> _this_ property shouldn't change, not even by vectorization, no?
>
SIMD lane access is not invariant before vectorization but is invariant after
vectorization. This means when GOMP_SIMD_LANE calls are removed we can't use
safelen for invariant moves anymore.
More information about the Gcc-bugs
mailing list