diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -2791,6 +2791,9 @@ return isKnownNonZero(I->getOperand(0), Depth, Q) && isGuaranteedNotToBePoison(I->getOperand(0), Q.AC, Q.CxtI, Q.DT, Depth); + case Instruction::Load: + // Already checked above (see range metadata handling). + return false; case Instruction::Call: if (auto *II = dyn_cast(I)) { switch (II->getIntrinsicID()) {