summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorSuyog Sarda <suyog.sarda@samsung.com>2015-01-09 10:23:48 +0000
committerSuyog Sarda <suyog.sarda@samsung.com>2015-01-09 10:23:48 +0000
commit85d0473650a694606126932eaf021ad7d4f1dc64 (patch)
treedf0a5aa0ca0d1898192b9aa2884e40c1e4f021bc /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent949ff4d9f2eac092bce2e0d73f1262f829ae4d78 (diff)
downloadbcm5719-llvm-85d0473650a694606126932eaf021ad7d4f1dc64.tar.gz
bcm5719-llvm-85d0473650a694606126932eaf021ad7d4f1dc64.zip
Assumption that "VectorizedValue" will always be an Instruction is not correct.
It can be a constant or a vector argument. ex : define i32 @hadd(<4 x i32> %a) #0 { entry: %vecext = extractelement <4 x i32> %a, i32 0 %vecext1 = extractelement <4 x i32> %a, i32 1 %add = add i32 %vecext, %vecext1 %vecext2 = extractelement <4 x i32> %a, i32 2 %add3 = add i32 %add, %vecext2 %vecext4 = extractelement <4 x i32> %a, i32 3 %add5 = add i32 %add3, %vecext4 ret i32 %add5 } llvm-svn: 225517
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 2b411d441d4..c8b8ff22de0 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -3502,11 +3502,10 @@ private:
/// \brief Emit a horizontal reduction of the vectorized value.
Value *emitReduction(Value *VectorizedValue, IRBuilder<> &Builder) {
assert(VectorizedValue && "Need to have a vectorized tree node");
- Instruction *ValToReduce = dyn_cast<Instruction>(VectorizedValue);
assert(isPowerOf2_32(ReduxWidth) &&
"We only handle power-of-two reductions for now");
- Value *TmpVec = ValToReduce;
+ Value *TmpVec = VectorizedValue;
for (unsigned i = ReduxWidth / 2; i != 0; i >>= 1) {
if (IsPairwiseReduction) {
Value *LeftMask =
OpenPOWER on IntegriCloud