forked from OSchip/llvm-project
![]() This patch fixes PR52111. The problem is that LV propagates poison-generating flags (`nuw`/`nsw`, `exact` and `inbounds`) in instructions that contribute to the address computation of widen loads/stores that are guarded by a condition. It may happen that when the code is vectorized and the control flow within the loop is linearized, these flags may lead to generating a poison value that is effectively used as the base address of the widen load/store. The fix drops all the integer poison-generating flags from instructions that contribute to the address computation of a widen load/store whose original instruction was in a basic block that needed predication and is not predicated after vectorization. Reviewed By: fhahn, spatel, nlopes Differential Revision: https://reviews.llvm.org/D111846 |
||
---|---|---|
.. | ||
AArch64 | ||
ARM | ||
X86 | ||
2010-03-22-empty-baseclass.ll | ||
PR6627.ll | ||
assume-explosion.ll | ||
basic.ll | ||
bitfield-bittests.ll | ||
d83507-knowledge-retention-bug.ll | ||
deletion-of-loops-that-became-side-effect-free.ll | ||
expect.ll | ||
gdce.ll | ||
globalaa-retained.ll | ||
inlining-alignment-assumptions.ll | ||
instcombine-sroa-inttoptr.ll | ||
lifetime-sanitizer.ll | ||
loop-rotation-vs-common-code-hoisting.ll | ||
lto-licm.ll | ||
min-max-abs-cse.ll | ||
minmax.ll | ||
openmp-opt-module.ll | ||
partialord-ule.ll | ||
pr32544.ll | ||
pr36760.ll | ||
pr39116.ll | ||
pr39282.ll | ||
pr40750.ll | ||
pr44461-br-to-switch-rotate.ll | ||
pr45682.ll | ||
pr45687.ll | ||
reassociate-after-unroll.ll | ||
reassociate-instcombine.ll | ||
rotate.ll | ||
scev-custom-dl.ll | ||
scev.ll | ||
simplifycfg-options.ll | ||
two-shifts-by-sext.ll | ||
unsigned-multiply-overflow-check.ll | ||
vector-trunc-inseltpoison.ll | ||
vector-trunc.ll |