[llvm] [ValueTracking] Implement udiv support for isKnownNonNullFromDominatingCondition (PR #67282)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 25 00:04:39 PDT 2023
================
@@ -2263,6 +2263,12 @@ static bool isKnownNonNullFromDominatingCondition(const Value *V,
return true;
}
+ if (const auto *Div = dyn_cast<BinaryOperator>(U);
+ Div && Div->getOpcode() == BinaryOperator::UDiv &&
+ Div->getOperand(1) == V &&
+ isValidAssumeForContext(cast<Instruction>(U), CtxI, DT))
----------------
dtcxzyw wrote:
Maybe `DT->dominates(cast<Instruction>(U), CtxI)`? It guarantees we execute `udiv` before `select`. Then we can simplify the pattern in `simplifySelectWithICmpCond`.
https://github.com/llvm/llvm-project/pull/67282
More information about the llvm-commits
mailing list