forked from OSchip/llvm-project
df19502b16
After r279649 when getting a vector value from VectorLoopValueMap, we create an insertelement sequence on-demand if the value has been scalarized instead of vectorized. We previously inserted this insertelement sequence before the value's first vector user. However, this insert location is problematic if that user is the phi node of a first-order recurrence. With this patch, we move the insertelement sequence after the last scalar instruction we created when scalarizing the value. Thus, the value's vector definition in the new loop will immediately follow its scalar definitions. This should fix PR30183. Reference: https://llvm.org/bugs/show_bug.cgi?id=30183 llvm-svn: 280001 |
||
---|---|---|
.. | ||
already-vectorized.ll | ||
assume.ll | ||
avx1.ll | ||
avx512.ll | ||
constant-vector-operand.ll | ||
conversion-cost.ll | ||
cost-model.ll | ||
float-induction-x86.ll | ||
force-ifcvt.ll | ||
fp32_to_uint32-cost-model.ll | ||
fp64_to_uint32-cost-model.ll | ||
fp_to_sint8-cost-model.ll | ||
funclet.ll | ||
gather-cost.ll | ||
gather_scatter.ll | ||
gcc-examples.ll | ||
illegal-parallel-loop-uniform-write.ll | ||
imprecise-through-phis.ll | ||
int128_no_gather.ll | ||
lit.local.cfg | ||
masked_load_store.ll | ||
max-mstore.ll | ||
metadata-enable.ll | ||
min-trip-count-switch.ll | ||
no-vector.ll | ||
no_fpmath.ll | ||
no_fpmath_with_hotness.ll | ||
parallel-loops-after-reg2mem.ll | ||
parallel-loops.ll | ||
powof2div.ll | ||
propagate-metadata.ll | ||
ptr-indvar-crash.ll | ||
rauw-bug.ll | ||
reduction-crash.ll | ||
reg-usage.ll | ||
register-assumption.ll | ||
scatter_crash.ll | ||
small-size.ll | ||
struct-store.ll | ||
svml-calls.ll | ||
tripcount.ll | ||
uint64_to_fp64-cost-model.ll | ||
uniform-phi.ll | ||
uniform_load.ll | ||
uniformshift.ll | ||
unroll-pm.ll | ||
unroll-small-loops.ll | ||
unroll_selection.ll | ||
veclib-calls.ll | ||
vect.omp.force.ll | ||
vect.omp.force.small-tc.ll | ||
vector-scalar-select-cost.ll | ||
vector_max_bandwidth.ll | ||
vector_ptr_load_store.ll | ||
vectorization-remarks-loopid-dbg.ll | ||
vectorization-remarks-missed.ll | ||
vectorization-remarks-profitable.ll | ||
vectorization-remarks.ll | ||
vectorize-only-for-real.ll | ||
x86_fp80-vector-store.ll |