LLVM
10.0.0svn
|
#include "llvm/Support/KnownBits.h"
Public Member Functions | |
KnownBits () | |
KnownBits (unsigned BitWidth) | |
Create a known bits object of BitWidth bits initialized to unknown. More... | |
unsigned | getBitWidth () const |
Get the bit width of this value. More... | |
bool | hasConflict () const |
Returns true if there is conflicting information. More... | |
bool | isConstant () const |
Returns true if we know the value of all bits. More... | |
const APInt & | getConstant () const |
Returns the value when all bits have a known value. More... | |
bool | isUnknown () const |
Returns true if we don't know any bits. More... | |
void | resetAll () |
Resets the known state of all bits. More... | |
bool | isZero () const |
Returns true if value is all zero. More... | |
bool | isAllOnes () const |
Returns true if value is all one bits. More... | |
void | setAllZero () |
Make all bits known to be zero and discard any previous information. More... | |
void | setAllOnes () |
Make all bits known to be one and discard any previous information. More... | |
bool | isNegative () const |
Returns true if this value is known to be negative. More... | |
bool | isNonNegative () const |
Returns true if this value is known to be non-negative. More... | |
void | makeNegative () |
Make this value negative. More... | |
void | makeNonNegative () |
Make this value non-negative. More... | |
KnownBits | trunc (unsigned BitWidth) const |
Truncate the underlying known Zero and One bits. More... | |
KnownBits | zext (unsigned BitWidth, bool ExtendedBitsAreKnownZero) const |
Extends the underlying known Zero and One bits. More... | |
KnownBits | sext (unsigned BitWidth) const |
Sign extends the underlying known Zero and One bits. More... | |
KnownBits | zextOrTrunc (unsigned BitWidth, bool ExtendedBitsAreKnownZero) const |
Extends or truncates the underlying known Zero and One bits. More... | |
unsigned | countMinTrailingZeros () const |
Returns the minimum number of trailing zero bits. More... | |
unsigned | countMinTrailingOnes () const |
Returns the minimum number of trailing one bits. More... | |
unsigned | countMinLeadingZeros () const |
Returns the minimum number of leading zero bits. More... | |
unsigned | countMinLeadingOnes () const |
Returns the minimum number of leading one bits. More... | |
unsigned | countMinSignBits () const |
Returns the number of times the sign bit is replicated into the other bits. More... | |
unsigned | countMaxTrailingZeros () const |
Returns the maximum number of trailing zero bits possible. More... | |
unsigned | countMaxTrailingOnes () const |
Returns the maximum number of trailing one bits possible. More... | |
unsigned | countMaxLeadingZeros () const |
Returns the maximum number of leading zero bits possible. More... | |
unsigned | countMaxLeadingOnes () const |
Returns the maximum number of leading one bits possible. More... | |
unsigned | countMinPopulation () const |
Returns the number of bits known to be one. More... | |
unsigned | countMaxPopulation () const |
Returns the maximum number of bits that could be one. More... | |
Static Public Member Functions | |
static KnownBits | computeForAddCarry (const KnownBits &LHS, const KnownBits &RHS, const KnownBits &Carry) |
Compute known bits resulting from adding LHS, RHS and a 1-bit Carry. More... | |
static KnownBits | computeForAddSub (bool Add, bool NSW, const KnownBits &LHS, KnownBits RHS) |
Compute known bits resulting from adding LHS and RHS. More... | |
Public Attributes | |
APInt | Zero |
APInt | One |
Definition at line 22 of file KnownBits.h.
|
inline |
Definition at line 33 of file KnownBits.h.
Referenced by sext(), trunc(), zext(), and zextOrTrunc().
|
inline |
Create a known bits object of BitWidth bits initialized to unknown.
Definition at line 36 of file KnownBits.h.
|
static |
Compute known bits resulting from adding LHS, RHS and a 1-bit Carry.
Definition at line 47 of file KnownBits.cpp.
References assert(), computeForAddCarry(), getBitWidth(), llvm::APInt::getBoolValue(), One, and Zero.
Referenced by computeForAddSub(), llvm::SelectionDAG::computeKnownBits(), and countMaxPopulation().
|
static |
Compute known bits resulting from adding LHS and RHS.
Definition at line 54 of file KnownBits.cpp.
References computeForAddCarry(), isNegative(), isNonNegative(), makeNegative(), makeNonNegative(), One, std::swap(), and Zero.
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsFromOperator(), countMaxPopulation(), and ShrinkDemandedConstant().
|
inline |
Returns the maximum number of leading one bits possible.
Definition at line 191 of file KnownBits.h.
References llvm::APInt::countLeadingZeros().
|
inline |
Returns the maximum number of leading zero bits possible.
Definition at line 186 of file KnownBits.h.
References llvm::APInt::countLeadingZeros().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), foldCttzCtlz(), isAlwaysLive(), and isKnownNonZero().
|
inline |
Returns the maximum number of bits that could be one.
Definition at line 201 of file KnownBits.h.
References llvm::MCID::Add, computeForAddCarry(), computeForAddSub(), llvm::APInt::countPopulation(), and getBitWidth().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), foldCtpop(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), and processUGT_ADDCST_ADD().
|
inline |
Returns the maximum number of trailing one bits possible.
Definition at line 181 of file KnownBits.h.
References llvm::APInt::countTrailingZeros().
|
inline |
Returns the maximum number of trailing zero bits possible.
Definition at line 176 of file KnownBits.h.
References llvm::APInt::countTrailingZeros().
Referenced by llvm::SelectionDAG::computeKnownBits(), foldCttzCtlz(), and isAlwaysLive().
|
inline |
Returns the minimum number of leading one bits.
Definition at line 161 of file KnownBits.h.
References llvm::APInt::countLeadingOnes().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), and countMinSignBits().
|
inline |
Returns the minimum number of leading zero bits.
Definition at line 156 of file KnownBits.h.
References llvm::APInt::countLeadingOnes().
Referenced by combineSubToSubus(), combineVectorSignBitsTruncation(), llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), countMinSignBits(), foldCttzCtlz(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::RegsForValue::getCopyFromRegs(), LowerAndToBT(), LowerTruncateVecI1(), llvm::AMDGPUTargetLowering::numBitsUnsigned(), llvm::AMDGPUTargetLowering::performShlCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), promotedOpIsNUW(), ShrinkDemandedConstant(), SimplifyAndInst(), and SimplifyLShrInst().
|
inline |
Returns the number of bits known to be one.
Definition at line 196 of file KnownBits.h.
References llvm::APInt::countPopulation().
Referenced by foldCtpop(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), and processUGT_ADDCST_ADD().
|
inline |
Returns the number of times the sign bit is replicated into the other bits.
Definition at line 167 of file KnownBits.h.
References countMinLeadingOnes(), countMinLeadingZeros(), isNegative(), and isNonNegative().
Referenced by llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), and ComputeNumSignBitsImpl().
|
inline |
Returns the minimum number of trailing one bits.
Definition at line 151 of file KnownBits.h.
References llvm::APInt::countTrailingOnes().
Referenced by computeKnownBitsFromOperator().
|
inline |
Returns the minimum number of trailing zero bits.
Definition at line 146 of file KnownBits.h.
References llvm::APInt::countTrailingOnes().
Referenced by llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), foldCttzCtlz(), llvm::SelectionDAG::InferPtrAlignment(), isKnownNonZero(), isWordAligned(), llvm::InstCombiner::replacedSelectWithOperand(), and SimplifyShift().
|
inline |
Get the bit width of this value.
Definition at line 39 of file KnownBits.h.
References assert(), and llvm::APInt::getBitWidth().
Referenced by computeForAddCarry(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsAddSub(), llvm::LanaiTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), llvm::computeKnownBitsFromRangeMetadata(), computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), computeSignedMinMaxValuesFromKnownBits(), computeUnsignedMinMaxValuesFromKnownBits(), countMaxPopulation(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::ConstantRange::fromKnownBits(), llvm::FunctionLoweringInfo::GetLiveOutRegInfo(), isConstant(), llvm::AMDGPUTargetLowering::performTruncateCombine(), ShrinkDemandedConstant(), SimplifyShift(), tryBitfieldInsertOpFromOr(), zext(), and zextOrTrunc().
Returns the value when all bits have a known value.
This just returns One with a protective assertion.
Definition at line 56 of file KnownBits.h.
References assert(), isConstant(), and One.
Referenced by llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::ConstantFoldLoadFromConstPtr(), llvm::AMDGPUTargetLowering::performTruncateCombine(), llvm::InstCombiner::run(), llvm::SimplifyInstruction(), and llvm::InstCombiner::visitReturnInst().
|
inline |
Returns true if there is conflicting information.
Definition at line 46 of file KnownBits.h.
References llvm::APInt::intersects().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromShiftOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), llvm::ConstantRange::fromKnownBits(), isAllOnes(), isConstant(), isZero(), ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode().
|
inline |
Returns true if value is all one bits.
Definition at line 77 of file KnownBits.h.
References assert(), hasConflict(), and llvm::APInt::isAllOnesValue().
Referenced by computeKnownBitsFromAssume().
|
inline |
Returns true if we know the value of all bits.
Definition at line 49 of file KnownBits.h.
References assert(), llvm::APInt::countPopulation(), getBitWidth(), and hasConflict().
Referenced by llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::ConstantFoldLoadFromConstPtr(), getConstant(), llvm::AMDGPUTargetLowering::performTruncateCombine(), llvm::InstCombiner::run(), llvm::SimplifyInstruction(), and llvm::InstCombiner::visitReturnInst().
|
inline |
Returns true if this value is known to be negative.
Definition at line 95 of file KnownBits.h.
References llvm::APInt::isSignBitSet().
Referenced by aliasSameBasePointerGEPs(), computeForAddSub(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsMul(), llvm::SelectionDAG::ComputeNumSignBits(), computeRecurrenceType(), countMinSignBits(), EvaluateConstantChrecAtConstant(), llvm::ConstantRange::fromKnownBits(), llvm::isKnownNegative(), isKnownNonZero(), simplifyICmpWithBinOp(), and simplifyICmpWithZero().
|
inline |
Returns true if this value is known to be non-negative.
Definition at line 98 of file KnownBits.h.
References llvm::APInt::isSignBitSet().
Referenced by aliasSameBasePointerGEPs(), canReplaceGEPIdxWithZero(), computeForAddSub(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsMul(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::SelectionDAG::ComputeNumSignBits(), ComputeNumSignBitsImpl(), llvm::computeOverflowForSignedMul(), computeRecurrenceType(), countMinSignBits(), EvaluateConstantChrecAtConstant(), llvm::ConstantRange::fromKnownBits(), llvm::isKnownNonNegative(), isKnownNonZero(), ShrinkDemandedConstant(), simplifyICmpWithBinOp(), simplifyICmpWithZero(), llvm::InstCombiner::simplifyRangeCheck(), and llvm::InstCombiner::visitSExt().
|
inline |
Returns true if we don't know any bits.
Definition at line 62 of file KnownBits.h.
References llvm::APInt::isNullValue().
Referenced by llvm::FunctionLoweringInfo::AddLiveOutRegInfo(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::GISelKnownBits::computeKnownBitsImpl(), and llvm::ConstantRange::fromKnownBits().
|
inline |
Returns true if value is all zero.
Definition at line 71 of file KnownBits.h.
References assert(), hasConflict(), and llvm::APInt::isAllOnesValue().
Referenced by computeKnownBitsFromAssume(), isZero(), and llvm::InstCombiner::replacedSelectWithOperand().
|
inline |
Make this value negative.
Definition at line 101 of file KnownBits.h.
References llvm::APInt::setSignBit().
Referenced by computeForAddSub(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), and computeKnownBitsMul().
|
inline |
Make this value non-negative.
Definition at line 106 of file KnownBits.h.
References llvm::APInt::setSignBit().
Referenced by computeForAddSub(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsMul(), and ShrinkDemandedConstant().
|
inline |
Resets the known state of all bits.
Definition at line 65 of file KnownBits.h.
References llvm::APInt::clearAllBits().
Referenced by computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), llvm::TargetLowering::computeKnownBitsForTargetInstr(), llvm::SparcTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::PPCTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsFromShiftOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), and ShrinkDemandedConstant().
|
inline |
Make all bits known to be one and discard any previous information.
Definition at line 89 of file KnownBits.h.
References llvm::APInt::clearAllBits(), and llvm::APInt::setAllBits().
Referenced by computeKnownBitsFromAssume().
|
inline |
Make all bits known to be zero and discard any previous information.
Definition at line 83 of file KnownBits.h.
References llvm::APInt::clearAllBits(), and llvm::APInt::setAllBits().
Referenced by computeKnownBits(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), and computeKnownBitsFromShiftOperator().
Sign extends the underlying known Zero and One bits.
This is equivalent to sign extending the value we're tracking.
Definition at line 130 of file KnownBits.h.
References KnownBits(), and llvm::APInt::sext().
Referenced by llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), and ShrinkDemandedConstant().
Truncate the underlying known Zero and One bits.
This is equivalent to truncating the value we're tracking.
Definition at line 112 of file KnownBits.h.
References KnownBits(), and llvm::APInt::trunc().
Referenced by llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), and llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode().
Extends the underlying known Zero and One bits.
By setting ExtendedBitsAreKnownZero=true this will be equivalent to zero extending the value we're tracking. With ExtendedBitsAreKnownZero=false the extended bits are set to unknown.
Definition at line 120 of file KnownBits.h.
References getBitWidth(), KnownBits(), llvm::APInt::setBitsFrom(), and llvm::APInt::zext().
Referenced by llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::FunctionLoweringInfo::GetLiveOutRegInfo(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), and zextOrTrunc().
|
inline |
Extends or truncates the underlying known Zero and One bits.
When extending the extended bits can either be set as known zero (if ExtendedBitsAreKnownZero=true) or as unknown (if ExtendedBitsAreKnownZero=false).
Definition at line 138 of file KnownBits.h.
References getBitWidth(), KnownBits(), zext(), and llvm::APInt::zextOrTrunc().
Referenced by llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), ShrinkDemandedConstant(), and llvm::TargetLowering::SimplifyDemandedBits().
APInt llvm::KnownBits::One |
Definition at line 24 of file KnownBits.h.
Referenced by llvm::FunctionLoweringInfo::AddLiveOutRegInfo(), aliasSameBasePointerGEPs(), llvm::SelectionDAGISel::CheckOrMask(), combineShiftOfShiftedLogic(), computeForAddCarry(), computeForAddCarry(), computeForAddSub(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsBinOp(), llvm::SparcTargetLowering::computeKnownBitsForTargetNode(), llvm::LanaiTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), llvm::computeKnownBitsFromRangeMetadata(), computeKnownBitsFromShiftOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computeSignedMinMaxValuesFromKnownBits(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::ConstantFoldLoadFromConstPtr(), foldCttzCtlz(), llvm::ConstantRange::fromKnownBits(), generateEquivalentSub(), getConstant(), getFauxShuffleMask(), llvm::GISelKnownBits::getKnownOnes(), GetRangeFromMetadata(), isAlwaysLive(), isKnownNonEqual(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isOpcWithIntImmediate(), maskMatters(), processUGT_ADDCST_ADD(), llvm::InstCombiner::replacedSelectWithOperand(), ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), SimplifyRightShift(), SimplifyShift(), and llvm::InstCombiner::visitTrunc().
APInt llvm::KnownBits::Zero |
Definition at line 23 of file KnownBits.h.
Referenced by llvm::FunctionLoweringInfo::AddLiveOutRegInfo(), adjustForRedundantAnd(), aliasSameBasePointerGEPs(), annotateNonNullAndDereferenceable(), combineShiftOfShiftedLogic(), computeForAddCarry(), computeForAddCarry(), computeForAddSub(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsBinOp(), llvm::GISelKnownBits::computeKnownBitsForAlignment(), llvm::SITargetLowering::computeKnownBitsForFrameIndex(), llvm::TargetLowering::computeKnownBitsForFrameIndex(), llvm::SparcTargetLowering::computeKnownBitsForTargetNode(), llvm::LanaiTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::PPCTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), llvm::computeKnownBitsFromRangeMetadata(), computeKnownBitsFromShiftOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), llvm::SelectionDAG::ComputeNumSignBits(), ComputeNumSignBitsImpl(), llvm::SelectionDAG::computeOverflowKind(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computeSignedMinMaxValuesFromKnownBits(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::ConstantFoldLoadFromConstPtr(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::ConstantRange::fromKnownBits(), generateEquivalentSub(), getFauxShuffleMask(), llvm::GISelKnownBits::getKnownZeroes(), getRangeForAffineARHelper(), GetRangeFromMetadata(), llvm::SelectionDAG::haveNoCommonBitsSet(), insertDAGNode(), isAlwaysLive(), isBitfieldPositioningOp(), isKnownNonEqual(), isKnownToBeAPowerOfTwo(), isOpcWithIntImmediate(), isSubBorrowChain(), isSupportedGuardInstruction(), isTruePredicate(), isTruncateOf(), LowerMUL(), MaskedValueIsZero(), maskMatters(), matchRotateSub(), mayUseP9Setb(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), processUGT_ADDCST_ADD(), propagateMetadata(), llvm::InstCombiner::replacedSelectWithOperand(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitZExt().