|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
gen/lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc21208 return (~Known0.Zero & ~Known1.Zero) == 0;
21208 return (~Known0.Zero & ~Known1.Zero) == 0;
gen/lib/Target/X86/X86GenDAGISel.inc254124 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.cpp10738 Known.Zero.setHighBits(getSubtarget()->getKnownHighZeroBitsForFrameIndex());
lib/Target/ARM/ARMISelLowering.cpp14004 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));