LLVM 24.0.0git
SLPReductionUtils.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::slpvectorizer
 A private "module" namespace for types and utilities used by this pass.

Functions

static bool llvm::slpvectorizer::matchRdxBop (Instruction *I, Value *&V0, Value *&V1)
Instructionllvm::slpvectorizer::getNonPhiOperand (Instruction *I, PHINode *Phi)
bool llvm::slpvectorizer::isReductionCandidate (Instruction *I)
Typellvm::slpvectorizer::getBoolReduxWideTy (RecurKind RdxKind, Type *RootTy, Type *LeafTy)
Valuellvm::slpvectorizer::tryEmitBoolReduxBitcastCmp (IRBuilderBase &Builder, const TargetTransformInfo &TTI, RecurKind RdxKind, Value *Vec, const Value *Root, FastMathFlags FMF, TargetTransformInfo::TargetCostKind CostKind)
 Emits the booleanized logical and/or reduction of Vec with the i1 root Root as trunc+bitcast+cmp (all-ones comparison for And, zero for Or) if it is cheaper than the wide reduction plus the result trunc.