Lines Matching defs:KnownOne

47                                     APInt &KnownZero, APInt &KnownOne,
96 KnownOne |= KnownOne2 & Mask;
107 KnownOne |= LHSKnownOne & Mask;
111 if (!KnownZero.isNegative() && !KnownOne.isNegative()) {
119 KnownOne |= APInt::getSignBit(BitWidth);
126 KnownOne |= APInt::getSignBit(BitWidth);
133 APInt &KnownZero, APInt &KnownOne,
137 ComputeMaskedBits(Op1, KnownZero, KnownOne, TD, Depth+1);
139 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
152 bool isKnownNegativeOp1 = KnownOne.isNegative();
171 KnownOne.clearAllBits();
188 if (isKnownNonNegative && !KnownOne.isNegative())
191 KnownOne.setBit(BitWidth - 1);
214 /// or one and return them in the KnownZero/KnownOne bit sets.
228 void llvm::ComputeMaskedBits(Value *V, APInt &KnownZero, APInt &KnownOne,
242 KnownOne.getBitWidth() == BitWidth &&
243 "V, Mask, KnownOne and KnownZero should have same BitWidth");
247 KnownOne = CI->getValue();
248 KnownZero = ~KnownOne;
254 KnownOne.clearAllBits();
264 KnownZero.setAllBits(); KnownOne.setAllBits();
269 KnownOne &= Elt;
296 KnownOne.clearAllBits();
303 KnownZero.clearAllBits(); KnownOne.clearAllBits();
305 ComputeMaskedBits(GA->getAliasee(), KnownZero, KnownOne, TD, Depth+1);
329 KnownZero.clearAllBits(); KnownOne.clearAllBits();
337 APInt KnownZero2(KnownZero), KnownOne2(KnownOne);
346 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
348 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
352 KnownOne &= KnownOne2;
358 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
360 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
366 KnownOne |= KnownOne2;
370 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
372 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
376 APInt KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2);
378 KnownOne = (KnownZero & KnownOne2) | (KnownOne & KnownZero2);
385 KnownZero, KnownOne, KnownZero2, KnownOne2, TD, Depth);
407 ComputeMaskedBits(I->getOperand(2), KnownZero, KnownOne, TD, Depth+1);
410 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
414 KnownOne &= KnownOne2;
445 KnownOne = KnownOne.zextOrTrunc(SrcBitWidth);
446 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
448 KnownOne = KnownOne.zextOrTrunc(BitWidth);
460 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
470 KnownOne = KnownOne.trunc(SrcBitWidth);
471 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
472 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
474 KnownOne = KnownOne.zext(BitWidth);
480 else if (KnownOne[SrcBitWidth-1]) // Input sign bit known set
481 KnownOne |= APInt::getHighBitsSet(BitWidth, BitWidth - SrcBitWidth);
488 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
489 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
491 KnownOne <<= ShiftAmt;
503 ComputeMaskedBits(I->getOperand(0), KnownZero,KnownOne, TD, Depth+1);
504 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
506 KnownOne = APIntOps::lshr(KnownOne, ShiftAmt);
519 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
520 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
522 KnownOne = APIntOps::lshr(KnownOne, ShiftAmt);
527 else if (KnownOne[BitWidth-ShiftAmt-1]) // New bits are known one.
528 KnownOne |= HighBits;
535 KnownZero, KnownOne, KnownZero2, KnownOne2, TD,
542 KnownZero, KnownOne, KnownZero2, KnownOne2, TD,
555 KnownOne = KnownOne2 & LowBits;
565 KnownOne |= ~LowBits;
567 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
588 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD,
590 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
592 KnownOne &= LowBits;
599 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
604 KnownOne.clearAllBits();
690 APInt KnownZero3(KnownZero), KnownOne3(KnownOne);
707 if (Depth < MaxDepth - 1 && !KnownZero && !KnownOne) {
713 KnownOne = APInt::getAllOnesValue(BitWidth);
725 KnownOne &= KnownOne2;
728 if (!KnownZero && !KnownOne)
770 KnownOne, KnownZero2, KnownOne2, TD, Depth);
776 KnownOne, KnownZero2, KnownOne2, TD, Depth);
781 false, KnownZero, KnownOne,
792 void llvm::ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne,
797 KnownOne = false;
803 KnownOne = OneBits[BitWidth - 1];
983 APInt KnownOne(BitWidth, 0);
984 ComputeMaskedBits(X, KnownZero, KnownOne, TD, Depth);
985 if (KnownOne[0])
1022 APInt KnownOne(BitWidth, 0);
1026 ComputeMaskedBits(X, KnownZero, KnownOne, TD, Depth);
1027 if ((KnownOne & Mask) != 0)
1031 ComputeMaskedBits(Y, KnownZero, KnownOne, TD, Depth);
1032 if ((KnownOne & Mask) != 0)
1060 APInt KnownOne(BitWidth, 0);
1061 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1062 return KnownOne != 0;
1076 APInt KnownZero(Mask.getBitWidth(), 0), KnownOne(Mask.getBitWidth(), 0);
1077 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1078 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1167 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1168 ComputeMaskedBits(U->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
1192 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1193 ComputeMaskedBits(U->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
1237 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1239 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1243 } else if (KnownOne.isNegative()) { // sign bit is 1;
1244 Mask = KnownOne;
1958 APInt KnownOne(BitWidth, 0);
1959 ComputeMaskedBits(Op, KnownZero, KnownOne, TD);