llvm-6502/test/Transforms
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
..
ADCE
ArgumentPromotion Update some EH tests that were violating the new EH model. 2013-03-21 18:30:10 +00:00
BBVectorize
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
DeadStoreElimination
EarlyCSE
FunctionAttrs Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
GCOVProfiling Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
GlobalDCE
GlobalOpt Use a worklist to avoid a sneaky iterator invalidation. 2013-04-02 08:16:45 +00:00
GVN Revert 179071 because it is not the right way to support non standard new/new[] operators. 2013-04-09 04:43:46 +00:00
IndVarSimplify
Inline Update test. There may be multiple catches, but those will be cleaned up. 2013-03-22 20:36:39 +00:00
InstCombine Optimize icmp involving addition better 2013-04-11 20:05:46 +00:00
InstSimplify Add missing colons to check lines. 2013-04-11 12:41:41 +00:00
Internalize
IPConstantProp
JumpThreading
LCSSA
LICM
LoopDeletion
LoopIdiom
LoopRotate
LoopSimplify
LoopStrengthReduce
LoopUnroll
LoopUnswitch
LoopVectorize LoopVectorizer: integer division is not a reduction operation 2013-04-12 15:15:19 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
MemCpyOpt
MergeFunc
MetaRenamer
ObjCARC An objc_retain can serve as a use for a different pointer. 2013-04-05 22:54:32 +00:00
PhaseOrdering
PruneEH
Reassociate Correct assertion condition 2013-04-01 18:13:05 +00:00
Reg2Mem
ScalarRepl Disable the optimization about promoting vector-element-access with symbolic index. 2013-04-05 21:07:08 +00:00
SCCP
SimplifyCFG Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
SimplifyLibCalls Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
Sink
SLPVectorizer Make the SLP store-merger less paranoid about function calls. We check for function calls when we check if it is safe to sink instructions. 2013-04-10 19:41:36 +00:00
SROA Fix PR15674 (and PR15603): a SROA think-o. 2013-04-07 11:47:54 +00:00
StripSymbols
TailCallElim
TailDup