LLVM 17.0.0git
|
#include "InstCombineInternal.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Transforms/InstCombine/InstCombiner.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "instcombine" |
Functions | |
static bool | ShrinkDemandedConstant (Instruction *I, unsigned OpNo, const APInt &Demanded) |
Check to see if the specified operand of the specified instruction is a constant integer. | |
#define DEBUG_TYPE "instcombine" |
Definition at line 25 of file InstCombineSimplifyDemanded.cpp.
|
static |
Check to see if the specified operand of the specified instruction is a constant integer.
If so, check to see if there are any bits set in the constant that are not demanded. If so, shrink the constant and return true.
Definition at line 30 of file InstCombineSimplifyDemanded.cpp.
References assert(), llvm::CallingConv::C, llvm::ConstantInt::get(), I, llvm::PatternMatch::m_APInt(), and llvm::PatternMatch::match().
Referenced by llvm::TargetLowering::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::InstCombinerImpl::SimplifyDemandedUseBits().