[llvm] [VPlan] Fold common edges away in convertPhisToBlends (PR #150368)
Mel Chen via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 22 02:36:12 PDT 2025
================
@@ -226,6 +232,19 @@ void VPPredicator::createSwitchEdgeMasks(VPInstruction *SI) {
setEdgeMask(Src, DefaultDst, DefaultMask);
}
+VPValue *VPPredicator::findCommonEdgeMask(const VPPhi *PhiR) const {
+ VPValue *EdgeMask = getEdgeMask(PhiR->getIncomingBlock(0), PhiR->getParent());
+ VPValue *CommonEdgeMask;
+ if (!EdgeMask ||
+ !match(EdgeMask, m_LogicalAnd(m_VPValue(CommonEdgeMask), m_VPValue())))
+ return nullptr;
+ for (const VPBasicBlock *InVPBB : drop_begin(PhiR->incoming_blocks()))
+ if (!match(getEdgeMask(InVPBB, PhiR->getParent()),
----------------
Mel-Chen wrote:
Could `getEdgeMask(InVPBB, PhiR->getParent())` return nullptr here?
Should we add an assertion for insuring it?
https://github.com/llvm/llvm-project/pull/150368
More information about the llvm-commits
mailing list