llvm-project/llvm/test/Transforms/LoopVectorize/X86
Michael Kuperstein 3ceac2bbd5 [LV, X86] Be more optimistic about vectorizing shifts.
Shifts with a uniform but non-constant count were considered very expensive to
vectorize, because the splat of the uniform count and the shift would tend to
appear in different blocks. That made the splat invisible to ISel, and we'd
scalarize the shift at codegen time.

Since r201655, CodeGenPrepare sinks those splats to be next to their use, and we
are able to select the appropriate vector shifts. This updates the cost model to
to take this into account by making shifts by a uniform cheap again.

Differential Revision: https://reviews.llvm.org/D23049

llvm-svn: 277782
2016-08-04 22:48:03 +00:00
..
already-vectorized.ll
assume.ll
avx1.ll [x86] fix cost model inaccuracy for vector memory ops 2016-03-09 22:23:33 +00:00
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] Generate both scalar and vector integer induction variables 2016-08-02 15:25:16 +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 [LoopVectorize] Don't vectorize loops when everything will be scalarized 2016-03-30 19:37:08 +00:00
x86_fp80-vector-store.ll