llvm-6502/test/Transforms
Nadav Rotem 4bcd5f888f LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values.
By supporting the vectorization of PHINodes with more than two incoming values we can increase the complexity of nested if statements.

We can now vectorize this loop:

int foo(int *A, int *B, int n) {
  for (int i=0; i < n; i++) {
    int x = 9;
    if (A[i] > B[i]) {
      if (A[i] > 19) {
        x = 3;
      } else if (B[i] < 4 ) {
        x = 4;
      } else {
        x = 5;
      }
    }
    A[i] = x;
  }
}



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181037 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-03 17:42:55 +00:00
..
ADCE
ArgumentPromotion
BBVectorize Revert "InstCombine: Fold more shuffles of shuffles." 2013-05-01 00:25:27 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim Revert "Revert "PR14606: debug info imported_module support"" 2013-04-22 06:12:31 +00:00
DeadStoreElimination TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
EarlyCSE
FunctionAttrs
GCOVProfiling Revert "Revert "PR14606: debug info imported_module support"" 2013-04-22 06:12:31 +00:00
GlobalDCE
GlobalOpt
GVN
IndVarSimplify
Inline
InstCombine TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
InstSimplify
Internalize
IPConstantProp
JumpThreading TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
LCSSA
LICM
LoopDeletion
LoopIdiom
LoopRotate
LoopSimplify
LoopStrengthReduce TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
LoopUnroll
LoopUnswitch TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
LoopVectorize LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values. 2013-05-03 17:42:55 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
MetaRenamer
ObjCARC [objc-arc] Apply the RV optimization to retains next to calls in ObjCARCContract instead of ObjCARCOpts. 2013-04-29 06:53:53 +00:00
PhaseOrdering
PruneEH
Reassociate TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
Reg2Mem
ScalarRepl
SCCP
SimplifyCFG SimplifyCFG: If convert single conditional stores 2013-04-29 21:28:24 +00:00
SimplifyLibCalls
Sink
SLPVectorizer TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
SROA SROA: Generate selects instead of shuffles when blending values because this is the cannonical form. 2013-05-01 19:53:30 +00:00
StripSymbols
TailCallElim
TailDup