Lines Matching refs:Known

205                              KnownBits &Known, unsigned Depth, const Query &Q);
207 static void computeKnownBits(const Value *V, KnownBits &Known, unsigned Depth, in computeKnownBits() argument
212 Known.resetAll(); in computeKnownBits()
219 computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
222 void llvm::computeKnownBits(const Value *V, KnownBits &Known, in computeKnownBits() argument
227 ::computeKnownBits(V, Known, Depth, in computeKnownBits()
232 KnownBits &Known, const DataLayout &DL, in computeKnownBits() argument
236 ::computeKnownBits(V, DemandedElts, Known, Depth, in computeKnownBits()
351 KnownBits Known = in isKnownNonNegative() local
353 return Known.isNonNegative(); in isKnownNonNegative()
371 KnownBits Known = in isKnownNegative() local
373 return Known.isNegative(); in isKnownNegative()
447 const APInt &DemandedElts, KnownBits &Known, in computeKnownBitsMul() argument
450 computeKnownBits(Op1, DemandedElts, Known, Depth + 1, Q); in computeKnownBitsMul()
461 bool isKnownNonNegativeOp1 = Known.isNonNegative(); in computeKnownBitsMul()
463 bool isKnownNegativeOp1 = Known.isNegative(); in computeKnownBitsMul()
474 (isKnownNegativeOp0 && isKnownNonNegativeOp1 && Known.isNonZero()); in computeKnownBitsMul()
483 Known = KnownBits::mul(Known, Known2, SelfMultiply); in computeKnownBitsMul()
490 if (isKnownNonNegative && !Known.isNegative()) in computeKnownBitsMul()
491 Known.makeNonNegative(); in computeKnownBitsMul()
492 else if (isKnownNegative && !Known.isNonNegative()) in computeKnownBitsMul()
493 Known.makeNegative(); in computeKnownBitsMul()
497 KnownBits &Known) { in computeKnownBitsFromRangeMetadata() argument
498 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromRangeMetadata()
502 Known.Zero.setAllBits(); in computeKnownBitsFromRangeMetadata()
503 Known.One.setAllBits(); in computeKnownBitsFromRangeMetadata()
517 Known.One &= UnsignedMax & Mask; in computeKnownBitsFromRangeMetadata()
518 Known.Zero &= ~UnsignedMax & Mask; in computeKnownBitsFromRangeMetadata()
675 static void computeKnownBitsFromAssume(const Value *V, KnownBits &Known, in computeKnownBitsFromAssume() argument
682 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromAssume()
689 Known.Zero.setLowBits(Log2_64(RK.ArgValue)); in computeKnownBitsFromAssume()
714 Known.setAllOnes(); in computeKnownBitsFromAssume()
720 Known.setAllZero(); in computeKnownBitsFromAssume()
756 Known.Zero |= RHSKnown.Zero; in computeKnownBitsFromAssume()
757 Known.One |= RHSKnown.One; in computeKnownBitsFromAssume()
769 Known.Zero |= RHSKnown.Zero & MaskKnown.One; in computeKnownBitsFromAssume()
770 Known.One |= RHSKnown.One & MaskKnown.One; in computeKnownBitsFromAssume()
782 Known.Zero |= RHSKnown.One & MaskKnown.One; in computeKnownBitsFromAssume()
783 Known.One |= RHSKnown.Zero & MaskKnown.One; in computeKnownBitsFromAssume()
795 Known.Zero |= RHSKnown.Zero & BKnown.Zero; in computeKnownBitsFromAssume()
796 Known.One |= RHSKnown.One & BKnown.Zero; in computeKnownBitsFromAssume()
808 Known.Zero |= RHSKnown.One & BKnown.Zero; in computeKnownBitsFromAssume()
809 Known.One |= RHSKnown.Zero & BKnown.Zero; in computeKnownBitsFromAssume()
822 Known.Zero |= RHSKnown.Zero & BKnown.Zero; in computeKnownBitsFromAssume()
823 Known.One |= RHSKnown.One & BKnown.Zero; in computeKnownBitsFromAssume()
824 Known.Zero |= RHSKnown.One & BKnown.One; in computeKnownBitsFromAssume()
825 Known.One |= RHSKnown.Zero & BKnown.One; in computeKnownBitsFromAssume()
838 Known.Zero |= RHSKnown.One & BKnown.Zero; in computeKnownBitsFromAssume()
839 Known.One |= RHSKnown.Zero & BKnown.Zero; in computeKnownBitsFromAssume()
840 Known.Zero |= RHSKnown.Zero & BKnown.One; in computeKnownBitsFromAssume()
841 Known.One |= RHSKnown.One & BKnown.One; in computeKnownBitsFromAssume()
852 Known.Zero |= RHSKnown.Zero; in computeKnownBitsFromAssume()
854 Known.One |= RHSKnown.One; in computeKnownBitsFromAssume()
864 Known.Zero |= RHSKnown.One; in computeKnownBitsFromAssume()
866 Known.One |= RHSKnown.Zero; in computeKnownBitsFromAssume()
875 Known.Zero |= RHSKnown.Zero << C; in computeKnownBitsFromAssume()
876 Known.One |= RHSKnown.One << C; in computeKnownBitsFromAssume()
885 Known.Zero |= RHSKnown.One << C; in computeKnownBitsFromAssume()
886 Known.One |= RHSKnown.Zero << C; in computeKnownBitsFromAssume()
898 Known.makeNonNegative(); in computeKnownBitsFromAssume()
911 Known.makeNonNegative(); in computeKnownBitsFromAssume()
924 Known.makeNegative(); in computeKnownBitsFromAssume()
937 Known.makeNegative(); in computeKnownBitsFromAssume()
949 Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros()); in computeKnownBitsFromAssume()
962 Known.Zero.setAllBits(); in computeKnownBitsFromAssume()
963 Known.One.setAllBits(); in computeKnownBitsFromAssume()
970 Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros() + 1); in computeKnownBitsFromAssume()
972 Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros()); in computeKnownBitsFromAssume()
983 if (Known.Zero.intersects(Known.One)) { in computeKnownBitsFromAssume()
984 Known.resetAll(); in computeKnownBitsFromAssume()
1007 const Operator *I, const APInt &DemandedElts, KnownBits &Known, in computeKnownBitsFromShiftOperator() argument
1010 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromShiftOperator()
1012 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
1017 uint64_t ShiftAmtKZ = Known.Zero.zextOrTrunc(64).getZExtValue(); in computeKnownBitsFromShiftOperator()
1018 uint64_t ShiftAmtKO = Known.One.zextOrTrunc(64).getZExtValue(); in computeKnownBitsFromShiftOperator()
1019 bool ShiftAmtIsConstant = Known.isConstant(); in computeKnownBitsFromShiftOperator()
1020 bool MaxShiftAmtIsOutOfRange = Known.getMaxValue().uge(BitWidth); in computeKnownBitsFromShiftOperator()
1023 Known = KF(Known2, Known); in computeKnownBitsFromShiftOperator()
1028 if (Known.hasConflict()) in computeKnownBitsFromShiftOperator()
1029 Known.setAllZero(); in computeKnownBitsFromShiftOperator()
1039 Known.resetAll(); in computeKnownBitsFromShiftOperator()
1045 Known.resetAll(); in computeKnownBitsFromShiftOperator()
1061 Known.Zero.setAllBits(); in computeKnownBitsFromShiftOperator()
1062 Known.One.setAllBits(); in computeKnownBitsFromShiftOperator()
1081 Known = KnownBits::commonBits( in computeKnownBitsFromShiftOperator()
1082 Known, KF(Known2, KnownBits::makeConstant(APInt(32, ShiftAmt)))); in computeKnownBitsFromShiftOperator()
1087 if (Known.hasConflict()) in computeKnownBitsFromShiftOperator()
1088 Known.setAllZero(); in computeKnownBitsFromShiftOperator()
1093 KnownBits &Known, unsigned Depth, in computeKnownBitsFromOperator() argument
1095 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromOperator()
1103 computeKnownBitsFromRangeMetadata(*MD, Known); in computeKnownBitsFromOperator()
1107 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1110 Known &= Known2; in computeKnownBitsFromOperator()
1118 if (!Known.Zero[0] && !Known.One[0] && in computeKnownBitsFromOperator()
1123 Known.Zero.setBit(0); in computeKnownBitsFromOperator()
1128 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1131 Known |= Known2; in computeKnownBitsFromOperator()
1134 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1137 Known ^= Known2; in computeKnownBitsFromOperator()
1142 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1146 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1148 Known = KnownBits::udiv(Known, Known2); in computeKnownBitsFromOperator()
1155 computeKnownBits(RHS, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1161 Known = KnownBits::smax(Known, Known2); in computeKnownBitsFromOperator()
1164 Known = KnownBits::smin(Known, Known2); in computeKnownBitsFromOperator()
1167 Known = KnownBits::umax(Known, Known2); in computeKnownBitsFromOperator()
1170 Known = KnownBits::umin(Known, Known2); in computeKnownBitsFromOperator()
1176 computeKnownBits(I->getOperand(2), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1180 Known = KnownBits::commonBits(Known, Known2); in computeKnownBitsFromOperator()
1188 Known.Zero.setSignBit(); in computeKnownBitsFromOperator()
1217 Known = Known.anyextOrTrunc(SrcBitWidth); in computeKnownBitsFromOperator()
1218 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1219 Known = Known.zextOrTrunc(BitWidth); in computeKnownBitsFromOperator()
1228 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1269 Known.insertBits(KnownSrc, ShiftElt * SubBitWidth); in computeKnownBitsFromOperator()
1278 Known = Known.trunc(SrcBitWidth); in computeKnownBitsFromOperator()
1279 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1282 Known = Known.sext(BitWidth); in computeKnownBitsFromOperator()
1299 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1304 Known.Zero.setLowBits(C->countTrailingZeros()); in computeKnownBitsFromOperator()
1311 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1316 Known.Zero.setHighBits(C->countLeadingZeros()); in computeKnownBitsFromOperator()
1323 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1330 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1336 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1340 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1342 Known = KnownBits::srem(Known, Known2); in computeKnownBitsFromOperator()
1346 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1348 Known = KnownBits::urem(Known, Known2); in computeKnownBitsFromOperator()
1351 Known.Zero.setLowBits(Log2(cast<AllocaInst>(I)->getAlign())); in computeKnownBitsFromOperator()
1356 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1364 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1393 Known.resetAll(); in computeKnownBitsFromOperator()
1428 Known = KnownBits::computeForAddSub( in computeKnownBitsFromOperator()
1429 /*Add=*/true, /*NSW=*/false, Known, IndexBits); in computeKnownBitsFromOperator()
1431 if (!Known.isUnknown() && !AccConstIndices.isZero()) { in computeKnownBitsFromOperator()
1433 Known = KnownBits::computeForAddSub( in computeKnownBitsFromOperator()
1434 /*Add=*/true, /*NSW=*/false, Known, Index); in computeKnownBitsFromOperator()
1469 Known.Zero.setLowBits(Known2.countMinTrailingZeros()); in computeKnownBitsFromOperator()
1474 Known.Zero.setHighBits(Known2.countMinLeadingZeros()); in computeKnownBitsFromOperator()
1478 Known.Zero.setHighBits(Known2.countMinLeadingZeros()); in computeKnownBitsFromOperator()
1479 Known.One.setHighBits(Known2.countMinLeadingOnes()); in computeKnownBitsFromOperator()
1512 Known.Zero.setLowBits(std::min(Known2.countMinTrailingZeros(), in computeKnownBitsFromOperator()
1528 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1530 Known.makeNegative(); in computeKnownBitsFromOperator()
1537 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1539 Known.makeNegative(); in computeKnownBitsFromOperator()
1545 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1558 if (Depth < MaxAnalysisRecursionDepth - 1 && !Known.Zero && !Known.One) { in computeKnownBitsFromOperator()
1563 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1564 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1581 Known = KnownBits::commonBits(Known, Known2); in computeKnownBitsFromOperator()
1584 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1597 computeKnownBitsFromRangeMetadata(*MD, Known); in computeKnownBitsFromOperator()
1600 Known.Zero |= Known2.Zero; in computeKnownBitsFromOperator()
1601 Known.One |= Known2.One; in computeKnownBitsFromOperator()
1609 Known = Known2.abs(IntMinIsPoison); in computeKnownBitsFromOperator()
1614 Known.Zero |= Known2.Zero.reverseBits(); in computeKnownBitsFromOperator()
1615 Known.One |= Known2.One.reverseBits(); in computeKnownBitsFromOperator()
1619 Known.Zero |= Known2.Zero.byteSwap(); in computeKnownBitsFromOperator()
1620 Known.One |= Known2.One.byteSwap(); in computeKnownBitsFromOperator()
1630 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1641 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1650 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1670 Known.Zero = in computeKnownBitsFromOperator()
1672 Known.One = in computeKnownBitsFromOperator()
1679 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1687 LeadingKnown = std::max(Known.countMinLeadingOnes(), in computeKnownBitsFromOperator()
1690 LeadingKnown = std::max(Known.countMinLeadingZeros(), in computeKnownBitsFromOperator()
1693 Known = KnownBits::computeForAddSub( in computeKnownBitsFromOperator()
1694 IsAdd, /* NSW */ false, Known, Known2); in computeKnownBitsFromOperator()
1699 Known.One.setHighBits(LeadingKnown); in computeKnownBitsFromOperator()
1700 Known.Zero.clearAllBits(); in computeKnownBitsFromOperator()
1702 Known.Zero.setHighBits(LeadingKnown); in computeKnownBitsFromOperator()
1703 Known.One.clearAllBits(); in computeKnownBitsFromOperator()
1708 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1710 Known = KnownBits::umin(Known, Known2); in computeKnownBitsFromOperator()
1713 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1715 Known = KnownBits::umax(Known, Known2); in computeKnownBitsFromOperator()
1718 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1720 Known = KnownBits::smin(Known, Known2); in computeKnownBitsFromOperator()
1723 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1725 Known = KnownBits::smax(Known, Known2); in computeKnownBitsFromOperator()
1728 Known.Zero.setBitsFrom(32); in computeKnownBitsFromOperator()
1735 Known.Zero.setBitsFrom(31); in computeKnownBitsFromOperator()
1753 Known.One = VScaleMin; in computeKnownBitsFromOperator()
1754 Known.Zero = VScaleMin; in computeKnownBitsFromOperator()
1755 Known.Zero.flipAllBits(); in computeKnownBitsFromOperator()
1761 Known.Zero.setBitsFrom(FirstZeroHighBit); in computeKnownBitsFromOperator()
1772 Known.resetAll(); in computeKnownBitsFromOperator()
1779 Known.resetAll(); in computeKnownBitsFromOperator()
1782 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1783 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1786 computeKnownBits(LHS, DemandedLHS, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1788 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1794 Known = KnownBits::commonBits(Known, Known2); in computeKnownBitsFromOperator()
1805 Known.resetAll(); in computeKnownBitsFromOperator()
1808 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1809 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1813 computeKnownBits(Elt, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1815 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1823 Known = KnownBits::commonBits(Known, Known2); in computeKnownBitsFromOperator()
1835 Known.resetAll(); in computeKnownBitsFromOperator()
1842 computeKnownBits(Vec, DemandedVecElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1856 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1862 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1867 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1876 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1885 KnownBits Known(getBitWidth(V->getType(), Q.DL)); in computeKnownBits() local
1886 computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
1887 return Known; in computeKnownBits()
1893 KnownBits Known(getBitWidth(V->getType(), Q.DL)); in computeKnownBits() local
1894 computeKnownBits(V, Known, Depth, Q); in computeKnownBits()
1895 return Known; in computeKnownBits()
1914 KnownBits &Known, unsigned Depth, const Query &Q) { in computeKnownBits() argument
1918 Known.resetAll(); in computeKnownBits()
1927 unsigned BitWidth = Known.getBitWidth(); in computeKnownBits()
1954 Known = KnownBits::makeConstant(*C); in computeKnownBits()
1959 Known.setAllZero(); in computeKnownBits()
1967 Known.Zero.setAllBits(); Known.One.setAllBits(); in computeKnownBits()
1972 Known.Zero &= ~Elt; in computeKnownBits()
1973 Known.One &= Elt; in computeKnownBits()
1981 Known.Zero.setAllBits(); Known.One.setAllBits(); in computeKnownBits()
1988 Known.resetAll(); in computeKnownBits()
1992 Known.Zero &= ~Elt; in computeKnownBits()
1993 Known.One &= Elt; in computeKnownBits()
1999 Known.resetAll(); in computeKnownBits()
2017 computeKnownBits(GA->getAliasee(), Known, Depth + 1, Q); in computeKnownBits()
2022 computeKnownBitsFromOperator(I, DemandedElts, Known, Depth, Q); in computeKnownBits()
2027 Known.Zero.setLowBits(Log2(Alignment)); in computeKnownBits()
2034 computeKnownBitsFromAssume(V, Known, Depth, Q); in computeKnownBits()
2036 assert((Known.Zero & Known.One) == 0 && "Bits known to be one AND zero?"); in computeKnownBits()
2583 KnownBits Known(BitWidth); in isKnownNonZero() local
2584 computeKnownBits(X, DemandedElts, Known, Depth, Q); in isKnownNonZero()
2585 if (Known.One[0]) in isKnownNonZero()
2596 KnownBits Known = computeKnownBits(X, DemandedElts, Depth, Q); in isKnownNonZero() local
2597 if (Known.isNegative()) in isKnownNonZero()
2606 if (Known.countMaxLeadingZeros() < BitWidth - ShiftVal) in isKnownNonZero()
2609 if (Known.countMinTrailingZeros() >= ShiftVal) in isKnownNonZero()
2706 KnownBits Known(BitWidth); in isKnownNonZero() local
2707 computeKnownBits(V, DemandedElts, Known, Depth, Q); in isKnownNonZero()
2708 return Known.One != 0; in isKnownNonZero()
2965 KnownBits Known(Mask.getBitWidth()); in MaskedValueIsZero() local
2966 computeKnownBits(V, Known, Depth, Q); in MaskedValueIsZero()
2967 return Mask.isSubsetOf(Known.Zero); in MaskedValueIsZero()
3223 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
3224 computeKnownBits(U->getOperand(0), Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3228 if ((Known.Zero | 1).isAllOnes()) in ComputeNumSignBitsImpl()
3233 if (Known.isNonNegative()) in ComputeNumSignBitsImpl()
3248 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
3249 computeKnownBits(U->getOperand(1), Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3252 if ((Known.Zero | 1).isAllOnes()) in ComputeNumSignBitsImpl()
3258 if (Known.isNonNegative()) in ComputeNumSignBitsImpl()
3380 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
3381 computeKnownBits(V, DemandedElts, Known, Depth, Q); in ComputeNumSignBitsImpl()
3385 return std::max(FirstAnswer, Known.countMinSignBits()); in ComputeNumSignBitsImpl()
4835 KnownBits Known = computeKnownBits( in computeConstantRangeIncludingKnownBits() local
4837 ConstantRange CR1 = ConstantRange::fromKnownBits(Known, ForSigned); in computeConstantRangeIncludingKnownBits()
6590 KnownBits Known(CA->getBitWidth()); in isTruePredicate() local
6591 computeKnownBits(X, Known, DL, Depth + 1, /*AC*/ nullptr, in isTruePredicate()
6593 if (CA->isSubsetOf(Known.Zero) && CB->isSubsetOf(Known.Zero)) in isTruePredicate()