Lines Matching defs:OrZero
269 static bool isKnownToBeAPowerOfTwo(const Value *V, bool OrZero, unsigned Depth,
273 bool OrZero, unsigned Depth,
277 V, OrZero, Depth,
2161 static bool isPowerOfTwoRecurrence(const PHINode *PN, bool OrZero,
2174 if (!isKnownToBeAPowerOfTwo(Start, OrZero, Depth, Q))
2188 return (OrZero || Q.IIQ.hasNoUnsignedWrap(BO) ||
2190 isKnownToBeAPowerOfTwo(Step, OrZero, Depth, Q);
2199 // If OrZero is false, cannot guarantee induction variable is non-zero after
2201 return (OrZero || Q.IIQ.isExact(BO)) &&
2204 return OrZero || Q.IIQ.hasNoUnsignedWrap(BO) || Q.IIQ.hasNoSignedWrap(BO);
2210 return OrZero || Q.IIQ.isExact(BO);
2220 bool isKnownToBeAPowerOfTwo(const Value *V, bool OrZero, unsigned Depth,
2225 return OrZero ? match(V, m_Power2OrZero()) : match(V, m_Power2());
2228 if (OrZero && V->getType()->getScalarSizeInBits() == 1)
2257 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2259 return OrZero && isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2261 if (OrZero || Q.IIQ.hasNoUnsignedWrap(I) || Q.IIQ.hasNoSignedWrap(I))
2262 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2265 if (OrZero || Q.IIQ.isExact(cast<BinaryOperator>(I)))
2266 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2270 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q);
2273 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) &&
2274 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q) &&
2275 (OrZero || isKnownNonZero(I, Q, Depth));
2278 if (OrZero &&
2279 (isKnownToBeAPowerOfTwo(I->getOperand(1), /*OrZero*/ true, Depth, Q) ||
2280 isKnownToBeAPowerOfTwo(I->getOperand(0), /*OrZero*/ true, Depth, Q)))
2285 return OrZero || isKnownNonZero(I->getOperand(0), Q, Depth);
2291 if (OrZero || Q.IIQ.hasNoUnsignedWrap(VOBO) ||
2295 isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q))
2299 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q))
2312 // If OrZero isn't set, we cannot give back a zero result.
2314 if (OrZero || RHSBits.One.getBoolValue() || LHSBits.One.getBoolValue())
2319 if (OrZero || Q.IIQ.hasNoUnsignedWrap(VOBO))
2325 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) &&
2326 isKnownToBeAPowerOfTwo(I->getOperand(2), OrZero, Depth, Q);
2335 if (isPowerOfTwoRecurrence(PN, OrZero, Depth, RecQ))
2349 return isKnownToBeAPowerOfTwo(U.get(), OrZero, NewDepth, RecQ);
2360 return isKnownToBeAPowerOfTwo(II->getArgOperand(1), OrZero, Depth, Q) &&
2361 isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2366 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2371 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q);
2640 isKnownToBeAPowerOfTwo(Y, /*OrZero*/ false, Depth, Q))
2643 isKnownToBeAPowerOfTwo(X, /*OrZero*/ false, Depth, Q))