> Hi Richard,
>
>
...
> However...,
>
> I have seen cases in which complete unrolling before vectorization
enabled
> constant propagation, which in turn enabled significant simplification of
> the code, thereby, in fact making a previously unvectorizable loop (at
> least on some targets, due to the presence of divisions, unsupported in
the
> vector unit), into a loop (in which the divisions were replaced with
> constants), that can be vectorized.
>
> Also, given that we are working on "SLP" kind of technology (straight
line
> code vectorization), which would make vectorization less sensitive to
> unrolling, I think maybe it's not such a bad idea after all... One option
> is to increase the default value of --param min-vect-loop-bound for now,
> and when SLP is incorporated, go ahead and schedule early complete
> unrolling. However, since SLP implementation may take some time
(hopefully
> within the time frame of 4.3 though) - we could just go ahead and
schedule
> early complete unrolling right now. (I can't believe I'm in favor of this
> idea, but that loop I was talking about before - improved by a factor
over
> 20x when early complete unrolling + subsequent vectorization were
> applied...)
>

After sleeping on it, it actually makes a lot of sense to me to schedule
complete loop unrolling before vectorization - I think it would either
simplify loops (sometimes creating more opportunities for vectorization),
or prevent vectorization of loops we probably don't want to vectorize
anyhow, and even that - only temporarily - until we have straight-line-code
vectorization in place. So I'm all for it.

dorit

> dorit
>
>
> > Thanks,
> > Richard.
> >
> > --
> > Richard Guenther <[EMAIL PROTECTED]>
> > Novell / SUSE Labs
>

Reply via email to