Lines Matching refs:Known

151                              KnownBits &Known, unsigned Depth,
154 void llvm::computeKnownBits(const Value *V, KnownBits &Known, unsigned Depth, in computeKnownBits() argument
162 ::computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
165 void llvm::computeKnownBits(const Value *V, KnownBits &Known, in computeKnownBits() argument
170 V, Known, Depth, in computeKnownBits()
296 KnownBits Known = computeKnownBits(V, Depth, SQ); in isKnownPositive() local
297 return Known.isNonNegative() && in isKnownPositive()
298 (Known.isNonZero() || isKnownNonZero(V, SQ, Depth)); in isKnownPositive()
326 KnownBits Known(Mask.getBitWidth()); in MaskedValueIsZero() local
327 computeKnownBits(V, Known, Depth, SQ); in MaskedValueIsZero()
328 return Mask.isSubsetOf(Known.Zero); in MaskedValueIsZero()
375 const APInt &DemandedElts, KnownBits &Known, in computeKnownBitsMul() argument
378 computeKnownBits(Op1, DemandedElts, Known, Depth + 1, Q); in computeKnownBitsMul()
389 bool isKnownNonNegativeOp1 = Known.isNonNegative(); in computeKnownBitsMul()
391 bool isKnownNegativeOp1 = Known.isNegative(); in computeKnownBitsMul()
402 (isKnownNegativeOp0 && isKnownNonNegativeOp1 && Known.isNonZero()); in computeKnownBitsMul()
410 Known = KnownBits::mul(Known, Known2, SelfMultiply); in computeKnownBitsMul()
417 if (isKnownNonNegative && !Known.isNegative()) in computeKnownBitsMul()
418 Known.makeNonNegative(); in computeKnownBitsMul()
419 else if (isKnownNegative && !Known.isNonNegative()) in computeKnownBitsMul()
420 Known.makeNegative(); in computeKnownBitsMul()
424 KnownBits &Known) { in computeKnownBitsFromRangeMetadata() argument
425 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromRangeMetadata()
429 Known.Zero.setAllBits(); in computeKnownBitsFromRangeMetadata()
430 Known.One.setAllBits(); in computeKnownBitsFromRangeMetadata()
444 Known.One &= UnsignedMax & Mask; in computeKnownBitsFromRangeMetadata()
445 Known.Zero &= ~UnsignedMax & Mask; in computeKnownBitsFromRangeMetadata()
626 Value *LHS, Value *RHS, KnownBits &Known, in computeKnownBitsFromCmp() argument
634 Known.setAllZero(); in computeKnownBitsFromCmp()
638 Known.makeNonNegative(); in computeKnownBitsFromCmp()
641 Known.makeNegative(); in computeKnownBitsFromCmp()
650 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromCmp()
661 Known = Known.unionWith(KnownBits::makeConstant(*C)); in computeKnownBitsFromCmp()
666 Known.One |= *C; in computeKnownBitsFromCmp()
668 Known.Zero |= ~*C & *Mask; in computeKnownBitsFromCmp()
672 Known.Zero |= ~*C; in computeKnownBitsFromCmp()
674 Known.One |= *C & ~*Mask; in computeKnownBitsFromCmp()
679 Known = Known.unionWith(KnownBits::makeConstant(*C ^ *Mask)); in computeKnownBitsFromCmp()
688 Known = Known.unionWith(RHSKnown); in computeKnownBitsFromCmp()
695 Known.Zero |= RHSKnown.Zero << ShAmt; in computeKnownBitsFromCmp()
696 Known.One |= RHSKnown.One << ShAmt; in computeKnownBitsFromCmp()
703 Known.One |= *BPow2; in computeKnownBitsFromCmp()
713 Known = Known.unionWith(LHSRange.toKnownBits()); in computeKnownBitsFromCmp()
720 Known.One.setHighBits( in computeKnownBitsFromCmp()
728 Known.Zero.setHighBits( in computeKnownBitsFromCmp()
738 KnownBits &Known, in computeKnownBitsFromICmpCond() argument
749 Known = Known.unionWith(DstKnown.anyext(Known.getBitWidth())); in computeKnownBitsFromICmpCond()
753 computeKnownBitsFromCmp(V, Pred, LHS, RHS, Known, SQ); in computeKnownBitsFromICmpCond()
757 KnownBits &Known, unsigned Depth, in computeKnownBitsFromCond() argument
762 KnownBits Known2(Known.getBitWidth()); in computeKnownBitsFromCond()
763 KnownBits Known3(Known.getBitWidth()); in computeKnownBitsFromCond()
771 Known = Known.unionWith(Known2); in computeKnownBitsFromCond()
775 computeKnownBitsFromICmpCond(V, Cmp, Known, SQ, Invert); in computeKnownBitsFromCond()
778 void llvm::computeKnownBitsFromContext(const Value *V, KnownBits &Known, in computeKnownBitsFromContext() argument
782 computeKnownBitsFromCond(V, Q.CC->Cond, Known, Depth, Q, Q.CC->Invert); in computeKnownBitsFromContext()
792 computeKnownBitsFromCond(V, BI->getCondition(), Known, Depth, Q, in computeKnownBitsFromContext()
797 computeKnownBitsFromCond(V, BI->getCondition(), Known, Depth, Q, in computeKnownBitsFromContext()
801 if (Known.hasConflict()) in computeKnownBitsFromContext()
802 Known.resetAll(); in computeKnownBitsFromContext()
808 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromContext()
829 Known.Zero.setLowBits(Log2_64(RK.ArgValue)); in computeKnownBitsFromContext()
843 Known.setAllOnes(); in computeKnownBitsFromContext()
850 Known.setAllZero(); in computeKnownBitsFromContext()
865 computeKnownBitsFromICmpCond(V, Cmp, Known, Q, /*Invert=*/false); in computeKnownBitsFromContext()
870 if (Known.hasConflict()) in computeKnownBitsFromContext()
871 Known.resetAll(); in computeKnownBitsFromContext()
883 const Operator *I, const APInt &DemandedElts, KnownBits &Known, in computeKnownBitsFromShiftOperator() argument
887 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
891 Known.isNonZero() || in computeKnownBitsFromShiftOperator()
892 (Known.getMaxValue().ult(Known.getBitWidth()) && in computeKnownBitsFromShiftOperator()
894 Known = KF(Known2, Known, ShAmtNonZero); in computeKnownBitsFromShiftOperator()
1027 void llvm::adjustKnownBitsForSelectArm(KnownBits &Known, Value *Cond, in adjustKnownBitsForSelectArm() argument
1031 if (Known.isConstant()) in adjustKnownBitsForSelectArm()
1035 KnownBits CondRes(Known.getBitWidth()); in adjustKnownBitsForSelectArm()
1047 CondRes = CondRes.unionWith(Known); in adjustKnownBitsForSelectArm()
1058 Known = CondRes; in adjustKnownBitsForSelectArm()
1063 KnownBits &Known, unsigned Depth, in computeKnownBitsFromOperator() argument
1065 unsigned BitWidth = Known.getBitWidth(); in computeKnownBitsFromOperator()
1073 computeKnownBitsFromRangeMetadata(*MD, Known); in computeKnownBitsFromOperator()
1076 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1079 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
1082 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1085 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
1088 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1091 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
1096 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1100 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1102 Known = in computeKnownBitsFromOperator()
1103 KnownBits::udiv(Known, Known2, Q.IIQ.isExact(cast<BinaryOperator>(I))); in computeKnownBitsFromOperator()
1107 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1109 Known = in computeKnownBitsFromOperator()
1110 KnownBits::sdiv(Known, Known2, Q.IIQ.isExact(cast<BinaryOperator>(I))); in computeKnownBitsFromOperator()
1115 KnownBits Res(Known.getBitWidth()); in computeKnownBitsFromOperator()
1121 Known = in computeKnownBitsFromOperator()
1150 Known = Known.anyextOrTrunc(SrcBitWidth); in computeKnownBitsFromOperator()
1151 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1153 Inst && Inst->hasNonNeg() && !Known.isNegative()) in computeKnownBitsFromOperator()
1154 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1155 Known = Known.zextOrTrunc(BitWidth); in computeKnownBitsFromOperator()
1164 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1182 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1183 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1186 Known = Known.intersectWith(KnownBits::makeConstant( in computeKnownBitsFromOperator()
1190 Known = Known.intersectWith(KnownBits::makeConstant( in computeKnownBitsFromOperator()
1193 Known.Zero.clearSignBit(); in computeKnownBitsFromOperator()
1194 Known.One.clearSignBit(); in computeKnownBitsFromOperator()
1199 Known.makeNegative(); in computeKnownBitsFromOperator()
1201 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1245 Known.insertBits(KnownSrc, ShiftElt * SubBitWidth); in computeKnownBitsFromOperator()
1254 Known = Known.trunc(SrcBitWidth); in computeKnownBitsFromOperator()
1255 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1258 Known = Known.sext(BitWidth); in computeKnownBitsFromOperator()
1268 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1273 Known.Zero.setLowBits(C->countr_zero()); in computeKnownBitsFromOperator()
1282 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1287 Known.Zero.setHighBits(C->countl_zero()); in computeKnownBitsFromOperator()
1296 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1304 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1311 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1315 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1317 Known = KnownBits::srem(Known, Known2); in computeKnownBitsFromOperator()
1321 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1323 Known = KnownBits::urem(Known, Known2); in computeKnownBitsFromOperator()
1326 Known.Zero.setLowBits(Log2(cast<AllocaInst>(I)->getAlign())); in computeKnownBitsFromOperator()
1331 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1339 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1368 Known.resetAll(); in computeKnownBitsFromOperator()
1403 Known = KnownBits::computeForAddSub( in computeKnownBitsFromOperator()
1404 /*Add=*/true, /*NSW=*/false, /* NUW=*/false, Known, IndexBits); in computeKnownBitsFromOperator()
1406 if (!Known.isUnknown() && !AccConstIndices.isZero()) { in computeKnownBitsFromOperator()
1408 Known = KnownBits::computeForAddSub( in computeKnownBitsFromOperator()
1409 /*Add=*/true, /*NSW=*/false, /* NUW=*/false, Known, Index); in computeKnownBitsFromOperator()
1444 Known.Zero.setLowBits(Known2.countMinTrailingZeros()); in computeKnownBitsFromOperator()
1449 Known.Zero.setHighBits(Known2.countMinLeadingZeros()); in computeKnownBitsFromOperator()
1453 Known.Zero.setHighBits(Known2.countMinLeadingZeros()); in computeKnownBitsFromOperator()
1454 Known.One.setHighBits(Known2.countMinLeadingOnes()); in computeKnownBitsFromOperator()
1487 Known.Zero.setLowBits(std::min(Known2.countMinTrailingZeros(), in computeKnownBitsFromOperator()
1503 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1505 Known.makeNegative(); in computeKnownBitsFromOperator()
1512 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1514 Known.makeNegative(); in computeKnownBitsFromOperator()
1520 Known.makeNonNegative(); in computeKnownBitsFromOperator()
1533 if (Depth < MaxAnalysisRecursionDepth - 1 && Known.isUnknown()) { in computeKnownBitsFromOperator()
1538 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1539 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1585 Known.resetAll(); in computeKnownBitsFromOperator()
1593 Known = Known.intersectWith(Known2); in computeKnownBitsFromOperator()
1596 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1609 computeKnownBitsFromRangeMetadata(*MD, Known); in computeKnownBitsFromOperator()
1614 Known = Known.unionWith(Range->toKnownBits()); in computeKnownBitsFromOperator()
1619 Known = Known.unionWith(Known2); in computeKnownBitsFromOperator()
1624 if (Known.hasConflict()) in computeKnownBitsFromOperator()
1625 Known.resetAll(); in computeKnownBitsFromOperator()
1635 Known = Known2.abs(IntMinIsPoison); in computeKnownBitsFromOperator()
1640 Known.Zero |= Known2.Zero.reverseBits(); in computeKnownBitsFromOperator()
1641 Known.One |= Known2.One.reverseBits(); in computeKnownBitsFromOperator()
1645 Known.Zero |= Known2.Zero.byteSwap(); in computeKnownBitsFromOperator()
1646 Known.One |= Known2.One.byteSwap(); in computeKnownBitsFromOperator()
1656 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1667 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1676 Known.Zero.setBitsFrom(LowBits); in computeKnownBitsFromOperator()
1696 Known.Zero = in computeKnownBitsFromOperator()
1698 Known.One = in computeKnownBitsFromOperator()
1703 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1705 Known = KnownBits::uadd_sat(Known, Known2); in computeKnownBitsFromOperator()
1708 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1710 Known = KnownBits::usub_sat(Known, Known2); in computeKnownBitsFromOperator()
1713 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1715 Known = KnownBits::sadd_sat(Known, Known2); in computeKnownBitsFromOperator()
1718 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1720 Known = KnownBits::ssub_sat(Known, Known2); in computeKnownBitsFromOperator()
1724 computeKnownBits(I->getOperand(0), DemandedElts.reverseBits(), Known, in computeKnownBitsFromOperator()
1735 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1738 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1746 Known.Zero |= Known.One; in computeKnownBitsFromOperator()
1749 Known.One.clearAllBits(); in computeKnownBitsFromOperator()
1753 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1755 Known = KnownBits::umin(Known, Known2); in computeKnownBitsFromOperator()
1758 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1760 Known = KnownBits::umax(Known, Known2); in computeKnownBitsFromOperator()
1763 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1765 Known = KnownBits::smin(Known, Known2); in computeKnownBitsFromOperator()
1768 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1770 Known = KnownBits::smax(Known, Known2); in computeKnownBitsFromOperator()
1773 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1779 Known &= Known2.anyextOrTrunc(BitWidth); in computeKnownBitsFromOperator()
1785 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1787 Known = KnownBits::mulhs(Known, Known2); in computeKnownBitsFromOperator()
1792 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1794 Known = KnownBits::mulhu(Known, Known2); in computeKnownBitsFromOperator()
1797 Known.Zero.setBitsFrom(32); in computeKnownBitsFromOperator()
1803 Known = computeKnownBitsForHorizontalOperation( in computeKnownBitsFromOperator()
1814 Known = computeKnownBitsForHorizontalOperation(I, DemandedElts, Depth, in computeKnownBitsFromOperator()
1822 Known = computeKnownBitsForHorizontalOperation( in computeKnownBitsFromOperator()
1833 Known = computeKnownBitsForHorizontalOperation(I, DemandedElts, Depth, in computeKnownBitsFromOperator()
1856 Known.Zero.setBitsFrom(KnownZeroFirstBit); in computeKnownBitsFromOperator()
1863 Known = getVScaleRange(II->getFunction(), BitWidth).toKnownBits(); in computeKnownBitsFromOperator()
1874 Known.resetAll(); in computeKnownBitsFromOperator()
1881 Known.resetAll(); in computeKnownBitsFromOperator()
1884 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1885 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1888 computeKnownBits(LHS, DemandedLHS, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1890 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1896 Known = Known.intersectWith(Known2); in computeKnownBitsFromOperator()
1902 Known.resetAll(); in computeKnownBitsFromOperator()
1917 Known.One.setAllBits(); in computeKnownBitsFromOperator()
1918 Known.Zero.setAllBits(); in computeKnownBitsFromOperator()
1920 computeKnownBits(Elt, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1922 if (Known.isUnknown()) in computeKnownBitsFromOperator()
1928 Known = Known.intersectWith(Known2); in computeKnownBitsFromOperator()
1940 Known.resetAll(); in computeKnownBitsFromOperator()
1947 computeKnownBits(Vec, DemandedVecElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1961 /* NUW=*/false, DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1967 /* NUW=*/false, DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1972 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1981 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1990 KnownBits Known(getBitWidth(V->getType(), Q.DL)); in computeKnownBits() local
1991 ::computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
1992 return Known; in computeKnownBits()
1999 KnownBits Known(getBitWidth(V->getType(), Q.DL)); in computeKnownBits() local
2000 computeKnownBits(V, Known, Depth, Q); in computeKnownBits()
2001 return Known; in computeKnownBits()
2020 KnownBits &Known, unsigned Depth, in computeKnownBits() argument
2024 Known.resetAll(); in computeKnownBits()
2033 unsigned BitWidth = Known.getBitWidth(); in computeKnownBits()
2060 Known = KnownBits::makeConstant(*C); in computeKnownBits()
2065 Known.setAllZero(); in computeKnownBits()
2074 Known.Zero.setAllBits(); Known.One.setAllBits(); in computeKnownBits()
2079 Known.Zero &= ~Elt; in computeKnownBits()
2080 Known.One &= Elt; in computeKnownBits()
2082 if (Known.hasConflict()) in computeKnownBits()
2083 Known.resetAll(); in computeKnownBits()
2091 Known.Zero.setAllBits(); Known.One.setAllBits(); in computeKnownBits()
2100 Known.resetAll(); in computeKnownBits()
2104 Known.Zero &= ~Elt; in computeKnownBits()
2105 Known.One &= Elt; in computeKnownBits()
2107 if (Known.hasConflict()) in computeKnownBits()
2108 Known.resetAll(); in computeKnownBits()
2113 Known.resetAll(); in computeKnownBits()
2125 Known = Range->toKnownBits(); in computeKnownBits()
2135 computeKnownBits(GA->getAliasee(), Known, Depth + 1, Q); in computeKnownBits()
2140 computeKnownBitsFromOperator(I, DemandedElts, Known, Depth, Q); in computeKnownBits()
2143 Known = CR->toKnownBits(); in computeKnownBits()
2149 Known.Zero.setLowBits(Log2(Alignment)); in computeKnownBits()
2156 computeKnownBitsFromContext(V, Known, Depth, Q); in computeKnownBits()
2842 KnownBits Known(BitWidth); in isKnownNonZeroFromOperator() local
2843 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth, Q); in isKnownNonZeroFromOperator()
2844 if (Known.One[0]) in isKnownNonZeroFromOperator()
2847 return isNonZeroShift(I, DemandedElts, Depth, Q, Known); in isKnownNonZeroFromOperator()
2858 KnownBits Known = in isKnownNonZeroFromOperator() local
2860 if (Known.isNegative()) in isKnownNonZeroFromOperator()
2863 return isNonZeroShift(I, DemandedElts, Depth, Q, Known); in isKnownNonZeroFromOperator()
3197 KnownBits Known(BitWidth); in isKnownNonZeroFromOperator() local
3198 computeKnownBits(I, DemandedElts, Known, Depth, Q); in isKnownNonZeroFromOperator()
3199 return Known.One != 0; in isKnownNonZeroFromOperator()
3928 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
3929 computeKnownBits(U->getOperand(0), DemandedElts, Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3933 if ((Known.Zero | 1).isAllOnes()) in ComputeNumSignBitsImpl()
3938 if (Known.isNonNegative()) in ComputeNumSignBitsImpl()
3955 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
3956 computeKnownBits(U->getOperand(1), DemandedElts, Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3959 if ((Known.Zero | 1).isAllOnes()) in ComputeNumSignBitsImpl()
3965 if (Known.isNonNegative()) in ComputeNumSignBitsImpl()
4102 KnownBits Known(TyBits); in ComputeNumSignBitsImpl() local
4103 computeKnownBits(V, DemandedElts, Known, Depth, Q); in ComputeNumSignBitsImpl()
4107 return std::max(FirstAnswer, Known.countMinSignBits()); in ComputeNumSignBitsImpl()
4845 FPClassTest InterestedClasses, KnownFPClass &Known,
4848 static void computeKnownFPClass(const Value *V, KnownFPClass &Known, in computeKnownFPClass() argument
4854 computeKnownFPClass(V, DemandedElts, InterestedClasses, Known, Depth, Q); in computeKnownFPClass()
4860 KnownFPClass &Known, unsigned Depth, in computeKnownFPClassForFPTrunc() argument
4873 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClassForFPTrunc()
4875 Known.propagateNaN(KnownSrc, true); in computeKnownFPClassForFPTrunc()
4881 FPClassTest InterestedClasses, KnownFPClass &Known, in computeKnownFPClass() argument
4883 assert(Known.isUnknown() && "should not be called with known information"); in computeKnownFPClass()
4887 Known.resetAll(); in computeKnownFPClass()
4894 Known.KnownFPClasses = CFP->getValueAPF().classify(); in computeKnownFPClass()
4895 Known.SignBit = CFP->isNegative(); in computeKnownFPClass()
4900 Known.KnownFPClasses = fcPosZero; in computeKnownFPClass()
4901 Known.SignBit = false; in computeKnownFPClass()
4906 Known.KnownFPClasses = fcNone; in computeKnownFPClass()
4907 Known.SignBit = false; in computeKnownFPClass()
4915 Known.KnownFPClasses = fcNone; in computeKnownFPClass()
4927 Known = KnownFPClass(); in computeKnownFPClass()
4934 Known = KnownFPClass(); in computeKnownFPClass()
4939 Known.KnownFPClasses |= C.classify(); in computeKnownFPClass()
4946 Known.SignBit = SignBitAllOne; in computeKnownFPClass()
4971 auto ClearClassesFromFlags = make_scope_exit([=, &Known] { in computeKnownFPClass()
4972 Known.knownNot(KnownNotFromFlags); in computeKnownFPClass()
4973 if (!Known.SignBit && AssumedClasses.SignBit) { in computeKnownFPClass()
4975 Known.signBitMustBeOne(); in computeKnownFPClass()
4977 Known.signBitMustBeZero(); in computeKnownFPClass()
4992 Known, Depth + 1, Q); in computeKnownFPClass()
4993 Known.fneg(); in computeKnownFPClass()
5037 computeKnownFPClass(LHS, DemandedElts, InterestedClasses & FilterLHS, Known, in computeKnownFPClass()
5039 Known.KnownFPClasses &= FilterLHS; in computeKnownFPClass()
5045 Known |= Known2; in computeKnownFPClass()
5057 InterestedClasses, Known, Depth + 1, Q); in computeKnownFPClass()
5060 Known.fabs(); in computeKnownFPClass()
5067 Known, Depth + 1, Q); in computeKnownFPClass()
5070 Known.copysign(KnownSign); in computeKnownFPClass()
5082 Known.knownNot(fcNegZero); in computeKnownFPClass()
5090 Known.knownNot(fcNegative); in computeKnownFPClass()
5104 Known.knownNot(fcPosInf); in computeKnownFPClass()
5106 Known.knownNot(fcSNan); in computeKnownFPClass()
5110 Known.knownNot(fcNan); in computeKnownFPClass()
5113 Known.knownNot(fcNegInf | fcNegSubnormal | fcNegNormal); in computeKnownFPClass()
5120 Known.knownNot(fcNegZero); in computeKnownFPClass()
5130 Known.knownNot(fcInf); in computeKnownFPClass()
5132 Known.knownNot(fcNan); in computeKnownFPClass()
5146 Known = KnownLHS | KnownRHS; in computeKnownFPClass()
5150 Known.knownNot(fcNan); in computeKnownFPClass()
5159 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClass()
5165 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClass()
5173 Known.knownNot(KnownFPClass::OrderedGreaterThanZeroMask); in computeKnownFPClass()
5179 Known.knownNot(KnownFPClass::OrderedGreaterThanZeroMask); in computeKnownFPClass()
5189 if ((Known.KnownFPClasses & fcZero) != fcNone && in computeKnownFPClass()
5190 !Known.isKnownNeverSubnormal()) { in computeKnownFPClass()
5198 Known.KnownFPClasses |= fcZero; in computeKnownFPClass()
5201 if (Known.isKnownNeverNaN()) { in computeKnownFPClass()
5205 Known.signBitMustBeOne(); in computeKnownFPClass()
5207 Known.signBitMustBeZero(); in computeKnownFPClass()
5215 Known.signBitMustBeZero(); in computeKnownFPClass()
5218 Known.signBitMustBeOne(); in computeKnownFPClass()
5234 Known.KnownFPClasses = KnownSrc.KnownFPClasses | fcZero | fcQNan; in computeKnownFPClass()
5239 Known.knownNot(fcNan); in computeKnownFPClass()
5241 Known.knownNot(fcSNan); in computeKnownFPClass()
5254 Known.knownNot(fcPosZero); in computeKnownFPClass()
5256 Known.knownNot(fcNegZero); in computeKnownFPClass()
5261 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5266 Known.knownNot(fcNegZero); in computeKnownFPClass()
5276 Known = computeKnownFPClass(II->getArgOperand(0), II->getFastMathFlags(), in computeKnownFPClass()
5279 if (!Known.isKnownNeverNaN()) in computeKnownFPClass()
5280 Known.SignBit.reset(); in computeKnownFPClass()
5285 Known = computeKnownFPClass( in computeKnownFPClass()
5306 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5308 Known.propagateNaN(KnownSrc, true); in computeKnownFPClass()
5314 Known.knownNot(fcPosInf); in computeKnownFPClass()
5316 Known.knownNot(fcNegInf); in computeKnownFPClass()
5321 Known.knownNot(fcPosFinite); in computeKnownFPClass()
5323 Known.knownNot(fcNegFinite); in computeKnownFPClass()
5330 Known.knownNot(fcNegative); in computeKnownFPClass()
5338 Known.knownNot(fcNan); in computeKnownFPClass()
5339 Known.signBitMustBeZero(); in computeKnownFPClass()
5345 computeKnownFPClassForFPTrunc(Op, DemandedElts, InterestedClasses, Known, in computeKnownFPClass()
5373 Known.knownNot(fcPosInf); in computeKnownFPClass()
5376 Known.knownNot(fcNan); in computeKnownFPClass()
5380 Known.knownNot(fcNegInf); in computeKnownFPClass()
5396 Known.knownNot(fcNegative); in computeKnownFPClass()
5412 Known.knownNot(fcNegative); in computeKnownFPClass()
5419 Known.propagateNaN(KnownSrc, /*PropagateSign=*/true); in computeKnownFPClass()
5423 Known.knownNot(fcNegative); in computeKnownFPClass()
5425 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClass()
5428 Known.knownNot(fcPositive); in computeKnownFPClass()
5430 Known.knownNot(KnownFPClass::OrderedGreaterThanZeroMask); in computeKnownFPClass()
5448 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5454 Known.propagateCanonicalizingSrc(KnownSrc, *F, II->getType()); in computeKnownFPClass()
5458 Known.knownNot(fcPosInf); in computeKnownFPClass()
5460 Known.knownNot(fcNegInf); in computeKnownFPClass()
5464 Known.knownNot(fcPosSubnormal); in computeKnownFPClass()
5466 Known.knownNot(fcNegSubnormal); in computeKnownFPClass()
5468 Known.knownNot(fcPosZero); in computeKnownFPClass()
5470 Known.knownNot(fcNegZero); in computeKnownFPClass()
5477 Known, Depth + 1, Q); in computeKnownFPClass()
5483 Known.knownNot(fcNan); in computeKnownFPClass()
5486 Known.knownNot(fcNegZero); in computeKnownFPClass()
5489 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5492 Known.signBitMustBeZero(); in computeKnownFPClass()
5534 Known.knownNot(fcNan); in computeKnownFPClass()
5542 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClass()
5551 Known.knownNot(fcNegZero); in computeKnownFPClass()
5561 Known.knownNot(fcNegZero); in computeKnownFPClass()
5570 Known.knownNot(fcNegative); in computeKnownFPClass()
5591 Known.signBitMustBeZero(); in computeKnownFPClass()
5593 Known.signBitMustBeOne(); in computeKnownFPClass()
5598 Known.knownNot(fcNan); in computeKnownFPClass()
5610 Known.knownNot(fcNan); in computeKnownFPClass()
5620 Known.KnownFPClasses = fcNan | fcPosNormal; in computeKnownFPClass()
5623 Known.KnownFPClasses = fcNan | fcZero; in computeKnownFPClass()
5664 Known.knownNot(fcNan); in computeKnownFPClass()
5670 Known.knownNot(fcNegative); in computeKnownFPClass()
5676 Known.knownNot(fcNan); in computeKnownFPClass()
5681 Known.knownNot(KnownFPClass::OrderedLessThanZeroMask); in computeKnownFPClass()
5683 Known.knownNot(KnownFPClass::OrderedGreaterThanZeroMask); in computeKnownFPClass()
5687 Known.knownNot(fcNegative); in computeKnownFPClass()
5689 Known.knownNot(fcPositive); in computeKnownFPClass()
5697 Known, Depth + 1, Q); in computeKnownFPClass()
5706 if (Known.KnownFPClasses & fcPosSubnormal) in computeKnownFPClass()
5707 Known.KnownFPClasses |= fcPosNormal; in computeKnownFPClass()
5708 if (Known.KnownFPClasses & fcNegSubnormal) in computeKnownFPClass()
5709 Known.KnownFPClasses |= fcNegNormal; in computeKnownFPClass()
5710 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5714 if (!Known.isKnownNeverNaN()) in computeKnownFPClass()
5715 Known.SignBit = std::nullopt; in computeKnownFPClass()
5719 computeKnownFPClassForFPTrunc(Op, DemandedElts, InterestedClasses, Known, in computeKnownFPClass()
5726 Known.knownNot(fcNan); in computeKnownFPClass()
5729 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5732 Known.knownNot(fcNegZero); in computeKnownFPClass()
5734 Known.signBitMustBeZero(); in computeKnownFPClass()
5748 Known.knownNot(fcInf); in computeKnownFPClass()
5765 return computeKnownFPClass(Vec, DemandedVecElts, InterestedClasses, Known, in computeKnownFPClass()
5789 computeKnownFPClass(Elt, Known, InterestedClasses, Depth + 1, Q); in computeKnownFPClass()
5791 if (Known.isUnknown()) in computeKnownFPClass()
5794 Known.KnownFPClasses = fcNone; in computeKnownFPClass()
5802 Known |= Known2; in computeKnownFPClass()
5817 computeKnownFPClass(LHS, DemandedLHS, InterestedClasses, Known, in computeKnownFPClass()
5821 if (Known.isUnknown()) in computeKnownFPClass()
5824 Known.KnownFPClasses = fcNone; in computeKnownFPClass()
5832 Known |= Known2; in computeKnownFPClass()
5846 Known.knownNot(fcSubnormal); in computeKnownFPClass()
5855 Known.knownNot(fcNegative); in computeKnownFPClass()
5858 Known.knownNot(fcNegZero); in computeKnownFPClass()
5860 Known.knownNot(fcNegInf); in computeKnownFPClass()
5864 Known.knownNot(fcPositive); in computeKnownFPClass()
5867 Known.knownNot(fcPosZero); in computeKnownFPClass()
5869 Known.knownNot(fcPosInf); in computeKnownFPClass()
5872 Known.propagateNaN(KnownSrc); in computeKnownFPClass()
5881 computeKnownFPClass(Src, DemandedElts, InterestedClasses, Known, Depth + 1, in computeKnownFPClass()
5918 Known = KnownSrc; in computeKnownFPClass()
5921 Known |= KnownSrc; in computeKnownFPClass()
5924 if (Known.KnownFPClasses == fcAllFlags) in computeKnownFPClass()
5951 KnownFPClass Known; in computeKnownFPClass() local
5952 ::computeKnownFPClass(V, Known, InterestedClasses, Depth, SQ); in computeKnownFPClass()
5953 return Known; in computeKnownFPClass()