Lines Matching refs:KnownOne
122 static void computeKnownBits(Value *V, APInt &KnownZero, APInt &KnownOne,
125 void llvm::computeKnownBits(Value *V, APInt &KnownZero, APInt &KnownOne, in computeKnownBits() argument
129 ::computeKnownBits(V, KnownZero, KnownOne, Depth, in computeKnownBits()
148 static void ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne,
151 void llvm::ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne, in ComputeSignBit() argument
155 ::ComputeSignBit(V, KnownZero, KnownOne, Depth, in ComputeSignBit()
236 APInt &KnownZero, APInt &KnownOne, in computeKnownBitsAddSub() argument
297 KnownOne = PossibleSumOne & Known; in computeKnownBitsAddSub()
309 KnownOne |= APInt::getSignBit(BitWidth); in computeKnownBitsAddSub()
315 APInt &KnownZero, APInt &KnownOne, in computeKnownBitsMul() argument
319 computeKnownBits(Op1, KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsMul()
332 bool isKnownNegativeOp1 = KnownOne.isNegative(); in computeKnownBitsMul()
351 KnownOne.clearAllBits(); in computeKnownBitsMul()
368 if (isKnownNonNegative && !KnownOne.isNegative()) in computeKnownBitsMul()
371 KnownOne.setBit(BitWidth - 1); in computeKnownBitsMul()
376 APInt &KnownOne) { in computeKnownBitsFromRangeMetadata() argument
382 KnownOne.setAllBits(); in computeKnownBitsFromRangeMetadata()
396 KnownOne &= Range.getUnsignedMax() & Mask; in computeKnownBitsFromRangeMetadata()
520 APInt &KnownOne, unsigned Depth, in computeKnownBitsFromAssume() argument
550 KnownOne.setAllBits(); in computeKnownBitsFromAssume()
571 KnownOne |= RHSKnownOne; in computeKnownBitsFromAssume()
585 KnownOne |= RHSKnownOne & MaskKnownOne; in computeKnownBitsFromAssume()
599 KnownOne |= RHSKnownZero & MaskKnownOne; in computeKnownBitsFromAssume()
613 KnownOne |= RHSKnownOne & BKnownZero; in computeKnownBitsFromAssume()
627 KnownOne |= RHSKnownZero & BKnownZero; in computeKnownBitsFromAssume()
642 KnownOne |= RHSKnownOne & BKnownZero; in computeKnownBitsFromAssume()
644 KnownOne |= RHSKnownZero & BKnownOne; in computeKnownBitsFromAssume()
659 KnownOne |= RHSKnownZero & BKnownZero; in computeKnownBitsFromAssume()
661 KnownOne |= RHSKnownOne & BKnownOne; in computeKnownBitsFromAssume()
672 KnownOne |= RHSKnownOne.lshr(C->getZExtValue()); in computeKnownBitsFromAssume()
683 KnownOne |= RHSKnownZero.lshr(C->getZExtValue()); in computeKnownBitsFromAssume()
696 KnownOne |= RHSKnownOne << C->getZExtValue(); in computeKnownBitsFromAssume()
709 KnownOne |= RHSKnownZero << C->getZExtValue(); in computeKnownBitsFromAssume()
741 KnownOne |= APInt::getSignBit(BitWidth); in computeKnownBitsFromAssume()
752 KnownOne |= APInt::getSignBit(BitWidth); in computeKnownBitsFromAssume()
793 APInt &KnownZero, APInt &KnownOne, in computeKnownBitsFromShiftOperator() argument
801 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
803 KnownOne = KOF(KnownOne, ShiftAmt); in computeKnownBitsFromShiftOperator()
807 computeKnownBits(I->getOperand(1), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
813 uint64_t ShiftAmtKO = KnownOne.zextOrTrunc(64).getZExtValue(); in computeKnownBitsFromShiftOperator()
818 KnownOne.clearAllBits(); in computeKnownBitsFromShiftOperator()
835 KnownZero = KnownOne = APInt::getAllOnesValue(BitWidth); in computeKnownBitsFromShiftOperator()
855 KnownOne &= KOF(KnownOne2, ShiftAmt); in computeKnownBitsFromShiftOperator()
863 if ((KnownZero & KnownOne) != 0) { in computeKnownBitsFromShiftOperator()
865 KnownOne.clearAllBits(); in computeKnownBitsFromShiftOperator()
870 APInt &KnownOne, unsigned Depth, in computeKnownBitsFromOperator() argument
874 APInt KnownZero2(KnownZero), KnownOne2(KnownOne); in computeKnownBitsFromOperator()
879 computeKnownBitsFromRangeMetadata(*MD, KnownZero, KnownOne); in computeKnownBitsFromOperator()
883 computeKnownBits(I->getOperand(1), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
887 KnownOne &= KnownOne2; in computeKnownBitsFromOperator()
909 computeKnownBits(I->getOperand(1), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
915 KnownOne |= KnownOne2; in computeKnownBitsFromOperator()
919 computeKnownBits(I->getOperand(1), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
923 APInt KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2); in computeKnownBitsFromOperator()
925 KnownOne = (KnownZero & KnownOne2) | (KnownOne & KnownZero2); in computeKnownBitsFromOperator()
932 KnownOne, KnownZero2, KnownOne2, Depth, Q); in computeKnownBitsFromOperator()
954 computeKnownBits(I->getOperand(2), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
958 KnownOne &= KnownOne2; in computeKnownBitsFromOperator()
983 KnownOne = KnownOne.zextOrTrunc(SrcBitWidth); in computeKnownBitsFromOperator()
984 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
986 KnownOne = KnownOne.zextOrTrunc(BitWidth); in computeKnownBitsFromOperator()
998 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
1008 KnownOne = KnownOne.trunc(SrcBitWidth); in computeKnownBitsFromOperator()
1009 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
1011 KnownOne = KnownOne.zext(BitWidth); in computeKnownBitsFromOperator()
1017 else if (KnownOne[SrcBitWidth-1]) // Input sign bit known set in computeKnownBitsFromOperator()
1018 KnownOne |= APInt::getHighBitsSet(BitWidth, BitWidth - SrcBitWidth); in computeKnownBitsFromOperator()
1028 auto KOF = [BitWidth](const APInt &KnownOne, unsigned ShiftAmt) { in computeKnownBitsFromOperator() argument
1029 return KnownOne << ShiftAmt; in computeKnownBitsFromOperator()
1032 computeKnownBitsFromShiftOperator(I, KnownZero, KnownOne, in computeKnownBitsFromOperator()
1045 auto KOF = [BitWidth](const APInt &KnownOne, unsigned ShiftAmt) { in computeKnownBitsFromOperator() argument
1046 return APIntOps::lshr(KnownOne, ShiftAmt); in computeKnownBitsFromOperator()
1049 computeKnownBitsFromShiftOperator(I, KnownZero, KnownOne, in computeKnownBitsFromOperator()
1060 auto KOF = [BitWidth](const APInt &KnownOne, unsigned ShiftAmt) { in computeKnownBitsFromOperator() argument
1061 return APIntOps::ashr(KnownOne, ShiftAmt); in computeKnownBitsFromOperator()
1064 computeKnownBitsFromShiftOperator(I, KnownZero, KnownOne, in computeKnownBitsFromOperator()
1072 KnownZero, KnownOne, KnownZero2, KnownOne2, Depth, in computeKnownBitsFromOperator()
1079 KnownZero, KnownOne, KnownZero2, KnownOne2, Depth, in computeKnownBitsFromOperator()
1093 KnownOne = KnownOne2 & LowBits; in computeKnownBitsFromOperator()
1103 KnownOne |= ~LowBits; in computeKnownBitsFromOperator()
1105 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?"); in computeKnownBitsFromOperator()
1126 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
1128 KnownOne &= LowBits; in computeKnownBitsFromOperator()
1135 computeKnownBits(I->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBitsFromOperator()
1140 KnownOne.clearAllBits(); in computeKnownBitsFromOperator()
1237 APInt KnownZero3(KnownZero), KnownOne3(KnownOne); in computeKnownBitsFromOperator()
1254 if (Depth < MaxDepth - 1 && !KnownZero && !KnownOne) { in computeKnownBitsFromOperator()
1260 KnownOne = APInt::getAllOnesValue(BitWidth); in computeKnownBitsFromOperator()
1271 KnownOne &= KnownOne2; in computeKnownBitsFromOperator()
1274 if (!KnownZero && !KnownOne) in computeKnownBitsFromOperator()
1286 computeKnownBitsFromRangeMetadata(*MD, KnownZero, KnownOne); in computeKnownBitsFromOperator()
1290 KnownOne |= KnownOne2; in computeKnownBitsFromOperator()
1298 KnownOne |= KnownOne2.byteSwap(); in computeKnownBitsFromOperator()
1318 KnownOne &= ~KnownZero; in computeKnownBitsFromOperator()
1340 KnownOne, KnownZero2, KnownOne2, Depth, Q); in computeKnownBitsFromOperator()
1346 KnownOne, KnownZero2, KnownOne2, Depth, Q); in computeKnownBitsFromOperator()
1351 KnownZero, KnownOne, KnownZero2, KnownOne2, Depth, in computeKnownBitsFromOperator()
1375 void computeKnownBits(Value *V, APInt &KnownZero, APInt &KnownOne, in computeKnownBits() argument
1388 KnownOne.getBitWidth() == BitWidth && in computeKnownBits()
1393 KnownOne = CI->getValue(); in computeKnownBits()
1394 KnownZero = ~KnownOne; in computeKnownBits()
1399 KnownOne.clearAllBits(); in computeKnownBits()
1408 KnownZero.setAllBits(); KnownOne.setAllBits(); in computeKnownBits()
1413 KnownOne &= Elt; in computeKnownBits()
1421 KnownZero.setAllBits(); KnownOne.setAllBits(); in computeKnownBits()
1428 KnownOne.clearAllBits(); in computeKnownBits()
1433 KnownOne &= Elt; in computeKnownBits()
1439 KnownZero.clearAllBits(); KnownOne.clearAllBits(); in computeKnownBits()
1450 computeKnownBits(GA->getAliasee(), KnownZero, KnownOne, Depth + 1, Q); in computeKnownBits()
1455 computeKnownBitsFromOperator(I, KnownZero, KnownOne, Depth, Q); in computeKnownBits()
1468 computeKnownBitsFromAssume(V, KnownZero, KnownOne, Depth, Q); in computeKnownBits()
1470 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?"); in computeKnownBits()
1475 void ComputeSignBit(Value *V, bool &KnownZero, bool &KnownOne, in ComputeSignBit() argument
1480 KnownOne = false; in ComputeSignBit()
1486 KnownOne = OneBits[BitWidth - 1]; in ComputeSignBit()
1740 APInt KnownOne(BitWidth, 0); in isKnownNonZero() local
1741 computeKnownBits(X, KnownZero, KnownOne, Depth, Q); in isKnownNonZero()
1742 if (KnownOne[0]) in isKnownNonZero()
1763 APInt KnownOne(BitWidth, 0); in isKnownNonZero() local
1764 computeKnownBits(X, KnownZero, KnownOne, Depth, Q); in isKnownNonZero()
1768 if (KnownOne.countLeadingZeros() < BitWidth - ShiftVal) in isKnownNonZero()
1796 APInt KnownOne(BitWidth, 0); in isKnownNonZero() local
1800 computeKnownBits(X, KnownZero, KnownOne, Depth, Q); in isKnownNonZero()
1801 if ((KnownOne & Mask) != 0) in isKnownNonZero()
1805 computeKnownBits(Y, KnownZero, KnownOne, Depth, Q); in isKnownNonZero()
1806 if ((KnownOne & Mask) != 0) in isKnownNonZero()
1862 APInt KnownOne(BitWidth, 0); in isKnownNonZero() local
1863 computeKnownBits(V, KnownZero, KnownOne, Depth, Q); in isKnownNonZero()
1864 return KnownOne != 0; in isKnownNonZero()
1921 APInt KnownZero(Mask.getBitWidth(), 0), KnownOne(Mask.getBitWidth(), 0); in MaskedValueIsZero() local
1922 computeKnownBits(V, KnownZero, KnownOne, Depth, Q); in MaskedValueIsZero()
2081 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0); in ComputeNumSignBits() local
2082 computeKnownBits(U->getOperand(0), KnownZero, KnownOne, Depth + 1, Q); in ComputeNumSignBits()
2106 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0); in ComputeNumSignBits() local
2107 computeKnownBits(U->getOperand(1), KnownZero, KnownOne, Depth + 1, Q); in ComputeNumSignBits()
2160 APInt KnownZero(TyBits, 0), KnownOne(TyBits, 0); in ComputeNumSignBits() local
2161 computeKnownBits(V, KnownZero, KnownOne, Depth, Q); in ComputeNumSignBits()
2168 if (KnownOne.isNegative()) in ComputeNumSignBits()
2169 return std::max(FirstAnswer, KnownOne.countLeadingOnes()); in ComputeNumSignBits()
3997 APInt KnownZero(BitWidth, 0), KnownOne(BitWidth, 0); in isTruePredicate() local
3998 computeKnownBits(X, KnownZero, KnownOne, DL, Depth + 1, AC, CxtI, DT); in isTruePredicate()