llvm-6502/lib/Transforms/Vectorize
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
..
BBVectorize.cpp BBVectorize: Fixup debugging statements 2013-03-10 20:57:42 +00:00
CMakeLists.txt Add support for bottom-up SLP vectorization infrastructure. 2013-04-09 19:44:35 +00:00
LLVMBuild.txt
LoopVectorize.cpp LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values. 2013-05-03 17:42:55 +00:00
Makefile
SLPVectorizer.cpp Fix a typo 2013-04-30 21:04:51 +00:00
Vectorize.cpp This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
VecUtils.cpp SLPVectorize: Add support for vectorization of casts. 2013-04-21 08:05:59 +00:00
VecUtils.h SLPVectorizer: Strength reduce SmallVectors to ArrayRefs. 2013-04-20 09:49:10 +00:00