Lines Matching refs:KnownZero
1577 APInt KnownZero, KnownOne;
1578 ComputeMaskedBits(Op, Mask, KnownZero, KnownOne, Depth);
1579 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1580 return (KnownZero & Mask) == Mask;
1584 /// known to be either zero or one and return them in the KnownZero/KnownOne
1588 APInt &KnownZero, APInt &KnownOne,
1594 KnownZero = KnownOne = APInt(BitWidth, 0); // Don't know anything.
1604 KnownZero = ~KnownOne & Mask;
1608 ComputeMaskedBits(Op.getOperand(1), Mask, KnownZero, KnownOne, Depth+1);
1609 ComputeMaskedBits(Op.getOperand(0), Mask & ~KnownZero,
1611 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1617 KnownZero |= KnownZero2;
1620 ComputeMaskedBits(Op.getOperand(1), Mask, KnownZero, KnownOne, Depth+1);
1623 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1627 KnownZero &= KnownZero2;
1632 ComputeMaskedBits(Op.getOperand(1), Mask, KnownZero, KnownOne, Depth+1);
1634 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1638 APInt KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2);
1640 KnownOne = (KnownZero & KnownOne2) | (KnownOne & KnownZero2);
1641 KnownZero = KnownZeroOut;
1646 ComputeMaskedBits(Op.getOperand(1), Mask2, KnownZero, KnownOne, Depth+1);
1648 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1656 unsigned TrailZ = KnownZero.countTrailingOnes() +
1658 unsigned LeadZ = std::max(KnownZero.countLeadingOnes() +
1664 KnownZero = APInt::getLowBitsSet(BitWidth, TrailZ) |
1666 KnownZero &= Mask;
1687 KnownZero = APInt::getHighBitsSet(BitWidth, LeadZ) & Mask;
1691 ComputeMaskedBits(Op.getOperand(2), Mask, KnownZero, KnownOne, Depth+1);
1693 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1698 KnownZero &= KnownZero2;
1701 ComputeMaskedBits(Op.getOperand(3), Mask, KnownZero, KnownOne, Depth+1);
1703 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1708 KnownZero &= KnownZero2;
1723 KnownZero |= APInt::getHighBitsSet(BitWidth, BitWidth - 1);
1735 KnownZero, KnownOne, Depth+1);
1736 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1737 KnownZero <<= ShAmt;
1740 KnownZero |= APInt::getLowBitsSet(BitWidth, ShAmt);
1753 KnownZero, KnownOne, Depth+1);
1754 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1755 KnownZero = KnownZero.lshr(ShAmt);
1759 KnownZero |= HighBits; // High bits known zero.
1777 ComputeMaskedBits(Op.getOperand(0), InDemandedMask, KnownZero, KnownOne,
1779 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1780 KnownZero = KnownZero.lshr(ShAmt);
1787 if (KnownZero.intersects(SignBit)) {
1788 KnownZero |= HighBits; // New bits are known zero.
1812 KnownZero, KnownOne, Depth+1);
1813 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1817 if (KnownZero.intersects(InSignBit)) { // Input sign bit known clear
1818 KnownZero |= NewBits;
1822 KnownZero &= ~NewBits;
1824 KnownZero &= ~NewBits;
1833 KnownZero = APInt::getHighBitsSet(BitWidth, BitWidth - LowBits);
1842 KnownZero |= APInt::getHighBitsSet(BitWidth, BitWidth - MemBits) & Mask;
1851 KnownZero = KnownZero.trunc(InBits);
1853 ComputeMaskedBits(Op.getOperand(0), InMask, KnownZero, KnownOne, Depth+1);
1854 KnownZero = KnownZero.zext(BitWidth);
1856 KnownZero |= NewBits;
1871 KnownZero = KnownZero.trunc(InBits);
1873 ComputeMaskedBits(Op.getOperand(0), InMask, KnownZero, KnownOne, Depth+1);
1876 bool SignBitKnownZero = KnownZero.isNegative();
1882 // want it set in the KnownZero and KnownOne result values. Reset the
1885 KnownZero &= InMask;
1888 KnownZero = KnownZero.zext(BitWidth);
1893 KnownZero |= NewBits;
1902 KnownZero = KnownZero.trunc(InBits);
1904 ComputeMaskedBits(Op.getOperand(0), InMask, KnownZero, KnownOne, Depth+1);
1905 KnownZero = KnownZero.zext(BitWidth);
1913 KnownZero = KnownZero.zext(InBits);
1915 ComputeMaskedBits(Op.getOperand(0), InMask, KnownZero, KnownOne, Depth+1);
1916 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
1917 KnownZero = KnownZero.trunc(BitWidth);
1924 ComputeMaskedBits(Op.getOperand(0), Mask & InMask, KnownZero,
1926 KnownZero |= (~InMask) & Mask;
1931 KnownZero = APInt::getHighBitsSet(BitWidth, BitWidth - 1);
1952 KnownZero = APInt::getHighBitsSet(BitWidth, NLZ2) & Mask;
1975 KnownZero |= APInt::getLowBitsSet(BitWidth, KnownZeroOut);
1984 KnownZero |= APInt::getBitsSet(BitWidth, 1, KnownZeroOut);
1996 KnownZero = KnownZero2 & LowBits;
2002 KnownZero |= ~LowBits;
2009 KnownZero &= Mask;
2012 assert((KnownZero & KnownOne) == 0&&"Bits known to be one AND zero?");
2022 KnownZero |= ~LowBits & Mask;
2023 ComputeMaskedBits(Op.getOperand(0), Mask2, KnownZero, KnownOne,Depth+1);
2024 assert((KnownZero & KnownOne) == 0&&"Bits known to be one AND zero?");
2032 ComputeMaskedBits(Op.getOperand(0), AllOnes, KnownZero, KnownOne,
2037 uint32_t Leaders = std::max(KnownZero.countLeadingOnes(),
2040 KnownZero = APInt::getHighBitsSet(BitWidth, Leaders) & Mask;
2047 KnownZero = APInt::getLowBitsSet(BitWidth, Log2_32(Align));
2060 TLI.computeMaskedBitsForTargetNode(Op, Mask, KnownZero, KnownOne, *this,
2184 APInt KnownZero, KnownOne;
2186 ComputeMaskedBits(Op.getOperand(0), Mask, KnownZero, KnownOne, Depth+1);
2190 if ((KnownZero | APInt(VTBits, 1)) == Mask)
2195 if (KnownZero.isNegative())
2211 APInt KnownZero, KnownOne;
2213 ComputeMaskedBits(Op.getOperand(1), Mask, KnownZero, KnownOne, Depth+1);
2216 if ((KnownZero | APInt(VTBits, 1)) == Mask)
2221 if (KnownZero.isNegative())
2265 APInt KnownZero, KnownOne;
2267 ComputeMaskedBits(Op, Mask, KnownZero, KnownOne, Depth);
2269 if (KnownZero.isNegative()) { // sign bit is 0
2270 Mask = KnownZero;