From bdb299a67eb863b1b1e6241d7964e7108f1a42aa Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sat, 28 Jun 2025 22:52:55 +0100 Subject: [PATCH] [VPlan] Simplify code in single scalar transform code (NFC). Adjust code as suggested post-commit 3b7b95f78e2. https://github.com/llvm/llvm-project/commit/3b7b95f78e24aca5175b8f864bfea2953a2dd34f#r160997427 --- llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp | 4 ++-- llvm/lib/Transforms/Vectorize/VPlanUtils.h | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp index 962c789884b5..bcfb889469ea 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp @@ -1220,9 +1220,9 @@ static void narrowToSingleScalarRecipes(VPlan &Plan) { for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly( vp_depth_first_shallow(Plan.getVectorLoopRegion()->getEntry()))) { for (VPRecipeBase &R : make_early_inc_range(reverse(*VPBB))) { - auto *RepR = dyn_cast(&R); - if (!RepR && !isa(&R)) + if (!isa(&R)) continue; + auto *RepR = dyn_cast(&R); if (RepR && (RepR->isSingleScalar() || RepR->isPredicated())) continue; diff --git a/llvm/lib/Transforms/Vectorize/VPlanUtils.h b/llvm/lib/Transforms/Vectorize/VPlanUtils.h index 962f676a07b2..8dcd57f1b359 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanUtils.h +++ b/llvm/lib/Transforms/Vectorize/VPlanUtils.h @@ -69,14 +69,13 @@ inline bool isSingleScalar(const VPValue *VPV) { return Rep->isSingleScalar() || (PreservesUniformity(Rep->getOpcode()) && all_of(Rep->operands(), isSingleScalar)); } - if (isa(VPV)) + if (isa(VPV)) return all_of(VPV->getDefiningRecipe()->operands(), isSingleScalar); if (auto *WidenR = dyn_cast(VPV)) { return PreservesUniformity(WidenR->getOpcode()) && all_of(WidenR->operands(), isSingleScalar); } - if (auto *WidenR = dyn_cast(VPV)) - return all_of(WidenR->operands(), isSingleScalar); if (auto *VPI = dyn_cast(VPV)) return VPI->isSingleScalar() || VPI->isVectorToScalar() || (PreservesUniformity(VPI->getOpcode()) &&