[ValueTracking] Check non-zero operator before dominating condition (NFC) Prefer checking for non-zero operator before non-zero via dominating conditions. This is to make sure we don't have compile-time regressions when special cases that are currently part of isKnownNonZero() get moved into isKnownNonZeroFromOperator().
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 62f7c54..3dd5116 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -2856,13 +2856,14 @@ } } + if (const auto *I = dyn_cast<Operator>(V)) + if (isKnownNonZeroFromOperator(I, DemandedElts, Depth, Q)) + return true; + if (!isa<Constant>(V) && isKnownNonNullFromDominatingCondition(V, Q.CxtI, Q.DT)) return true; - if (const auto *I = dyn_cast<Operator>(V)) - return isKnownNonZeroFromOperator(I, DemandedElts, Depth, Q); - return false; }