[PATCH] D69563: [LV] Strip wrap flags from vectorized reductions

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 4 00:41:54 PST 2019


lebedev.ri added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:3706-3709
+    if (StripWrapFlags) {
+      cast<Instruction>(Val)->setHasNoUnsignedWrap(false);
+      cast<Instruction>(Val)->setHasNoSignedWrap(false);
+    }
----------------
dantrushin wrote:
> lebedev.ri wrote:
> > ```
> > if(auto* I = dyn_cast<Instruction>(LoopVal))
> >   I->dropPoisonGeneratingFlags();
> > ```
> > Shouldn't this be done outside of this loop though?
> No, I think I want them cleared  from every interleaved part
> 
1. Still, 
```
if(StripWrapFlags)
  cast<Instruction>(Val)->dropPoisonGeneratingFlags();
```
2. Isn't the actual bug is in `getOrCreateVectorValue()`? why it returns such errneous instructions?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69563/new/

https://reviews.llvm.org/D69563





More information about the llvm-commits mailing list