[llvm] 66c35eb - [VPlan] Avoid branching around State.get (NFC) (#159042)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 22 02:31:20 PDT 2025
Author: Ramkumar Ramachandra
Date: 2025-09-22T10:31:16+01:00
New Revision: 66c35ebf3c0914131cb26a47813149b9fe490a51
URL: https://github.com/llvm/llvm-project/commit/66c35ebf3c0914131cb26a47813149b9fe490a51
DIFF: https://github.com/llvm/llvm-project/commit/66c35ebf3c0914131cb26a47813149b9fe490a51.diff
LOG: [VPlan] Avoid branching around State.get (NFC) (#159042)
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
index 9195af376601f..aa3de3613b68e 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
@@ -1933,10 +1933,8 @@ void VPWidenSelectRecipe::execute(VPTransformState &State) {
// loop. This means that we can't just use the original 'cond' value.
// We have to take the 'vectorized' value and pick the first lane.
// Instcombine will make this a no-op.
- auto *InvarCond =
- isInvariantCond() ? State.get(getCond(), VPLane(0)) : nullptr;
+ Value *Cond = State.get(getCond(), isInvariantCond());
- Value *Cond = InvarCond ? InvarCond : State.get(getCond());
Value *Op0 = State.get(getOperand(1));
Value *Op1 = State.get(getOperand(2));
Value *Sel = State.Builder.CreateSelect(Cond, Op0, Op1);
@@ -2495,18 +2493,14 @@ void VPWidenGEPRecipe::execute(VPTransformState &State) {
// produce a vector of pointers unless VF is scalar.
// The pointer operand of the new GEP. If it's loop-invariant, we
// won't broadcast it.
- auto *Ptr = isPointerLoopInvariant() ? State.get(getOperand(0), VPLane(0))
- : State.get(getOperand(0));
+ auto *Ptr = State.get(getOperand(0), isPointerLoopInvariant());
// Collect all the indices for the new GEP. If any index is
// loop-invariant, we won't broadcast it.
SmallVector<Value *, 4> Indices;
for (unsigned I = 1, E = getNumOperands(); I < E; I++) {
VPValue *Operand = getOperand(I);
- if (isIndexLoopInvariant(I - 1))
- Indices.push_back(State.get(Operand, VPLane(0)));
- else
- Indices.push_back(State.get(Operand));
+ Indices.push_back(State.get(Operand, isIndexLoopInvariant(I - 1)));
}
// Create the new GEP. Note that this GEP may be a scalar if VF == 1,
More information about the llvm-commits
mailing list