llvm-project/llvm/test/Transforms/LoopVectorize/X86
Matthew Simpson df19502b16 [LV] Move insertelement sequence after scalar definitions
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
2016-08-29 20:14:04 +00:00
..
already-vectorized.ll
assume.ll
avx1.ll
avx512.ll [AVX-512] Fix a test missed in r277327. 2016-08-01 08:15:30 +00:00
constant-vector-operand.ll
conversion-cost.ll
cost-model.ll [x86] avoid code explosion from LoopVectorizer for gather loop (PR27826) 2016-05-25 17:27:54 +00:00
float-induction-x86.ll [Loop Vectorizer] Handling loops FP induction variables. 2016-07-24 07:24:54 +00:00
force-ifcvt.ll [LoopVectorize] Don't consider conditional-load dereferenceability for marked parallel loops 2016-04-26 02:00:36 +00:00
fp32_to_uint32-cost-model.ll
fp64_to_uint32-cost-model.ll
fp_to_sint8-cost-model.ll
funclet.ll [LoopVectorize] Add operand bundles to vectorized functions 2016-04-29 07:09:48 +00:00
gather-cost.ll
gather_scatter.ll Fixed a bug in vectorizing GEP before gather/scatter intrinsic. 2016-07-07 06:06:46 +00:00
gcc-examples.ll
illegal-parallel-loop-uniform-write.ll
imprecise-through-phis.ll Move test to X86 directory: I think it depends on X86 TTI. 2016-05-27 16:56:54 +00:00
int128_no_gather.ll [AVX512] Don't use i128 masked gather/scatter/load/store. Do more accurately dataWidth check. 2016-08-02 09:15:28 +00:00
lit.local.cfg
masked_load_store.ll Support arbitrary addrspace pointers in masked load/store intrinsics 2016-06-28 18:27:25 +00:00
max-mstore.ll Masked Store in Loop Vectorizer - bugfix 2016-04-26 20:18:04 +00:00
metadata-enable.ll
min-trip-count-switch.ll
no-vector.ll
no_fpmath.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
no_fpmath_with_hotness.ll [OptDiag,LV] Add hotness attribute to applied-optimization remarks 2016-07-21 01:07:13 +00:00
parallel-loops-after-reg2mem.ll
parallel-loops.ll
powof2div.ll
propagate-metadata.ll SLPVectorizer: Move propagateMetadata to VectorUtils 2016-06-30 21:17:59 +00:00
ptr-indvar-crash.ll
rauw-bug.ll
reduction-crash.ll
reg-usage.ll Recommit the patch "Use uniforms set to populate VecValuesToIgnore". 2016-07-19 00:50:43 +00:00
register-assumption.ll [LoopVectorize] Register cloned assumptions 2016-04-08 16:37:10 +00:00
scatter_crash.ll [LV] Move insertelement sequence after scalar definitions 2016-08-29 20:14:04 +00:00
small-size.ll
struct-store.ll
svml-calls.ll Initial support for vectorization using svml (short vector math library). 2016-07-29 16:42:44 +00:00
tripcount.ll
uint64_to_fp64-cost-model.ll [X86] Make some cast costs more precise 2016-07-11 21:39:44 +00:00
uniform-phi.ll [LoopVectorize] Change comment for isOutOfScope in collectLoopUniforms, NFC 2016-08-02 20:27:49 +00:00
uniform_load.ll Loop vectorization with uniform load 2016-04-10 16:53:19 +00:00
uniformshift.ll [LV, X86] Be more optimistic about vectorizing shifts. 2016-08-04 22:48:03 +00:00
unroll-pm.ll
unroll-small-loops.ll
unroll_selection.ll
veclib-calls.ll [SLPVectorizer] Vectorizing the libm sqrt to llvm's sqrt intrinsic requires nnan 2016-04-06 07:04:53 +00:00
vect.omp.force.ll
vect.omp.force.small-tc.ll
vector-scalar-select-cost.ll
vector_max_bandwidth.ll Recommit r255691 since PR26509 has been fixed. 2016-05-19 20:38:03 +00:00
vector_ptr_load_store.ll
vectorization-remarks-loopid-dbg.ll Look for a loop's starting location in the llvm.loop metadata 2016-05-25 21:42:37 +00:00
vectorization-remarks-missed.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
vectorization-remarks-profitable.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
vectorization-remarks.ll Convert this sample-based-profiling testcase to use a NoDebug CU. 2016-04-15 22:05:38 +00:00
vectorize-only-for-real.ll
x86_fp80-vector-store.ll