LLVM 24.0.0git
SLPReductionUtils.h 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

Typellvm::slpvectorizer::getBoolReduxWideTy (RecurKind RdxKind, Type *RootTy, Type *LeafTy)
Instructionllvm::slpvectorizer::getNonPhiOperand (Instruction *I, PHINode *Phi)
bool llvm::slpvectorizer::isReductionCandidate (Instruction *I)
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.