ΒΆllvm::Value* createSimpleTargetReduction(
IRBuilder<>& B,
const llvm::TargetTransformInfo* TTI,
unsigned int Opcode,
llvm::Value* Src,
TargetTransformInfo::ReductionFlags Flags =
llvm::TargetTransformInfo::
ReductionFlags(),
ArrayRef<llvm::Value*> RedOps = None)
llvm::Value* createSimpleTargetReduction(
IRBuilder<>& B,
const llvm::TargetTransformInfo* TTI,
unsigned int Opcode,
llvm::Value* Src,
TargetTransformInfo::ReductionFlags Flags =
llvm::TargetTransformInfo::
ReductionFlags(),
ArrayRef<llvm::Value*> RedOps = None)
Description
Create a target reduction of the given vector. The reduction operation is described by the \p Opcode parameter. min/max reductions require additional information supplied in \p Flags. The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction. Fast-math-flags are propagated using the IRBuilder's setting.
Declared at: llvm/include/llvm/Transforms/Utils/LoopUtils.h:321
Parameters
- IRBuilder<>& B
- const llvm::TargetTransformInfo* TTI
- unsigned int Opcode
- llvm::Value* Src
- TargetTransformInfo::ReductionFlags Flags = llvm::TargetTransformInfo::ReductionFlags()
- ArrayRef<llvm::Value*> RedOps = None