[PATCH] D97136: [VPlan] Support to widen select intructions in VPlan native path

Andrei Elovikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 3 13:24:13 PST 2021


a.elovikov added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:75
+        } else if (SelectInst *SI = dyn_cast<SelectInst>(Inst)) {
+          bool InvariantCond = PSE.getSE()->isLoopInvariant(
+              PSE.getSCEV(SI->getOperand(0)), OrigLoop);
----------------
fhahn wrote:
> Kazhuu wrote:
> > fhahn wrote:
> > > I think we should test all possible for loop invariant conditions (in inner & outer loop).
> > Can you elaborate a bit what you mean? Like test that is the condition invariant for all inner and outer loops?
> Currently the condition of the select in the inner loop is invariant (because it's a function argument). We should have tests with conditions that are invariant only in parts of the loop (e.g. a select with a condition that depends on inner & outer IVs  in the inner loop, a select with a condition that depends on the outer IV in the inner loop).
@fhahn, are there any plans to start using DivergenceAnalysis instead of SE for the purpose of checking the uniformity?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97136



More information about the llvm-commits mailing list