[PATCH] D99750: [LV, VP]VP intrinsics support for the Loop Vectorizer

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 17 12:51:44 PST 2023


fhahn added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:986
+  auto *WideCanonicalIV =
+      cast<VPWidenCanonicalIVRecipe>(*FoundWidenCanonicalIVUser);
+  // Walk users of WideCanonicalIV and replace all compares of the form
----------------
ABataev wrote:
> fhahn wrote:
> > ABataev wrote:
> > > shiva0217 wrote:
> > > > There is a case that VPWidenCanonicalIVRecipe didn't be generated with tail folding.
> > > > 
> > > >     int i;
> > > >     int foo (int q, int z)
> > > >     {
> > > >       int e = 0;
> > > >       while (z < 1)
> > > >         {
> > > >           q = z * 2;
> > > >           if (q != 0)
> > > >             for (i = 0; i < 2; ++i)
> > > >               e = 5;
> > > >           ++z;
> > > >         }
> > > >       return e;
> > > >     }
> > > > 
> > > > `for (i = 0; i < 2; ++i)` been simplifed as `store i32 2, ptr @i`.
> > > > Both pointer and store value are loop-invariant, so the mask(VPWidenCanonicalIVRecipe) might not be generated.
> > > > Should we suppress the replacement when the mask is not available?
> > > Fixed, added the test
> > Was this fixed by adding the ` bool KeepVPCanonicalWidenRecipes` flag? What's the test case for this? There's a new `no_masking` case, but it has an empty body and no vector code is generated? 
> > 
> 1. Yes.
> 2. Yes, this test is a reduced version of the failed case
Is it possible it is over-reduced? The same IR seems to be generated both with and without `KeepVPCanonicalWidenRecipes` IIUC, because the loop is not vectorized due to being empty. 

What's the issue if there's no mask/canonical widen recipe? Wouldn't it be fine to jus not replace anything?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99750/new/

https://reviews.llvm.org/D99750



More information about the llvm-commits mailing list