Lines Matching defs:OrZero

281                                   bool OrZero, unsigned Depth,
285 V, OrZero, Depth,
2302 static bool isPowerOfTwoRecurrence(const PHINode *PN, bool OrZero,
2315 if (!isKnownToBeAPowerOfTwo(Start, OrZero, Depth, Q))
2329 return (OrZero || Q.IIQ.hasNoUnsignedWrap(BO) ||
2331 isKnownToBeAPowerOfTwo(Step, OrZero, Depth, Q);
2340 // If OrZero is false, cannot guarantee induction variable is non-zero after
2342 return (OrZero || Q.IIQ.isExact(BO)) &&
2345 return OrZero || Q.IIQ.hasNoUnsignedWrap(BO) || Q.IIQ.hasNoSignedWrap(BO);
2351 return OrZero || Q.IIQ.isExact(BO);
2359 static bool isImpliedToBeAPowerOfTwoFromCond(const Value *V, bool OrZero,
2370 if (OrZero && Pred == ICmpInst::ICMP_ULT && *RHSC == 2)
2380 bool llvm::isKnownToBeAPowerOfTwo(const Value *V, bool OrZero, unsigned Depth,
2385 return OrZero ? match(V, m_Power2OrZero()) : match(V, m_Power2());
2388 if (OrZero && V->getType()->getScalarSizeInBits() == 1)
2397 if (isImpliedToBeAPowerOfTwoFromCond(V, OrZero, I->getArgOperand(0),
2410 if (isImpliedToBeAPowerOfTwoFromCond(V, OrZero, Cond,
2416 if (isImpliedToBeAPowerOfTwoFromCond(V, OrZero, Cond,
2449 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2451 return OrZero && isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2453 if (OrZero || Q.IIQ.hasNoUnsignedWrap(I) || Q.IIQ.hasNoSignedWrap(I))
2454 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2457 if (OrZero || Q.IIQ.isExact(cast<BinaryOperator>(I)))
2458 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2462 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2465 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) &&
2466 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q) &&
2467 (OrZero || isKnownNonZero(I, Q, Depth));
2470 if (OrZero &&
2471 (isKnownToBeAPowerOfTwo(I->getOperand(1), /*OrZero*/ true, Depth, Q) ||
2472 isKnownToBeAPowerOfTwo(I->getOperand(0), /*OrZero*/ true, Depth, Q)))
2477 return OrZero || isKnownNonZero(I->getOperand(0), Q, Depth);
2483 if (OrZero || Q.IIQ.hasNoUnsignedWrap(VOBO) ||
2487 isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q))
2491 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q))
2504 // If OrZero isn't set, we cannot give back a zero result.
2506 if (OrZero || RHSBits.One.getBoolValue() || LHSBits.One.getBoolValue())
2511 if (OrZero || Q.IIQ.hasNoUnsignedWrap(VOBO))
2517 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) &&
2518 isKnownToBeAPowerOfTwo(I->getOperand(2), OrZero, Depth, Q);
2527 if (isPowerOfTwoRecurrence(PN, OrZero, Depth, RecQ))
2541 return isKnownToBeAPowerOfTwo(U.get(), OrZero, NewDepth, RecQ);
2552 return isKnownToBeAPowerOfTwo(II->getArgOperand(1), OrZero, Depth, Q) &&
2553 isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2558 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2563 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2834 isKnownToBeAPowerOfTwo(Y, /*OrZero*/ false, Depth, Q))
2837 isKnownToBeAPowerOfTwo(X, /*OrZero*/ false, Depth, Q))