llvm-6502/test/Transforms/LoopVectorize
Arnold Schwaighofer 935645b765 Loop Vectorizer: Handle pointer stores/loads in getWidestType()
In the loop vectorizer cost model, we used to ignore stores/loads of a pointer
type when computing the widest type within a loop. This meant that if we had
only stores/loads of pointers in a loop we would return a widest type of 8bits
(instead of 32 or 64 bit) and therefore a vector factor that was too big.

Now, if we see a consecutive store/load of pointers we use the size of a pointer
(from data layout).

This problem occured in SingleSource/Benchmarks/Shootout-C++/hash.cpp (reduced
test case is the first test in vector_ptr_load_store.ll).

radar://13139343

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174377 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-05 15:08:02 +00:00
..
ARM
X86 Loop Vectorizer: Handle pointer stores/loads in getWidestType() 2013-02-05 15:08:02 +00:00
12-12-11-if-conv.ll
2012-10-20-infloop.ll
2012-10-22-isconsec.ll
bzip_reverse_loops.ll
calloc.ll
cast-induction.ll
cpp-new-array.ll
flags.ll
float-reduction.ll
gcc-examples.ll
i8-induction.ll
if-conv-crash.ll
if-conversion-reduction.ll
if-conversion.ll
increment.ll
induction_plus.ll
intrinsic.ll
lcssa-crash.ll
lit.local.cfg
no_int_induction.ll
nofloat.ll
non-const-n.ll
nsw-crash.ll
ptr_loops.ll
read-only.ll
reduction.ll
runtime-check.ll
same-base-access.ll
scalar-select.ll
simple-unroll.ll
small-loop.ll
start-non-zero.ll
struct_access.ll
write-only.ll