LLVM API Documentation
#include "InstCombine.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/PatternMatch.h"
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "instcombine" |
Functions | |
static bool | checkRippleForAdd (const APInt &Op0KnownZero, const APInt &Op1KnownZero) |
static Value * | checkForNegativeOperand (BinaryOperator &I, InstCombiner::BuilderTy *Builder) |
#define DEBUG_TYPE "instcombine" |
Definition at line 23 of file InstCombineAddSub.cpp.
static Value* checkForNegativeOperand | ( | BinaryOperator & | I, |
InstCombiner::BuilderTy * | Builder | ||
) | [static] |
Definition at line 1016 of file InstCombineAddSub.cpp.
References llvm::APInt::countTrailingZeros(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateOr(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateSub(), llvm::User::getOperand(), llvm::Value::hasOneUse(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Or(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Xor(), llvm::PatternMatch::match(), std::swap(), llvm::X, and Y.
Referenced by llvm::InstCombiner::visitAdd().
Definition at line 872 of file InstCombineAddSub.cpp.
References llvm::APInt::clearBit(), llvm::APInt::countLeadingZeros(), llvm::APInt::countPopulation(), and llvm::APInt::getBitWidth().