reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

gen/lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc
21208   return (~Known0.Zero & ~Known1.Zero) == 0;
21208   return (~Known0.Zero & ~Known1.Zero) == 0;
gen/lib/Target/X86/X86GenDAGISel.inc
254124     return (~Known.Zero).isSubsetOf(CN->getAPIntValue());
254140   return (~Known0.Zero & ~Known1.Zero) == 0;
254140   return (~Known0.Zero & ~Known1.Zero) == 0;
include/llvm/CodeGen/FunctionLoweringInfo.h
  249     LOI.Known.Zero = Known.Zero;
  249     LOI.Known.Zero = Known.Zero;
include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
   54     return Mask.isSubsetOf(getKnownBits(Val).Zero);
include/llvm/Support/KnownBits.h
   40     assert(Zero.getBitWidth() == One.getBitWidth() &&
   42     return Zero.getBitWidth();
   46   bool hasConflict() const { return Zero.intersects(One); }
   51     return Zero.countPopulation() + One.countPopulation() == getBitWidth();
   62   bool isUnknown() const { return Zero.isNullValue() && One.isNullValue(); }
   66     Zero.clearAllBits();
   73     return Zero.isAllOnesValue();
   84     Zero.setAllBits();
   90     Zero.clearAllBits();
   98   bool isNonNegative() const { return Zero.isSignBitSet(); }
  107     Zero.setSignBit();
  113     return KnownBits(Zero.trunc(BitWidth), One.trunc(BitWidth));
  122     APInt NewZero = Zero.zext(BitWidth);
  131     return KnownBits(Zero.sext(BitWidth), One.sext(BitWidth));
  142     return KnownBits(Zero.zextOrTrunc(BitWidth), One.zextOrTrunc(BitWidth));
  147     return Zero.countTrailingOnes();
  157     return Zero.countLeadingOnes();
  182     return Zero.countTrailingZeros();
  192     return Zero.countLeadingZeros();
  202     return getBitWidth() - Zero.countPopulation();
lib/Analysis/BasicAliasAnalysis.cpp
 1192           if (Known1.Zero.intersects(Known2.One) ||
 1193               Known1.One.intersects(Known2.Zero))
lib/Analysis/ConstantFolding.cpp
  726     if ((Known1.One | Known0.Zero).isAllOnesValue()) {
  730     if ((Known0.One | Known1.Zero).isAllOnesValue()) {
  735     Known0.Zero |= Known1.Zero;
  735     Known0.Zero |= Known1.Zero;
lib/Analysis/DemandedBits.cpp
  242       AB &= ~Known2.Zero;
  244       AB &= ~(Known.Zero & ~Known2.Zero);
  244       AB &= ~(Known.Zero & ~Known2.Zero);
lib/Analysis/InstructionSimplify.cpp
  721     if (Known.Zero.isMaxSignedValue()) {
lib/Analysis/ScalarEvolution.cpp
 5713       if (Known.One != ~Known.Zero + 1)
 5716                 ConstantRange(Known.One, ~Known.Zero + 1), RangeType);
 6269         if ((LZ != 0 || TZ != 0) && !((~A & ~Known.Zero) & EffectiveMask)) {
lib/Analysis/ValueTracking.cpp
  210   return (LHSKnown.Zero | RHSKnown.Zero).isAllOnesValue();
  210   return (LHSKnown.Zero | RHSKnown.Zero).isAllOnesValue();
  408   unsigned TrailBitsKnown0 = (Known.Zero | Known.One).countTrailingOnes();
  409   unsigned TrailBitsKnown1 = (Known2.Zero | Known2.One).countTrailingOnes();
  423   Known.Zero.setHighBits(LeadZ);
  424   Known.Zero |= (~BottomKnown).getLoBits(ResultBitsKnown);
  444   Known.Zero.setAllBits();
  460     Known.Zero &= ~Range.getUnsignedMax() & Mask;
  642         Known.Zero |= RHSKnown.Zero;
  642         Known.Zero |= RHSKnown.Zero;
  655         Known.Zero |= RHSKnown.Zero & MaskKnown.One;
  655         Known.Zero |= RHSKnown.Zero & MaskKnown.One;
  668         Known.Zero |= RHSKnown.One  & MaskKnown.One;
  669         Known.One  |= RHSKnown.Zero & MaskKnown.One;
  681         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  681         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  681         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  682         Known.One  |= RHSKnown.One  & BKnown.Zero;
  694         Known.Zero |= RHSKnown.One  & BKnown.Zero;
  694         Known.Zero |= RHSKnown.One  & BKnown.Zero;
  695         Known.One  |= RHSKnown.Zero & BKnown.Zero;
  695         Known.One  |= RHSKnown.Zero & BKnown.Zero;
  708         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  708         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  708         Known.Zero |= RHSKnown.Zero & BKnown.Zero;
  709         Known.One  |= RHSKnown.One  & BKnown.Zero;
  710         Known.Zero |= RHSKnown.One  & BKnown.One;
  711         Known.One  |= RHSKnown.Zero & BKnown.One;
  724         Known.Zero |= RHSKnown.One  & BKnown.Zero;
  724         Known.Zero |= RHSKnown.One  & BKnown.Zero;
  725         Known.One  |= RHSKnown.Zero & BKnown.Zero;
  725         Known.One  |= RHSKnown.Zero & BKnown.Zero;
  726         Known.Zero |= RHSKnown.Zero & BKnown.One;
  726         Known.Zero |= RHSKnown.Zero & BKnown.One;
  736         RHSKnown.Zero.lshrInPlace(C);
  737         Known.Zero |= RHSKnown.Zero;
  737         Known.Zero |= RHSKnown.Zero;
  749         Known.Zero |= RHSKnown.One;
  750         RHSKnown.Zero.lshrInPlace(C);
  751         Known.One  |= RHSKnown.Zero;
  760         Known.Zero |= RHSKnown.Zero << C;
  760         Known.Zero |= RHSKnown.Zero << C;
  770         Known.Zero |= RHSKnown.One  << C;
  771         Known.One  |= RHSKnown.Zero << C;
  834         Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros());
  847           Known.Zero.setAllBits();
  855           Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros() + 1);
  857           Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros());
  868   if (Known.Zero.intersects(Known.One)) {
  902     Known.Zero = KZF(Known.Zero, ShiftAmt);
  902     Known.Zero = KZF(Known.Zero, ShiftAmt);
  918   if ((~Known.Zero).uge(BitWidth)) {
  926   uint64_t ShiftAmtKZ = Known.Zero.zextOrTrunc(64).getZExtValue();
  948   Known.Zero.setAllBits();
  968     Known.Zero &= KZF(Known2.Zero, ShiftAmt);
  968     Known.Zero &= KZF(Known2.Zero, ShiftAmt);
  998     Known.Zero |= Known2.Zero;
  998     Known.Zero |= Known2.Zero;
 1006     if (!Known.Zero[0] && !Known.One[0] &&
 1011         Known.Zero.setBit(0);
 1020     Known.Zero &= Known2.Zero;
 1020     Known.Zero &= Known2.Zero;
 1029     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 1029     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 1031     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 1031     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 1032     Known.Zero = std::move(KnownZeroOut);
 1054     Known.Zero.setHighBits(LeadZ);
 1111     Known.Zero &= Known2.Zero;
 1111     Known.Zero &= Known2.Zero;
 1115       Known.Zero.setHighBits(MaxHighZeros);
 1241         Known.Zero = Known2.Zero & LowBits;
 1241         Known.Zero = Known2.Zero & LowBits;
 1246         if (Known2.isNonNegative() || LowBits.isSubsetOf(Known2.Zero))
 1247           Known.Zero |= ~LowBits;
 1254         assert((Known.Zero & Known.One) == 0 && "Bits known to be one AND zero?");
 1273         Known.Zero |= ~LowBits;
 1287     Known.Zero.setHighBits(Leaders);
 1298       Known.Zero.setLowBits(countTrailingZeros(Align));
 1336         LocalKnown.Zero = LocalKnown.One = APInt(GEPOpiBits, 0);
 1344     Known.Zero.setLowBits(TrailZ);
 1385           Known.Zero.setLowBits(std::min(Known2.countMinTrailingZeros(),
 1432     if (Depth < MaxDepth - 1 && !Known.Zero && !Known.One) {
 1437       Known.Zero.setAllBits();
 1447         Known.Zero &= Known2.Zero;
 1447         Known.Zero &= Known2.Zero;
 1451         if (!Known.Zero && !Known.One)
 1467       Known.Zero |= Known2.Zero;
 1467       Known.Zero |= Known2.Zero;
 1475         Known.Zero |= Known2.Zero.reverseBits();
 1475         Known.Zero |= Known2.Zero.reverseBits();
 1480         Known.Zero |= Known2.Zero.byteSwap();
 1480         Known.Zero |= Known2.Zero.byteSwap();
 1491         Known.Zero.setBitsFrom(LowBits);
 1502         Known.Zero.setBitsFrom(LowBits);
 1511         Known.Zero.setBitsFrom(LowBits);
 1531         Known.Zero =
 1532             Known2.Zero.shl(ShiftAmt) | Known3.Zero.lshr(BitWidth - ShiftAmt);
 1532             Known2.Zero.shl(ShiftAmt) | Known3.Zero.lshr(BitWidth - ShiftAmt);
 1561           Known.Zero.clearAllBits();
 1563           Known.Zero.setHighBits(LeadingKnown);
 1569         Known.Zero.setBitsFrom(32);
 1655     Known.Zero = ~Known.One;
 1668     Known.Zero.setAllBits(); Known.One.setAllBits();
 1671       Known.Zero &= ~Elt;
 1680     Known.Zero.setAllBits(); Known.One.setAllBits();
 1689       Known.Zero &= ~Elt;
 1726       Known.Zero.setLowBits(countTrailingZeros(Align->value()));
 1735   assert((Known.Zero & Known.One) == 0 && "Bits known to be one AND zero?");
 1815       if ((~(LHSBits.Zero & RHSBits.Zero)).isPowerOf2())
 1815       if ((~(LHSBits.Zero & RHSBits.Zero)).isPowerOf2())
 2279     if (Known1.Zero.intersects(Known2.One) ||
 2280         Known2.Zero.intersects(Known1.One))
 2299   return Mask.isSubsetOf(Known.Zero);
 2521           if ((Known.Zero | 1).isAllOnesValue())
 2545           if ((Known.Zero | 1).isAllOnesValue())
 5175         if (CA->isSubsetOf(Known.Zero) && CB->isSubsetOf(Known.Zero))
 5175         if (CA->isSubsetOf(Known.Zero) && CB->isSubsetOf(Known.Zero))
lib/CodeGen/GlobalISel/GISelKnownBits.cpp
   62     Known.Zero.setLowBits(Log2(Alignment));
   85   return getKnownBits(R).Zero;
  147     Known.Zero = ~Known.One;
  166     Known.Zero.setLowBits(KnownZeroLow);
  176     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
  176     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
  178     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
  178     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
  179     Known.Zero = KnownZeroOut;
  205     Known.Zero.setLowBits(KnownZeroLow);
  207       Known.Zero.setHighBits(KnownZeroHigh - 1);
  220     Known.Zero |= Known2.Zero;
  220     Known.Zero |= Known2.Zero;
  231     Known.Zero &= Known2.Zero;
  231     Known.Zero &= Known2.Zero;
  253     Known.Zero.setLowBits(std::min(TrailZ, BitWidth));
  254     Known.Zero.setHighBits(std::min(LeadZ, BitWidth));
  267     Known.Zero &= Known2.Zero;
  267     Known.Zero &= Known2.Zero;
  276       Known.Zero.setBitsFrom(1);
  305       Known.Zero.setBitsFrom((*MI.memoperands_begin())->getSizeInBits());
  328       Known.Zero = Known.Zero.ashr(Shift);
  328       Known.Zero = Known.Zero.ashr(Shift);
  332       Known.Zero = Known.Zero.lshr(Shift);
  332       Known.Zero = Known.Zero.lshr(Shift);
  334       Known.Zero.setBitsFrom(Known.Zero.getBitWidth() - Shift);
  334       Known.Zero.setBitsFrom(Known.Zero.getBitWidth() - Shift);
  337       Known.Zero = Known.Zero.shl(Shift);
  337       Known.Zero = Known.Zero.shl(Shift);
  339       Known.Zero.setBits(0, Shift);
  360       Known.Zero.setBitsFrom(SrcBitWidth);
  369                     << (Known.Zero | Known.One).toString(16, false) << "\n"
  371                     << Known.Zero.toString(16, false) << "\n"
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 6043           ((NegC->getAPIntValue() | Known.Zero).countTrailingOnes() >= Bits)) {
 6064           ((PosC->getAPIntValue() | Known.Zero).countTrailingOnes() >=
 7857     APInt UnknownBits = ~Known.Zero;
 9673   return (Known.Zero | 1).isAllOnesValue();
 9725     if (TruncatedBits.isSubsetOf(Known.Zero))
lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  443     DestLOI.Known.Zero = ~Val;
  461   assert(DestLOI.Known.Zero.getBitWidth() == BitWidth &&
  476       DestLOI.Known.Zero &= ~Val;
  494     DestLOI.Known.Zero &= SrcLOI->Known.Zero;
  494     DestLOI.Known.Zero &= SrcLOI->Known.Zero;
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
 1928   if (((Known.Zero|Known.One) & HighBitMask) == 0)
 1962   if (HighBitMask.isSubsetOf(Known.Zero)) {
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
 2183           DemandedBits.isSubsetOf(computeKnownBits(V.getOperand(0)).Zero |
 2231   return Mask.isSubsetOf(computeKnownBits(V, DemandedElts, Depth).Zero);
 2441     Known.Zero = ~Known.One;
 2447     Known.Zero = ~Known.One;
 2467     Known.Zero.setAllBits(); Known.One.setAllBits();
 2484       Known.Zero &= Known2.Zero;
 2484       Known.Zero &= Known2.Zero;
 2495     Known.Zero.setAllBits(); Known.One.setAllBits();
 2522       Known.Zero &= Known2.Zero;
 2522       Known.Zero &= Known2.Zero;
 2531       Known.Zero &= Known2.Zero;
 2531       Known.Zero &= Known2.Zero;
 2537     Known.Zero.setAllBits(); Known.One.setAllBits();
 2548         Known.Zero &= Known2.Zero;
 2548         Known.Zero &= Known2.Zero;
 2565       Known.Zero.setAllBits();
 2578         Known.Zero &= Known2.Zero;
 2578         Known.Zero &= Known2.Zero;
 2586       Known.Zero &= Known2.Zero;
 2586       Known.Zero &= Known2.Zero;
 2654         Known.Zero |= Known2.Zero.zext(BitWidth).shl(SubBitWidth * Shifts);
 2654         Known.Zero |= Known2.Zero.zext(BitWidth).shl(SubBitWidth * Shifts);
 2673       Known.Zero.setAllBits(); Known.One.setAllBits();
 2679           Known.Zero &= Known2.Zero.lshr(Offset).trunc(BitWidth);
 2679           Known.Zero &= Known2.Zero.lshr(Offset).trunc(BitWidth);
 2695     Known.Zero |= Known2.Zero;
 2695     Known.Zero |= Known2.Zero;
 2702     Known.Zero &= Known2.Zero;
 2702     Known.Zero &= Known2.Zero;
 2711     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 2711     APInt KnownZeroOut = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 2713     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 2713     Known.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 2714     Known.Zero = KnownZeroOut;
 2732     Known.Zero.setLowBits(std::min(TrailZ, BitWidth));
 2733     Known.Zero.setHighBits(std::min(LeadZ, BitWidth));
 2748     Known.Zero.setHighBits(LeadZ);
 2761     Known.Zero &= Known2.Zero;
 2761     Known.Zero &= Known2.Zero;
 2772     Known.Zero &= Known2.Zero;
 2772     Known.Zero &= Known2.Zero;
 2786       Known.Zero.setBitsFrom(1);
 2793       Known.Zero.setBitsFrom(1);
 2799       Known.Zero <<= Shift;
 2802       Known.Zero.setLowBits(Shift);
 2809       Known.Zero.lshrInPlace(Shift);
 2812       Known.Zero.setHighBits(Shift);
 2815       Known.Zero.setHighBits(ShMinAmt->getZExtValue());
 2823       Known.Zero.ashrInPlace(Shift);
 2846         Known.Zero <<= Amt;
 2848         Known2.Zero.lshrInPlace(BitWidth - Amt);
 2851         Known.Zero <<= BitWidth - Amt;
 2853         Known2.Zero.lshrInPlace(Amt);
 2856       Known.Zero |= Known2.Zero;
 2856       Known.Zero |= Known2.Zero;
 2878     Known.Zero &= InputDemandedBits;
 2882     if (Known.Zero.intersects(InSignMask)) {        // Input sign bit known clear
 2883       Known.Zero |= NewBits;
 2887       Known.Zero &= ~NewBits;
 2889       Known.Zero &= ~NewBits;
 2900     Known.Zero.setBitsFrom(LowBits);
 2909     Known.Zero.setBitsFrom(LowBits);
 2916     Known.Zero.setBitsFrom(Log2_32(PossibleOnes) + 1);
 2938           Known.Zero.setAllBits();
 2946                 Known.Zero &= ~Value;
 2952                 Known.Zero &= ~Value;
 2957             Known.Zero.clearAllBits();
 2964             Known.Zero = ~Value;
 2968             Known.Zero = ~Value;
 2976       Known.Zero.setBitsFrom(MemBits);
 3025     Known.Zero |= (~InMask);
 3026     Known.One  &= (~Known.Zero);
 3031     Known.Zero.setBitsFrom(1);
 3040         Known.Zero.setBitsFrom(1);
 3060         Known.Zero.setBitsFrom(1);
 3097         Known.Zero = Known2.Zero & LowBits;
 3097         Known.Zero = Known2.Zero & LowBits;
 3102         if (Known2.isNonNegative() || LowBits.isSubsetOf(Known2.Zero))
 3103           Known.Zero |= ~LowBits;
 3109         assert((Known.Zero & Known.One) == 0&&"Bits known to be one AND zero?");
 3121         Known.Zero = Known2.Zero | ~LowBits;
 3121         Known.Zero = Known2.Zero | ~LowBits;
 3135     Known.Zero.setHighBits(Leaders);
 3144     Known.Zero = Known.Zero.getHiBits(Known.getBitWidth() - Index * EltBitWidth);
 3144     Known.Zero = Known.Zero.getHiBits(Known.getBitWidth() - Index * EltBitWidth);
 3184       Known.Zero = Known.One = APInt::getAllOnesValue(BitWidth);
 3191         Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3191         Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3191         Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3200         Known.Zero &= Known2.Zero;
 3200         Known.Zero &= Known2.Zero;
 3207       Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3207       Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3207       Known.Zero &= Known2.Zero.zextOrTrunc(Known.Zero.getBitWidth());
 3213     Known.Zero = Known2.Zero.reverseBits();
 3213     Known.Zero = Known2.Zero.reverseBits();
 3219     Known.Zero = Known2.Zero.byteSwap();
 3219     Known.Zero = Known2.Zero.byteSwap();
 3228       Known.Zero = Known2.Zero;
 3228       Known.Zero = Known2.Zero;
 3237       Known.Zero = APInt::getSignMask(BitWidth);
 3251     Known.Zero &= Known2.Zero;
 3251     Known.Zero &= Known2.Zero;
 3253     Known.Zero.setHighBits(LeadZero);
 3265     Known.Zero &= Known2.Zero;
 3265     Known.Zero &= Known2.Zero;
 3295           Known.Zero.setHighBits(MinSignBits);
 3305     Known.Zero &= Known2.Zero;
 3305     Known.Zero &= Known2.Zero;
 3337   if (N1Known.Zero.getBoolValue()) {
 3341     (void)(~N0Known.Zero).uadd_ov(~N1Known.Zero, overflow);
 3341     (void)(~N0Known.Zero).uadd_ov(~N1Known.Zero, overflow);
 3348       (~N1Known.Zero & 0x01) == ~N1Known.Zero)
 3348       (~N1Known.Zero & 0x01) == ~N1Known.Zero)
 3354     if ((~N0Known.Zero & 0x01) == ~N0Known.Zero)
 3354     if ((~N0Known.Zero & 0x01) == ~N0Known.Zero)
 3687         if ((Known.Zero | 1).isAllOnesValue())
 3710         if ((Known.Zero | 1).isAllOnesValue())
 3951     Mask = Known.Zero;
 4148   return (computeKnownBits(A).Zero | computeKnownBits(B).Zero).isAllOnesValue();
 4148   return (computeKnownBits(A).Zero | computeKnownBits(B).Zero).isAllOnesValue();
lib/CodeGen/SelectionDAG/TargetLowering.cpp
  665     if (DemandedBits.isSubsetOf(LHSKnown.Zero | RHSKnown.One))
  667     if (DemandedBits.isSubsetOf(RHSKnown.Zero | LHSKnown.One))
  678     if (DemandedBits.isSubsetOf(LHSKnown.One | RHSKnown.Zero))
  680     if (DemandedBits.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
  690     if (DemandedBits.isSubsetOf(RHSKnown.Zero))
  692     if (DemandedBits.isSubsetOf(LHSKnown.Zero))
  781     Known.Zero = ~Known.One;
  869       Known.Zero &= KnownVec.Zero;
  869       Known.Zero &= KnownVec.Zero;
  901     Known.Zero.setAllBits();
  905         Known.Zero &= KnownSub.Zero;
  905         Known.Zero &= KnownSub.Zero;
  909         Known.Zero &= KnownBase.Zero;
  909         Known.Zero &= KnownBase.Zero;
  929     Known.Zero.setAllBits();
  943         Known.Zero &= Known2.Zero;
  943         Known.Zero &= Known2.Zero;
  976       Known.Zero.setAllBits();
  983         Known.Zero &= Known2.Zero;
  983         Known.Zero &= Known2.Zero;
  990         Known.Zero &= Known2.Zero;
  990         Known.Zero &= Known2.Zero;
 1019       if ((LHSKnown.Zero & DemandedBits) ==
 1025       if (ShrinkDemandedConstant(Op, ~LHSKnown.Zero & DemandedBits, TLO))
 1044     if (SimplifyDemandedBits(Op0, ~Known.Zero & DemandedBits, DemandedElts,
 1065     if (DemandedBits.isSubsetOf(Known2.Zero | Known.One))
 1067     if (DemandedBits.isSubsetOf(Known.Zero | Known2.One))
 1070     if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero))
 1070     if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero))
 1073     if (ShrinkDemandedConstant(Op, ~Known2.Zero & DemandedBits, TLO))
 1082     Known.Zero |= Known2.Zero;
 1082     Known.Zero |= Known2.Zero;
 1114     if (DemandedBits.isSubsetOf(Known2.One | Known.Zero))
 1116     if (DemandedBits.isSubsetOf(Known.One | Known2.Zero))
 1126     Known.Zero &= Known2.Zero;
 1126     Known.Zero &= Known2.Zero;
 1160     if (DemandedBits.isSubsetOf(Known.Zero))
 1162     if (DemandedBits.isSubsetOf(Known2.Zero))
 1171     if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero))
 1171     if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero))
 1175     KnownOut.Zero = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 1175     KnownOut.Zero = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 1175     KnownOut.Zero = (Known.Zero & Known2.Zero) | (Known.One & Known2.One);
 1177     KnownOut.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 1177     KnownOut.One = (Known.Zero & Known2.One) | (Known.One & Known2.Zero);
 1225     Known.Zero &= Known2.Zero;
 1225     Known.Zero &= Known2.Zero;
 1243     Known.Zero &= Known2.Zero;
 1243     Known.Zero &= Known2.Zero;
 1270       Known.Zero.setBitsFrom(1);
 1363       Known.Zero <<= ShAmt;
 1366       Known.Zero.setLowBits(ShAmt);
 1422       Known.Zero.lshrInPlace(ShAmt);
 1425       Known.Zero.setHighBits(ShAmt); // High bits known zero.
 1465       Known.Zero.lshrInPlace(ShAmt);
 1470       if (Known.Zero[BitWidth - ShAmt - 1] ||
 1523       Known2.Zero <<= (IsFSHL ? Amt : (BitWidth - Amt));
 1525       Known.Zero.lshrInPlace(IsFSHL ? (BitWidth - Amt) : Amt);
 1527       Known.Zero |= Known2.Zero;
 1527       Known.Zero |= Known2.Zero;
 1538     Known.Zero = Known2.Zero.reverseBits();
 1538     Known.Zero = Known2.Zero.reverseBits();
 1584     if (Known.Zero[ExVTBits - 1])
 1591       Known.Zero &= Mask;
 1593       Known.Zero &= Mask;
 1613     Known.Zero = KnownLo.Zero.zext(BitWidth) |
 1613     Known.Zero = KnownLo.Zero.zext(BitWidth) |
 1614                  KnownHi.Zero.zext(BitWidth).shl(HalfBitWidth);
 1796     Known.Zero |= ~InMask;
 1997   if (DemandedBits.isSubsetOf(Known.Zero | Known.One)) {
 2607     Known.Zero.setLowBits(Log2_32(Align));
lib/IR/ConstantRange.cpp
   67     return ConstantRange(Known.One, ~Known.Zero + 1);
   71   APInt Lower = Known.One, Upper = ~Known.Zero;
lib/Support/KnownBits.cpp
   24   APInt PossibleSumZero = ~LHS.Zero + ~RHS.Zero + !CarryZero;
   24   APInt PossibleSumZero = ~LHS.Zero + ~RHS.Zero + !CarryZero;
   28   APInt CarryKnownZero = ~(PossibleSumZero ^ LHS.Zero ^ RHS.Zero);
   28   APInt CarryKnownZero = ~(PossibleSumZero ^ LHS.Zero ^ RHS.Zero);
   32   APInt LHSKnownUnion = LHS.Zero | LHS.One;
   33   APInt RHSKnownUnion = RHS.Zero | RHS.One;
   42   KnownOut.Zero = ~std::move(PossibleSumZero) & Known;
   51       LHS, RHS, Carry.Zero.getBoolValue(), Carry.One.getBoolValue());
   63     std::swap(RHS.Zero, RHS.One);
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
 2146   uint64_t NonZeroBits = (~Known.Zero).getZExtValue();
 2152     assert((~APInt(BitWidth, AndImm) & ~Known.Zero) == 0);
 2225   uint64_t NotKnownZero = (~Known.Zero).getZExtValue();
 2228   if (!isShiftedMask(Known.Zero.getZExtValue(), VT))
 2369     if ((BitsToBeInserted & ~Known.Zero) != 0)
lib/Target/AArch64/AArch64ISelLowering.cpp
 1062     Known.Zero &= Known2.Zero;
 1062     Known.Zero &= Known2.Zero;
 1071     Known.Zero = APInt::getHighBitsSet(64, 32);
 1084       Known.Zero |= APInt::getHighBitsSet(BitWidth, BitWidth - MemBits);
 1107         Known.Zero |= Mask;
 1111         Known.Zero |= Mask;
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
 4406     Known.Zero = APInt::getHighBitsSet(32, 31);
 4419       Known.Zero = APInt::getHighBitsSet(32, 32 - Width);
 4428     Known.Zero = APInt::getHighBitsSet(BitWidth, BitWidth - 16);
 4437     Known.Zero.setLowBits(std::min(TrailZ, 32u));
 4460         Known.Zero.setHighBits(32 - MaxValBits);
 4467       Known.Zero.setHighBits(32 - MaxValBits);
 4485         Known.Zero |= ((RHSKnown.Zero.getZExtValue() >> SelBits) & 0xff) << I;
 4485         Known.Zero |= ((RHSKnown.Zero.getZExtValue() >> SelBits) & 0xff) << I;
 4489         Known.Zero |= ((LHSKnown.Zero.getZExtValue() >> SelBits) & 0xff) << I;
 4489         Known.Zero |= ((LHSKnown.Zero.getZExtValue() >> SelBits) & 0xff) << I;
 4491         Known.Zero |= 0xFFull << I;
 4500     Known.Zero.setHighBits(24);
 4504     Known.Zero.setHighBits(16);
 4511     Known.Zero.setHighBits(16);
 4513       Known.Zero.setLowBits(Log2_32(Align));
 4525       Known.Zero.setHighBits(Size - ST.getWavefrontSizeLog2());
lib/Target/AMDGPU/SIISelLowering.cpp
10738   Known.Zero.setHighBits(getSubtarget()->getKnownHighZeroBitsForFrameIndex());
lib/Target/ARM/ARMISelLowering.cpp
14004   if ((OrCI & Known.Zero) != OrCI)
14402     if (Known.Zero == 0xfffffffe)
14405     else if (Known.Zero == 0xffffff00)
14408     else if (Known.Zero == 0xffff0000)
15398         Known.Zero |= APInt::getHighBitsSet(BitWidth, BitWidth - 1);
15410     Known.Zero &= KnownRHS.Zero;
15410     Known.Zero &= KnownRHS.Zero;
15423       Known.Zero |= APInt::getHighBitsSet(BitWidth, BitWidth - MemBits);
15437     Known.Zero &= Mask;
lib/Target/Lanai/LanaiISelLowering.cpp
 1497     Known.Zero.setBits(1, BitWidth);
 1503     Known.Zero &= Known2.Zero;
 1503     Known.Zero &= Known2.Zero;
lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  722   unsigned TargetMask = LKnown.Zero.getZExtValue();
  723   unsigned InsertMask = RKnown.Zero.getZExtValue();
 4695       if ((LHSKnown.Zero.getZExtValue()|~(uint64_t)Imm) == ~0ULL) {
lib/Target/PowerPC/PPCISelLowering.cpp
 2309     if (LHSKnown.Zero.getBoolValue()) {
 2313       if (~(LHSKnown.Zero | RHSKnown.Zero) == 0) {
 2313       if (~(LHSKnown.Zero | RHSKnown.Zero) == 0) {
 2411       if ((LHSKnown.Zero.getZExtValue()|~(uint64_t)imm) == ~0ULL) {
12066       Op1Known.Zero.clearBit(0); Op1Known.One.clearBit(0);
12067       Op2Known.Zero.clearBit(0); Op2Known.One.clearBit(0);
12069       if (Op1Known.Zero != Op2Known.Zero || Op1Known.One != Op2Known.One)
12069       if (Op1Known.Zero != Op2Known.Zero || Op1Known.One != Op2Known.One)
14138       Known.Zero = 0xFFFF0000;
14160       Known.Zero = ~1U;  // All bits but the low one are known to be zero.
lib/Target/Sparc/SparcISelLowering.cpp
 1874     Known.Zero &= Known2.Zero;
 1874     Known.Zero &= Known2.Zero;
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
  740     if (Used != (AndMask | InsertMask | Known.Zero.getZExtValue()))
  798       Mask |= Known.Zero.getZExtValue();
lib/Target/SystemZ/SystemZISelLowering.cpp
 2438   if ((~Known.Zero).getZExtValue() & ~Mask->getZExtValue())
 3390   uint64_t Masks[] = { Known[0].Zero.getZExtValue(),
 3391                        Known[1].Zero.getZExtValue() };
 3588   unsigned NumSignificantBits = (~Known.Zero).getActiveBits();
 6292   Known.Zero = LHSKnown.Zero & RHSKnown.Zero;
 6292   Known.Zero = LHSKnown.Zero & RHSKnown.Zero;
 6292   Known.Zero = LHSKnown.Zero & RHSKnown.Zero;
 6307     Known.Zero.setBitsFrom(2);
lib/Target/X86/X86ISelDAGToDAG.cpp
  447       APInt Mask = Val | CurDAG->computeKnownBits(N->getOperand(0)).Zero;
 1751   if (MaskedHighBits != Known.Zero) return true;
lib/Target/X86/X86ISelLowering.cpp
 6919         unsigned LHS = Known0.Zero.extractBits(8, i * 8).getZExtValue();
 6920         unsigned RHS = Known1.Zero.extractBits(8, i * 8).getZExtValue();
25131   bool ALoIsZero = LowerBitsMask.isSubsetOf(AKnown.Zero);
25132   bool BLoIsZero = LowerBitsMask.isSubsetOf(BKnown.Zero);
25135   bool AHiIsZero = UpperBitsMask.isSubsetOf(AKnown.Zero);
25136   bool BHiIsZero = UpperBitsMask.isSubsetOf(BKnown.Zero);
31500     Known.Zero.setBitsFrom(1);
31504     Known.Zero.setBitsFrom(NumLoBits);
31515     Known.Zero.setBitsFrom(SrcVT.getScalarSizeInBits());
31530         Known.Zero <<= ShAmt;
31533         Known.Zero.setLowBits(ShAmt);
31535         Known.Zero.lshrInPlace(ShAmt);
31538         Known.Zero.setHighBits(ShAmt);
31540         Known.Zero.ashrInPlace(ShAmt);
31552     Known.Zero = APInt::getAllOnesValue(BitWidth * 2);
31558       Known.Zero &= Known2.Zero;
31558       Known.Zero &= Known2.Zero;
31563       Known.Zero &= Known2.Zero;
31563       Known.Zero &= Known2.Zero;
31577     Known.One &= Known2.Zero;
31578     Known.Zero |= Known2.One;
31587     Known.Zero &= Known2.Zero;
31587     Known.Zero &= Known2.Zero;
31598     Known.Zero.setBitsFrom(16);
31610     Known.Zero &= Known2.Zero;
31610     Known.Zero &= Known2.Zero;
31627         Known.Zero.setAllBits(); Known.One.setAllBits();
31660           Known.Zero &= Known2.Zero;
31660           Known.Zero &= Known2.Zero;
34779       Known.Zero <<= ShAmt;
34783       Known.Zero.setLowBits(ShAmt);
34800       Known.Zero.lshrInPlace(ShAmt);
34804       Known.Zero.setHighBits(ShAmt);
34842       Known.Zero.lshrInPlace(ShAmt);
34847       if (Known.Zero[BitWidth - ShAmt - 1] ||
34923       Known.Zero = KnownVec.Zero & KnownScl.Zero;
34923       Known.Zero = KnownVec.Zero & KnownScl.Zero;
34923       Known.Zero = KnownVec.Zero & KnownScl.Zero;
34971     Known.Zero = KnownZero.zextOrSelf(BitWidth);
34972     Known.Zero.setHighBits(BitWidth - NumElts);
34982     else if (KnownSrc.Zero[SrcBits - 1])
34983       Known.Zero.setLowBits(NumElts);
lib/Target/XCore/XCoreISelLowering.cpp
 1660       if ((Known.Zero & Mask) == Mask) {
 1682       if ((Known.Zero & Mask) == Mask) {
 1697       if ((Known.Zero & Mask) == Mask) {
 1827       Known.Zero = APInt::getHighBitsSet(Known.getBitWidth(),
 1837         Known.Zero = APInt::getHighBitsSet(Known.getBitWidth(),
 1843         Known.Zero = APInt::getHighBitsSet(Known.getBitWidth(),
 1848         Known.Zero = APInt::getHighBitsSet(Known.getBitWidth(),
 1853         Known.Zero = APInt::getHighBitsSet(Known.getBitWidth(),
lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1258         if ((XorRHS->getValue() | LHSKnown.Zero).isAllOnesValue())
 1826       if ((*Op0C | RHSKnown.Zero).isAllOnesValue())
lib/Transforms/InstCombine/InstCombineCasts.cpp
  889       APInt KnownZeroMask(~Known.Zero);
  935       if (KnownLHS.Zero == KnownRHS.Zero && KnownLHS.One == KnownRHS.One) {
  935       if (KnownLHS.Zero == KnownRHS.Zero && KnownLHS.One == KnownRHS.One) {
  936         APInt KnownBits = KnownLHS.Zero | KnownLHS.One;
 1255       APInt KnownZeroMask(~Known.Zero);
lib/Transforms/InstCombine/InstCombineCompares.cpp
  107   APInt UnknownBits = ~(Known.Zero|Known.One);
  129   APInt UnknownBits = ~(Known.Zero|Known.One);
 1549     if ((Known.Zero | Known.One).countLeadingOnes() >= SrcBits - DstBits) {
 4987     APInt Op0KnownZeroInverted = ~Op0Known.Zero;
 5144       ((Op0Known.Zero.isNegative() && Op1Known.Zero.isNegative()) ||
 5144       ((Op0Known.Zero.isNegative() && Op1Known.Zero.isNegative()) ||
lib/Transforms/InstCombine/InstCombineSelect.cpp
 2655     if (Known.Zero.isOneValue())
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  168         SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown,
  175     APInt IKnownZero = RHSKnown.Zero | LHSKnown.Zero;
  175     APInt IKnownZero = RHSKnown.Zero | LHSKnown.Zero;
  186     if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One))
  188     if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One))
  192     if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero))
  195     Known.Zero = std::move(IKnownZero);
  209     APInt IKnownZero = RHSKnown.Zero & LHSKnown.Zero;
  209     APInt IKnownZero = RHSKnown.Zero & LHSKnown.Zero;
  220     if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero))
  222     if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
  229     Known.Zero = std::move(IKnownZero);
  241     APInt IKnownZero = (RHSKnown.Zero & LHSKnown.Zero) |
  241     APInt IKnownZero = (RHSKnown.Zero & LHSKnown.Zero) |
  244     APInt IKnownOne =  (RHSKnown.Zero & LHSKnown.One) |
  245                        (RHSKnown.One & LHSKnown.Zero);
  254     if (DemandedMask.isSubsetOf(RHSKnown.Zero))
  256     if (DemandedMask.isSubsetOf(LHSKnown.Zero))
  262     if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) {
  262     if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) {
  273     if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) &&
  311     Known.Zero = std::move(IKnownZero);
  357     Known.Zero = RHSKnown.Zero & LHSKnown.Zero;
  357     Known.Zero = RHSKnown.Zero & LHSKnown.Zero;
  357     Known.Zero = RHSKnown.Zero & LHSKnown.Zero;
  450     if (DemandedFromOps.isSubsetOf(RHSKnown.Zero))
  456         DemandedFromOps.isSubsetOf(LHSKnown.Zero))
  488       Known.Zero <<= ShiftAmt;
  492         Known.Zero.setLowBits(ShiftAmt);
  512       Known.Zero.lshrInPlace(ShiftAmt);
  515         Known.Zero.setHighBits(ShiftAmt);  // high bits known zero.
  561       Known.Zero.lshrInPlace(ShiftAmt);
  567       if (Known.Zero[BitWidth-ShiftAmt-1] ||
  595       Known.Zero.setHighBits(std::min(
  596           BitWidth, LHSKnown.Zero.countLeadingOnes() + RHSTrailingZeros));
  617         Known.Zero = LHSKnown.Zero & LowBits;
  617         Known.Zero = LHSKnown.Zero & LowBits;
  622         if (LHSKnown.isNonNegative() || LowBits.isSubsetOf(LHSKnown.Zero))
  623           Known.Zero |= ~LowBits;
  652     Known.Zero = APInt::getHighBitsSet(BitWidth, Leaders) & DemandedMask;
  709         Known.Zero = LHSKnown.Zero.shl(ShiftAmt) |
  709         Known.Zero = LHSKnown.Zero.shl(ShiftAmt) |
  710                      RHSKnown.Zero.lshr(BitWidth - ShiftAmt);
  740         Known.Zero.setBitsFrom(ArgWidth);
  744         Known.Zero.setBitsFrom(32);
  754   if (DemandedMask.isSubsetOf(Known.Zero|Known.One))
  785     APInt IKnownZero = RHSKnown.Zero | LHSKnown.Zero;
  785     APInt IKnownZero = RHSKnown.Zero | LHSKnown.Zero;
  797     if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One))
  799     if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One))
  802     Known.Zero = std::move(IKnownZero);
  816     APInt IKnownZero = RHSKnown.Zero & LHSKnown.Zero;
  816     APInt IKnownZero = RHSKnown.Zero & LHSKnown.Zero;
  828     if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero))
  830     if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
  833     Known.Zero = std::move(IKnownZero);
  846     APInt IKnownZero = (RHSKnown.Zero & LHSKnown.Zero) |
  846     APInt IKnownZero = (RHSKnown.Zero & LHSKnown.Zero) |
  849     APInt IKnownOne =  (RHSKnown.Zero & LHSKnown.One) |
  850                        (RHSKnown.One & LHSKnown.Zero);
  859     if (DemandedMask.isSubsetOf(RHSKnown.Zero))
  861     if (DemandedMask.isSubsetOf(LHSKnown.Zero))
  865     Known.Zero = std::move(IKnownZero);
  876     if (DemandedMask.isSubsetOf(Known.Zero|Known.One))
  921   Known.Zero.setLowBits(ShlAmt - 1);
  922   Known.Zero &= DemandedMask;
lib/Transforms/Scalar/GuardWidening.cpp
  674       if ((OpRHS->getValue() & Known.Zero) == OpRHS->getValue()) {
lib/Transforms/Utils/SimplifyCFG.cpp
 4472     if (Known.Zero.intersects(CaseVal) || !Known.One.isSubsetOf(CaseVal) ||
 4487       Bits - (Known.Zero | Known.One).countPopulation();
lib/Transforms/Utils/SimplifyLibCalls.cpp
  686       Known.Zero.flipAllBits();
  700       if ((Known.Zero.isNonNegative() && Known.Zero.ule(NullTermIdx)) ||
  700       if ((Known.Zero.isNonNegative() && Known.Zero.ule(NullTermIdx)) ||
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  472     APInt BitsAllowedToBeSet = Known.Zero.zext(IdxDiff.getBitWidth());
unittests/Analysis/ValueTrackingTest.cpp
   80     EXPECT_EQ(Known.Zero.getZExtValue(), Zero);
unittests/CodeGen/AArch64SelectionDAGTest.cpp
  177   EXPECT_EQ(Known.Zero, APInt(8, 0x20));
  198   EXPECT_EQ(Known.Zero, APInt(8, 0x80));
unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
   26   EXPECT_EQ((uint64_t)0xfe, Res.Zero.getZExtValue());
   30   EXPECT_EQ(Res.Zero.getZExtValue(), Res2.Zero.getZExtValue());
   30   EXPECT_EQ(Res.Zero.getZExtValue(), Res2.Zero.getZExtValue());
   49   EXPECT_EQ((uint64_t)0, Res.Zero.getZExtValue());
   56   EXPECT_EQ(Res.Zero.getZExtValue(), Res2.Zero.getZExtValue());
   56   EXPECT_EQ(Res.Zero.getZExtValue(), Res2.Zero.getZExtValue());
   73   EXPECT_EQ(0xfffffeffu, Res.Zero.getZExtValue());
   89   EXPECT_EQ(252u, Res.Zero.getZExtValue());
  117   EXPECT_EQ(31u, Known.Zero.getZExtValue());
  119   EXPECT_EQ(Known.Zero, Zeroes);
unittests/IR/ConstantRangeTest.cpp
 2076   Known.Zero = 36;
 2084   Known.Zero = 18;
 2091   Known.Zero = 145;
 2104       Known.Zero = Zero;
 2115         if ((Num & Known.Zero) != 0 || (~Num & Known.One) != 0)
unittests/Support/KnownBitsTest.cpp
   26       Known.Zero = Zero;
   42     if ((Num & Known.Zero) != 0 || (~Num & Known.One) != 0)
   57         Known.Zero.setAllBits();
   67               Known.Zero &= ~Add;
   74         EXPECT_EQ(Known.Zero, KnownComputed.Zero);
   74         EXPECT_EQ(Known.Zero, KnownComputed.Zero);
   86       Known.Zero.setAllBits();
   88       KnownNSW.Zero.setAllBits();
  101           Known.Zero &= ~Res;
  105             KnownNSW.Zero &= ~Res;
  112       EXPECT_EQ(Known.Zero, KnownComputed.Zero);
  112       EXPECT_EQ(Known.Zero, KnownComputed.Zero);
  119       EXPECT_TRUE(KnownNSWComputed.Zero.isSubsetOf(KnownNSW.Zero));
  119       EXPECT_TRUE(KnownNSWComputed.Zero.isSubsetOf(KnownNSW.Zero));