llvm-6502/test/Transforms/LoopVectorize
Arnold Schwaighofer 9b5d70f076 LoopVectorize: Use the widest induction variable type
Use the widest induction type encountered for the cannonical induction variable.

We used to turn the following loop into an empty loop because we used i8 as
induction variable type and truncated 1024 to 0 as trip count.

int a[1024];
void fail() {
  int reverse_induction = 1023;
  unsigned char forward_induction = 0;
  while ((reverse_induction) >= 0) {
    forward_induction++;
    a[reverse_induction] = forward_induction;
    --reverse_induction;
  }
}

radar://13862901

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181667 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-11 23:04:28 +00:00
..
ARM Adding simple cast cost to ARM 2013-01-29 23:31:38 +00:00
X86 TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
12-12-11-if-conv.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
2012-10-20-infloop.ll
2012-10-22-isconsec.ll TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
bsd_regex.ll LoopVectorizer: Bail out if we don't have datalayout we need it 2013-04-24 16:15:58 +00:00
bzip_reverse_loops.ll TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
calloc.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
cast-induction.ll
cpp-new-array.ll
dbg.value.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
flags.ll
float-reduction.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
gcc-examples.ll
global_alias.ll Test case hygiene. 2013-03-09 18:25:40 +00:00
i8-induction.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
if-conv-crash.ll
if-conversion-nest.ll LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values. 2013-05-03 17:42:55 +00:00
if-conversion-reduction.ll
if-conversion.ll
increment.ll
induction_plus.ll
infiniteloop.ll LoopVectorizer: Don't assert on the absence of induction variables 2013-05-09 00:32:18 +00:00
intrinsic.ll TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
lcssa-crash.ll
lit.local.cfg
minmax_reduction.ll LoopVectorize: Add support for floating point min/max reductions 2013-05-05 01:54:48 +00:00
no_idiv_reduction.ll LoopVectorizer: integer division is not a reduction operation 2013-04-12 15:15:19 +00:00
no_int_induction.ll
nofloat.ll
non-const-n.ll
nsw-crash.ll
phi-hang.ll LoopVectorize: Use a set to avoid longer cycles in the reduction chain too. 2013-04-18 14:29:13 +00:00
ptr_loops.ll Add support for reverse pointer induction variables. These are loops that contain pointers that count backwards. 2013-01-23 01:35:00 +00:00
read-only.ll
reduction.ll LoopVectorizer: Improve reduction variable identification 2013-05-07 21:55:37 +00:00
reverse_induction.ll LoopVectorize: Use the widest induction variable type 2013-05-11 23:04:28 +00:00
reverse_iter.ll Add an additional testcase for PR15882. 2013-05-10 22:55:44 +00:00
runtime-check-readonly.ll LoopVectorizer: No need to generate pointer disambiguation checks between readonly pointers. 2013-04-25 19:55:03 +00:00
runtime-check.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
runtime-limit.ll LoopVectorizer: Calculate the number of pointers to disambiguate at runtime based on the numbers of reads and writes. 2013-04-26 05:08:59 +00:00
same-base-access.ll
scalar-select.ll
simple-unroll.ll
small-loop.ll
start-non-zero.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
struct_access.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
vectorize-once.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
write-only.ll