https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96451

--- Comment #6 from Kewen Lin <linkw at gcc dot gnu.org> ---
(In reply to rguent...@suse.de from comment #4)
> On Wed, 5 Aug 2020, linkw at gcc dot gnu.org wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96451
> > 
> > --- Comment #3 from Kewen Lin <linkw at gcc dot gnu.org> ---
> > (In reply to Richard Biener from comment #2)
> > > possibly a latent issue since the patch is supposed to be cost-only
> > 
> > Yes, this case will hit ICE too with -fno-vect-cost-model even without the
> > culprit commit.
> > 
> > Without that commit, the costing says it's not profitable to vectorize the
> > epilogue further, while with that we are able to vectorize the epilogue. 
> > With
> > the forced option -fdbg-cnt=vect_loop:1, it only allows us to vectorize one
> > loop, so it skips the epilogue which has the scalar mask_store statement 
> > from
> > if-cvt and is determined to be vectorized.
> > 
> > I'm not sure what the dbg counter should mean for loop vect. If it's for the
> > original scalar loop, then the main vectorized loop and the epilogue loop 
> > to be
> > vectorized should be vectorized. The fix could be: 
> > 
> > diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
> > index 26a1846..150bdcf 100644
> > --- a/gcc/tree-vectorizer.c
> > +++ b/gcc/tree-vectorizer.c
> > @@ -1066,7 +1066,7 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf>
> > *&simduid_to_vf_htab,
> >        return ret;
> >      }
> > 
> > -  if (!dbg_cnt (vect_loop))
> > +  if (!LOOP_VINFO_EPILOGUE_P (loop_vinfo) && !dbg_cnt (vect_loop))
> >      {
> >        /* Free existing information if loop is analyzed with some
> >          assumptions.  */
> > 
> > If the dbg counter is for all kinds of loop (main or epilogue), the fix 
> > seems
> > to be: add one interface for dbg counter framework to query the remaining
> > allowed count, compare the remaining number and the number of epilogue 
> > loops in
> > vect_do_peeling, then remove the exceeding epilogue loops there.
> 
> I think the above patch is OK and is what was originally intended.
> 
> Care to push it to master?

Thanks for the confirmation! I'll proceed with one formal patch.

Reply via email to