llvm-6502/lib
Arnold Schwaighofer 08a0e8f8db LoopVectorizer: integer division is not a reduction operation
Don't classify idiv/udiv as a reduction operation. Integer division is lossy.
For example : (1 / 2) * 4 != 4/2.

Example:

int a[] = { 2, 5, 2, 2}
int x = 80;

for()
  x /= a[i];

Scalar:
  x /= 2 // = 40
  x /= 5 // = 8
  x /= 2 // = 4
  x /= 2 // = 2

Vectorized:

 <80, 1> / <2,5> //= <40,0>
 <40, 0> / <2,2> //= <20,0>

 20*0 = 0

radar://13640654

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179381 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-12 15:15:19 +00:00
..
Analysis Aliasing rules for struct-path aware TBAA. 2013-04-11 23:24:18 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Rationalize the formatting of these case labels. Having two sorted 2013-04-09 19:46:46 +00:00
Bitcode Whitespace cleanup 2013-04-01 02:28:07 +00:00
CodeGen Revert broken pieces of r179373. 2013-04-12 12:13:51 +00:00
DebugInfo Rename the C function to create a SLPVectorizerPass to something sane and expose it in the header file. 2013-04-11 11:36:36 +00:00
ExecutionEngine Respect Addend when processing MCJIT relocations to local/global symbols. 2013-04-05 13:29:04 +00:00
IR Fix a disconcerting bug in Value::isUsedInBasicBlock, which gave wrong answers for blocks larger than 3 instrs. 2013-04-12 08:33:11 +00:00
IRReader Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +00:00
Linker Specutively revert r178130. 2013-03-27 17:54:41 +00:00
MC [ms-inline asm] Remove brackets from around a symbol reference in the target 2013-04-11 21:49:30 +00:00
Object Add 179294 back, but don't use bit fields so that it works on big endian hosts. 2013-04-12 00:17:33 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support Add a function to check if an argument list is too long. 2013-04-11 14:06:34 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target Add PPC instruction record forms and associated query functions 2013-04-12 02:18:09 +00:00
Transforms LoopVectorizer: integer division is not a reduction operation 2013-04-12 15:15:19 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00