Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:KnownOne

348 /// analyze the expression and return a mask of KnownOne and KnownZero bits for
354 APInt &KnownOne,
364 KnownZero = KnownOne = APInt(BitWidth, 0);
369 // If not at the root, Just compute the KnownZero/KnownOne bits to
371 TLO.DAG.ComputeMaskedBits(Op, KnownZero, KnownOne, Depth);
390 KnownOne = cast<ConstantSDNode>(Op)->getAPIntValue();
391 KnownZero = ~KnownOne;
412 KnownOne, TLO, Depth+1))
414 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
422 if ((NewMask & ~KnownZero2 & KnownOne) == (~KnownZero2 & NewMask))
437 KnownOne &= KnownOne2;
443 KnownOne, TLO, Depth+1))
445 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
446 if (SimplifyDemandedBits(Op.getOperand(0), ~KnownOne & NewMask,
455 if ((NewMask & ~KnownOne & KnownZero2) == (~KnownOne & NewMask))
461 if ((NewMask & ~KnownZero2 & KnownOne) == (~KnownZero2 & NewMask))
473 KnownOne |= KnownOne2;
477 KnownOne, TLO, Depth+1))
479 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
504 KnownZeroOut = (KnownZero & KnownZero2) | (KnownOne & KnownOne2);
506 KnownOneOut = (KnownZero & KnownOne2) | (KnownOne & KnownZero2);
513 if ((NewMask & (KnownZero|KnownOne)) == NewMask) { // all known on one side
514 if (KnownOne == KnownOne2) { // set bits are the same on both sides
516 SDValue ANDC = TLO.DAG.getConstant(~KnownOne & NewMask, VT);
543 KnownOne = KnownOneOut;
547 KnownOne, TLO, Depth+1))
552 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
560 KnownOne &= KnownOne2;
565 KnownOne, TLO, Depth+1))
570 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
578 KnownOne &= KnownOne2;
613 KnownZero, KnownOne, TLO, Depth+1))
638 KnownOne <<= SA->getZExtValue();
677 KnownZero, KnownOne, TLO, Depth+1))
679 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
681 KnownOne = KnownOne.lshr(ShAmt);
714 KnownZero, KnownOne, TLO, Depth+1))
716 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
718 KnownOne = KnownOne.lshr(ShAmt);
729 } else if (KnownOne.intersects(SignBit)) { // New bits are known one.
730 KnownOne |= HighBits;
776 KnownZero, KnownOne, TLO, Depth+1))
778 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
788 if (KnownOne.intersects(InSignBit)) { // Input sign bit known set
789 KnownOne |= NewBits;
793 KnownOne &= ~NewBits;
811 KnownZero, KnownOne, TLO, Depth+1))
813 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
815 KnownOne = KnownOne.zext(BitWidth);
839 KnownOne, TLO, Depth+1))
842 KnownOne = KnownOne.zext(BitWidth);
851 if (KnownOne.intersects(InSignBit)) {
852 KnownOne |= NewBits;
855 assert((KnownOne & NewBits) == 0);
865 KnownZero, KnownOne, TLO, Depth+1))
867 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
869 KnownOne = KnownOne.zext(BitWidth);
879 KnownZero, KnownOne, TLO, Depth+1))
882 KnownOne = KnownOne.trunc(BitWidth);
927 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
937 KnownZero, KnownOne, TLO, Depth+1))
939 assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
990 TLO.DAG.ComputeMaskedBits(Op, KnownZero, KnownOne, Depth);
996 if ((NewMask & (KnownZero|KnownOne)) == NewMask)
997 return TLO.CombineTo(Op, TLO.DAG.getConstant(KnownOne, Op.getValueType()));
1004 /// KnownZero/KnownOne bitsets.
1007 APInt &KnownOne,
1016 KnownZero = KnownOne = APInt(KnownOne.getBitWidth(), 0);
1060 APInt KnownZero, KnownOne;
1061 DAG.ComputeMaskedBits(Val, KnownZero, KnownOne);
1063 (KnownOne.countPopulation() == 1);