Lines Matching refs:KnownOne

48                                     APInt &KnownZero, APInt &KnownOne,
97 KnownOne |= KnownOne2 & Mask;
108 KnownOne |= LHSKnownOne & Mask;
112 if (!KnownZero.isNegative() && !KnownOne.isNegative()) {
120 KnownOne |= APInt::getSignBit(BitWidth);
127 KnownOne |= APInt::getSignBit(BitWidth);
134 APInt &KnownZero, APInt &KnownOne,
138 ComputeMaskedBits(Op1, KnownZero, KnownOne, TD, Depth+1);
140 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
153 bool isKnownNegativeOp1 = KnownOne.isNegative();
172 KnownOne.clearAllBits();
189 if (isKnownNonNegative && !KnownOne.isNegative())
192 KnownOne.setBit(BitWidth - 1);
215 /// or one and return them in the KnownZero/KnownOne bit sets.
229 void llvm::ComputeMaskedBits(Value *V, APInt &KnownZero, APInt &KnownOne,
243 KnownOne.getBitWidth() == BitWidth &&
244 "V, Mask, KnownOne and KnownZero should have same BitWidth");
248 KnownOne = CI->getValue();
249 KnownZero = ~KnownOne;
255 KnownOne.clearAllBits();
265 KnownZero.setAllBits(); KnownOne.setAllBits();
270 KnownOne &= Elt;
297 KnownOne.clearAllBits();
304 KnownZero.clearAllBits(); KnownOne.clearAllBits();
306 ComputeMaskedBits(GA->getAliasee(), KnownZero, KnownOne, TD, Depth+1);
330 KnownZero.clearAllBits(); KnownOne.clearAllBits();
338 APInt KnownZero2(KnownZero), KnownOne2(KnownOne);
347 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
349 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
353 KnownOne &= KnownOne2;
359 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
361 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
367 KnownOne |= KnownOne2;
371 ComputeMaskedBits(I->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
373 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
377 APInt KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2);
379 KnownOne = (KnownZero & KnownOne2) | (KnownOne & KnownZero2);
386 KnownZero, KnownOne, KnownZero2, KnownOne2, TD, Depth);
408 ComputeMaskedBits(I->getOperand(2), KnownZero, KnownOne, TD, Depth+1);
411 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
415 KnownOne &= KnownOne2;
446 KnownOne = KnownOne.zextOrTrunc(SrcBitWidth);
447 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
449 KnownOne = KnownOne.zextOrTrunc(BitWidth);
461 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
471 KnownOne = KnownOne.trunc(SrcBitWidth);
472 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
473 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
475 KnownOne = KnownOne.zext(BitWidth);
481 else if (KnownOne[SrcBitWidth-1]) // Input sign bit known set
482 KnownOne |= APInt::getHighBitsSet(BitWidth, BitWidth - SrcBitWidth);
489 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
490 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
492 KnownOne <<= ShiftAmt;
504 ComputeMaskedBits(I->getOperand(0), KnownZero,KnownOne, TD, Depth+1);
505 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
507 KnownOne = APIntOps::lshr(KnownOne, ShiftAmt);
520 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
521 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
523 KnownOne = APIntOps::lshr(KnownOne, ShiftAmt);
528 else if (KnownOne[BitWidth-ShiftAmt-1]) // New bits are known one.
529 KnownOne |= HighBits;
536 KnownZero, KnownOne, KnownZero2, KnownOne2, TD,
543 KnownZero, KnownOne, KnownZero2, KnownOne2, TD,
556 KnownOne = KnownOne2 & LowBits;
566 KnownOne |= ~LowBits;
568 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
589 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD,
591 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
593 KnownOne &= LowBits;
600 ComputeMaskedBits(I->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
605 KnownOne.clearAllBits();
701 APInt KnownZero3(KnownZero), KnownOne3(KnownOne);
718 if (Depth < MaxDepth - 1 && !KnownZero && !KnownOne) {
724 KnownOne = APInt::getAllOnesValue(BitWidth);
736 KnownOne &= KnownOne2;
739 if (!KnownZero && !KnownOne)
780 KnownOne, KnownZero2, KnownOne2, TD, Depth);
786 KnownOne, KnownZero2, KnownOne2, TD, Depth);
791 false, KnownZero, KnownOne,
802 void llvm::ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne,
807 KnownOne = false;
813 KnownOne = OneBits[BitWidth - 1];
1024 APInt KnownOne(BitWidth, 0);
1025 ComputeMaskedBits(X, KnownZero, KnownOne, TD, Depth);
1026 if (KnownOne[0])
1063 APInt KnownOne(BitWidth, 0);
1067 ComputeMaskedBits(X, KnownZero, KnownOne, TD, Depth);
1068 if ((KnownOne & Mask) != 0)
1072 ComputeMaskedBits(Y, KnownZero, KnownOne, TD, Depth);
1073 if ((KnownOne & Mask) != 0)
1101 APInt KnownOne(BitWidth, 0);
1102 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1103 return KnownOne != 0;
1117 APInt KnownZero(Mask.getBitWidth(), 0), KnownOne(Mask.getBitWidth(), 0);
1118 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1119 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1208 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1209 ComputeMaskedBits(U->getOperand(0), KnownZero, KnownOne, TD, Depth+1);
1233 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1234 ComputeMaskedBits(U->getOperand(1), KnownZero, KnownOne, TD, Depth+1);
1278 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0);
1280 ComputeMaskedBits(V, KnownZero, KnownOne, TD, Depth);
1284 } else if (KnownOne.isNegative()) { // sign bit is 1;
1285 Mask = KnownOne;
2003 APInt KnownOne(BitWidth, 0);
2004 ComputeMaskedBits(Op, KnownZero, KnownOne, TD);