[PATCH] D69563: [LV] Strip wrap flags from vectorized reductions
Denis Antrushin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 9 07:09:55 PST 2019
dantrushin updated this revision to Diff 228573.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69563/new/
https://reviews.llvm.org/D69563
Files:
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Index: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
===================================================================
--- llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -3700,9 +3700,12 @@
// any loop invariant values.
BasicBlock *Latch = OrigLoop->getLoopLatch();
Value *LoopVal = Phi->getIncomingValueForBlock(Latch);
+ bool StripWrapFlags = isa<OverflowingBinaryOperator>(LoopVal);
for (unsigned Part = 0; Part < UF; ++Part) {
Value *VecRdxPhi = getOrCreateVectorValue(Phi, Part);
Value *Val = getOrCreateVectorValue(LoopVal, Part);
+ if (StripWrapFlags)
+ cast<Instruction>(Val)->dropPoisonGeneratingFlags();
// Make sure to add the reduction stat value only to the
// first unroll part.
Value *StartVal = (Part == 0) ? VectorStart : Identity;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69563.228573.patch
Type: text/x-patch
Size: 855 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191109/cb5dbac7/attachment.bin>
More information about the llvm-commits
mailing list