[llvm] [VPlan] Prefer checking opcode over underlying value (NFC) (PR #193463)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 22 03:53:20 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Ramkumar Ramachandra (artagnon)
<details>
<summary>Changes</summary>
When possible, we should check opcodes instead of underlying values. This aligns with our long-term goal of getting rid of underlying values altogether.
---
Full diff: https://github.com/llvm/llvm-project/pull/193463.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp (+3-4)
``````````diff
diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
index 2234b2c5d56a3..af58bad6ad61f 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
@@ -1845,7 +1845,7 @@ static void narrowToSingleScalarRecipes(VPlan &Plan) {
}
auto *RepOrWidenR = dyn_cast<VPRecipeWithIRFlags>(&R);
- if (RepR && isa<StoreInst>(RepR->getUnderlyingInstr()) &&
+ if (RepR && RepR->getOpcode() == Instruction::Store &&
vputils::isSingleScalar(RepR->getOperand(1))) {
auto *Clone = new VPReplicateRecipe(
RepOrWidenR->getUnderlyingInstr(), RepOrWidenR->operands(),
@@ -5450,8 +5450,7 @@ narrowInterleaveGroupOp(VPValue *V, SmallPtrSetImpl<VPValue *> &NarrowedOps) {
}
if (auto *RepR = dyn_cast<VPReplicateRecipe>(R)) {
- assert(RepR->isSingleScalar() &&
- isa<LoadInst>(RepR->getUnderlyingInstr()) &&
+ assert(RepR->isSingleScalar() && RepR->getOpcode() == Instruction::Load &&
"must be a single scalar load");
NarrowedOps.insert(RepR);
return RepR;
@@ -6551,7 +6550,7 @@ void VPlanTransforms::createPartialReductions(VPlan &Plan,
if (auto *RdxResult = vputils::findComputeReductionResult(RedPhiR)) {
if (any_of(RdxResult->users(), [](VPUser *U) {
auto *RepR = dyn_cast<VPReplicateRecipe>(U);
- return RepR && isa<StoreInst>(RepR->getUnderlyingInstr());
+ return RepR && RepR->getOpcode() == Instruction::Store;
})) {
Chains.clear();
break;
``````````
</details>
https://github.com/llvm/llvm-project/pull/193463
More information about the llvm-commits
mailing list