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

References

lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  125       Known.getBitWidth() == BitWidth &&
  129     computeKnownBits(V, Known, Depth, CxtI);
  133   Known.resetAll();
  142     computeKnownBits(V, Known, Depth, CxtI);
  150     return SimplifyMultipleUseDemandedBits(I, DemandedMask, Known, Depth, CxtI);
  163     computeKnownBits(I, Known, Depth, CxtI);
  195     Known.Zero = std::move(IKnownZero);
  196     Known.One  = std::move(IKnownOne);
  229     Known.Zero = std::move(IKnownZero);
  230     Known.One  = std::move(IKnownOne);
  311     Known.Zero = std::move(IKnownZero);
  313     Known.One  = std::move(IKnownOne);
  356     Known.One = RHSKnown.One & LHSKnown.One;
  357     Known.Zero = RHSKnown.Zero & LHSKnown.Zero;
  369     Known = InputKnown.zextOrTrunc(BitWidth,
  371     assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  391     if (SimplifyDemandedBits(I, 0, DemandedMask, Known, Depth + 1))
  393     assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  421     Known = InputKnown.sext(BitWidth);
  422     assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  461     Known = KnownBits::computeForAddSub(I->getOpcode() == Instruction::Add,
  472                                                     DemandedMask, Known))
  485       if (SimplifyDemandedBits(I, 0, DemandedMaskIn, Known, Depth + 1))
  487       assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  488       Known.Zero <<= ShiftAmt;
  489       Known.One  <<= ShiftAmt;
  492         Known.Zero.setLowBits(ShiftAmt);
  509       if (SimplifyDemandedBits(I, 0, DemandedMaskIn, Known, Depth + 1))
  511       assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  512       Known.Zero.lshrInPlace(ShiftAmt);
  513       Known.One.lshrInPlace(ShiftAmt);
  515         Known.Zero.setHighBits(ShiftAmt);  // high bits known zero.
  552       if (SimplifyDemandedBits(I, 0, DemandedMaskIn, Known, Depth + 1))
  557       assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  561       Known.Zero.lshrInPlace(ShiftAmt);
  562       Known.One.lshrInPlace(ShiftAmt);
  567       if (Known.Zero[BitWidth-ShiftAmt-1] ||
  573       } else if (Known.One[BitWidth-ShiftAmt-1]) { // New bits are known one.
  574         Known.One |= HighBits;
  595       Known.Zero.setHighBits(std::min(
  617         Known.Zero = LHSKnown.Zero & LowBits;
  618         Known.One = LHSKnown.One & LowBits;
  623           Known.Zero |= ~LowBits;
  628           Known.One |= ~LowBits;
  630         assert(!Known.hasConflict() && "Bits known to be one AND zero?");
  641         Known.makeNonNegative();
  652     Known.Zero = APInt::getHighBitsSet(BitWidth, Leaders) & DemandedMask;
  709         Known.Zero = LHSKnown.Zero.shl(ShiftAmt) |
  711         Known.One = LHSKnown.One.shl(ShiftAmt) |
  740         Known.Zero.setBitsFrom(ArgWidth);
  744         Known.Zero.setBitsFrom(32);
  748     computeKnownBits(V, Known, Depth, CxtI);
  754   if (DemandedMask.isSubsetOf(Known.Zero|Known.One))
  754   if (DemandedMask.isSubsetOf(Known.Zero|Known.One))
  755     return Constant::getIntegerValue(VTy, Known.One);