forked from OSchip/llvm-project
Clean up usages of asserting vector getters in Type
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: rriddle, sdesmalen, efriedma Reviewed By: sdesmalen Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77260
This commit is contained in:
parent
5e7b98fe75
commit
00a1032412
|
@ -880,7 +880,7 @@ llvm::getOrderedReduction(IRBuilderBase &Builder, Value *Acc, Value *Src,
|
|||
unsigned Op,
|
||||
RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind,
|
||||
ArrayRef<Value *> RedOps) {
|
||||
unsigned VF = Src->getType()->getVectorNumElements();
|
||||
unsigned VF = cast<VectorType>(Src->getType())->getNumElements();
|
||||
|
||||
// Extract and apply reduction ops in ascending order:
|
||||
// e.g. ((((Acc + Scl[0]) + Scl[1]) + Scl[2]) + ) ... + Scl[VF-1]
|
||||
|
@ -910,7 +910,7 @@ Value *
|
|||
llvm::getShuffleReduction(IRBuilderBase &Builder, Value *Src, unsigned Op,
|
||||
RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind,
|
||||
ArrayRef<Value *> RedOps) {
|
||||
unsigned VF = Src->getType()->getVectorNumElements();
|
||||
unsigned VF = cast<VectorType>(Src->getType())->getNumElements();
|
||||
// VF is a power of 2 so we can emit the reduction using log2(VF) shuffles
|
||||
// and vector ops, reducing the set of values being computed by half each
|
||||
// round.
|
||||
|
@ -958,7 +958,7 @@ Value *llvm::createSimpleTargetReduction(
|
|||
IRBuilderBase &Builder, const TargetTransformInfo *TTI, unsigned Opcode,
|
||||
Value *Src, TargetTransformInfo::ReductionFlags Flags,
|
||||
ArrayRef<Value *> RedOps) {
|
||||
assert(isa<VectorType>(Src->getType()) && "Type must be a vector");
|
||||
auto *SrcVTy = cast<VectorType>(Src->getType());
|
||||
|
||||
std::function<Value *()> BuildFunc;
|
||||
using RD = RecurrenceDescriptor;
|
||||
|
@ -983,13 +983,13 @@ Value *llvm::createSimpleTargetReduction(
|
|||
case Instruction::FAdd:
|
||||
BuildFunc = [&]() {
|
||||
auto Rdx = Builder.CreateFAddReduce(
|
||||
Constant::getNullValue(Src->getType()->getVectorElementType()), Src);
|
||||
Constant::getNullValue(SrcVTy->getElementType()), Src);
|
||||
return Rdx;
|
||||
};
|
||||
break;
|
||||
case Instruction::FMul:
|
||||
BuildFunc = [&]() {
|
||||
Type *Ty = Src->getType()->getVectorElementType();
|
||||
Type *Ty = SrcVTy->getElementType();
|
||||
auto Rdx = Builder.CreateFMulReduce(ConstantFP::get(Ty, 1.0), Src);
|
||||
return Rdx;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue