[llvm] [VPlan] Unroll VPReplicateRecipe by VF. (PR #142433)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 25 12:02:38 PDT 2025
================
@@ -495,9 +495,9 @@ Value *VPInstruction::generate(VPTransformState &State) {
}
case Instruction::ExtractElement: {
assert(State.VF.isVector() && "Only extract elements from vectors");
- Value *Vec = State.get(getOperand(0));
- Value *Idx = State.get(getOperand(1), /*IsScalar=*/true);
- return Builder.CreateExtractElement(Vec, Idx, Name);
+ unsigned IdxToExtract =
+ cast<ConstantInt>(getOperand(1)->getLiveInIRValue())->getZExtValue();
+ return State.get(getOperand(0), VPLane(IdxToExtract));
----------------
fhahn wrote:
I had to update the code here; there is code that may construct ExtractElement with non-constant values (early-exit with forced interleaving, where it is the first active lane)
https://github.com/llvm/llvm-project/pull/142433
More information about the llvm-commits
mailing list