[PATCH 1v2/3][vect] Add main vectorized loop unrolling
Richard Biener
rguenther@suse.de
Tue Nov 30 13:56:16 GMT 2021
On Tue, 30 Nov 2021, Andre Vieira (lists) wrote:
>
> On 25/11/2021 12:46, Richard Biener wrote:
> > Oops, my fault, yes, it does. I would suggest to refactor things so
> > that the mode_i = first_loop_i case is there only once. I also wonder
> > if all the argument about starting at 0 doesn't apply to the
> > not unrolled LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P as well? So
> > what's the reason to differ here? So in the end I'd just change
> > the existing
> >
> > if (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P (first_loop_vinfo))
> > {
> >
> > to
> >
> > if (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P (first_loop_vinfo)
> > || first_loop_vinfo->suggested_unroll_factor > 1)
> > {
> >
> > and maybe revisit this when we have an actual testcase showing that
> > doing sth else has a positive effect?
> >
> > Thanks,
> > Richard.
>
> So I had a quick chat with Richard Sandiford and he is suggesting resetting
> mode_i to 0 for all cases.
>
> He pointed out that for some tunings the SVE mode might come after the NEON
> mode, which means that even for not-unrolled loop_vinfos we could end up with
> a suboptimal choice of mode for the epilogue. I.e. it could be that we pick
> V16QI for main vectorization, but that's VNx16QI + 1 in the array, so we'd not
> try VNx16QI for the epilogue.
>
> This would simplify the mode selecting cases, by just simply restarting at
> mode_i in all epilogue cases. Is that something you'd be OK?
Works for me with an updated comment. Even better with showing a
testcase exercising such tuning.
Richard.
More information about the Gcc-patches
mailing list