Lines Matching defs:KnownZero

346 /// analyze the expression and return a mask of KnownOne and KnownZero bits for
347 /// the expression (used to simplify the caller). The KnownZero/One bits may
351 APInt &KnownZero,
362 KnownZero = KnownOne = APInt(BitWidth, 0);
367 // If not at the root, Just compute the KnownZero/KnownOne bits to
369 TLO.DAG.ComputeMaskedBits(Op, KnownZero, KnownOne, Depth);
389 KnownZero = ~KnownOne;
409 if (SimplifyDemandedBits(Op.getOperand(1), NewMask, KnownZero,
412 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
413 if (SimplifyDemandedBits(Op.getOperand(0), ~KnownZero & NewMask,
422 if ((NewMask & ~KnownZero & KnownOne2) == (~KnownZero & NewMask))
425 if ((NewMask & (KnownZero|KnownZero2)) == NewMask)
437 KnownZero |= KnownZero2;
440 if (SimplifyDemandedBits(Op.getOperand(1), NewMask, KnownZero,
443 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
451 if ((NewMask & ~KnownOne2 & KnownZero) == (~KnownOne2 & NewMask))
457 if ((NewMask & ~KnownZero & KnownOne2) == (~KnownZero & NewMask))
469 KnownZero &= KnownZero2;
474 if (SimplifyDemandedBits(Op.getOperand(1), NewMask, KnownZero,
477 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
485 if ((KnownZero & NewMask) == NewMask)
496 if ((NewMask & ~KnownZero & ~KnownZero2) == 0)
502 KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2);
504 KnownOneOut = (KnownZero & KnownOne2) | (KnownOne & KnownZero2);
511 if ((NewMask & (KnownZero|KnownOne)) == NewMask) { // all known on one side
540 KnownZero = KnownZeroOut;
544 if (SimplifyDemandedBits(Op.getOperand(2), NewMask, KnownZero,
550 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
559 KnownZero &= KnownZero2;
562 if (SimplifyDemandedBits(Op.getOperand(3), NewMask, KnownZero,
568 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
577 KnownZero &= KnownZero2;
611 KnownZero, KnownOne, TLO, Depth+1))
635 KnownZero <<= SA->getZExtValue();
638 KnownZero |= APInt::getLowBitsSet(BitWidth, SA->getZExtValue());
675 KnownZero, KnownOne, TLO, Depth+1))
677 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
678 KnownZero = KnownZero.lshr(ShAmt);
682 KnownZero |= HighBits; // High bits known zero.
712 KnownZero, KnownOne, TLO, Depth+1))
714 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
715 KnownZero = KnownZero.lshr(ShAmt);
723 if (KnownZero.intersects(SignBit) || (HighBits & ~NewMask) == HighBits) {
774 KnownZero, KnownOne, TLO, Depth+1))
776 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
782 if (KnownZero.intersects(InSignBit))
788 KnownZero &= ~NewBits;
790 KnownZero &= ~NewBits;
809 KnownZero, KnownOne, TLO, Depth+1))
811 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
812 KnownZero = KnownZero.zext(BitWidth);
814 KnownZero |= NewBits;
836 if (SimplifyDemandedBits(Op.getOperand(0), InDemandedBits, KnownZero,
839 KnownZero = KnownZero.zext(BitWidth);
843 if (KnownZero.intersects(InSignBit))
851 assert((KnownZero & NewBits) == 0);
854 assert((KnownZero & NewBits) == 0);
863 KnownZero, KnownOne, TLO, Depth+1))
865 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
866 KnownZero = KnownZero.zext(BitWidth);
877 KnownZero, KnownOne, TLO, Depth+1))
879 KnownZero = KnownZero.trunc(BitWidth);
925 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
935 KnownZero, KnownOne, TLO, Depth+1))
937 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
939 KnownZero |= ~InMask & NewMask;
988 TLO.DAG.ComputeMaskedBits(Op, KnownZero, KnownOne, Depth);
994 if ((NewMask & (KnownZero|KnownOne)) == NewMask)
1002 /// KnownZero/KnownOne bitsets.
1004 APInt &KnownZero,
1014 KnownZero = KnownOne = APInt(KnownOne.getBitWidth(), 0);
1058 APInt KnownZero, KnownOne;
1059 DAG.ComputeMaskedBits(Val, KnownZero, KnownOne);
1060 return (KnownZero.countPopulation() == BitWidth - 1) &&