diff options
author | Michael Kuperstein <mkuper@google.com> | 2017-01-21 01:33:25 +0000 |
---|---|---|
committer | Michael Kuperstein <mkuper@google.com> | 2017-01-21 01:33:25 +0000 |
commit | f8458593cfb0bd65c69321cc94dc6250b719bb28 (patch) | |
tree | 6d21a183f03adc4bd6553387742ec13281896995 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 6bfbcd099ecaa39f4b4342f5f5f7c0f8c4af4dee (diff) | |
download | bcm5719-llvm-f8458593cfb0bd65c69321cc94dc6250b719bb28.tar.gz bcm5719-llvm-f8458593cfb0bd65c69321cc94dc6250b719bb28.zip |
[SLP] Delete useless helper. NFC.
The helper contained a branch for a special case that is unnecessary,
and a cast.
llvm-svn: 292698
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index eba0a6a22c5..717790be13c 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -4302,8 +4302,9 @@ public: Value *ReducedSubTree = emitReduction(VectorizedRoot, Builder); if (VectorizedTree) { Builder.SetCurrentDebugLocation(Loc); - VectorizedTree = createBinOp(Builder, ReductionOpcode, VectorizedTree, - ReducedSubTree, "bin.rdx"); + VectorizedTree = + Builder.CreateBinOp((Instruction::BinaryOps)ReductionOpcode, + VectorizedTree, ReducedSubTree, "bin.rdx"); } else VectorizedTree = ReducedSubTree; } @@ -4313,8 +4314,9 @@ public: for (; i < NumReducedVals; ++i) { Builder.SetCurrentDebugLocation( cast<Instruction>(ReducedVals[i])->getDebugLoc()); - VectorizedTree = createBinOp(Builder, ReductionOpcode, VectorizedTree, - ReducedVals[i]); + VectorizedTree = + Builder.CreateBinOp((Instruction::BinaryOps)ReductionOpcode, + VectorizedTree, ReducedVals[i]); } // Update users. if (ReductionPHI && !isa<UndefValue>(ReductionPHI)) { @@ -4356,13 +4358,6 @@ private: return VecReduxCost - ScalarReduxCost; } - static Value *createBinOp(IRBuilder<> &Builder, unsigned Opcode, Value *L, - Value *R, const Twine &Name = "") { - if (Opcode == Instruction::FAdd) - return Builder.CreateFAdd(L, R, Name); - return Builder.CreateBinOp((Instruction::BinaryOps)Opcode, L, R, Name); - } - /// \brief Emit a horizontal reduction of the vectorized value. Value *emitReduction(Value *VectorizedValue, IRBuilder<> &Builder) { assert(VectorizedValue && "Need to have a vectorized tree node"); @@ -4382,14 +4377,15 @@ private: Value *RightShuf = Builder.CreateShuffleVector( TmpVec, UndefValue::get(TmpVec->getType()), (RightMask), "rdx.shuf.r"); - TmpVec = createBinOp(Builder, ReductionOpcode, LeftShuf, RightShuf, - "bin.rdx"); + TmpVec = Builder.CreateBinOp((Instruction::BinaryOps)ReductionOpcode, + LeftShuf, RightShuf, "bin.rdx"); } else { Value *UpperHalf = createRdxShuffleMask(ReduxWidth, i, false, false, Builder); Value *Shuf = Builder.CreateShuffleVector( TmpVec, UndefValue::get(TmpVec->getType()), UpperHalf, "rdx.shuf"); - TmpVec = createBinOp(Builder, ReductionOpcode, TmpVec, Shuf, "bin.rdx"); + TmpVec = Builder.CreateBinOp((Instruction::BinaryOps)ReductionOpcode, + TmpVec, Shuf, "bin.rdx"); } } |