SLP: Dont erase instructions during vectorization because it prevents the outerloops...
authorNadav Rotem <nrotem@apple.com>
Wed, 26 Jun 2013 23:43:23 +0000 (23:43 +0000)
committerNadav Rotem <nrotem@apple.com>
Wed, 26 Jun 2013 23:43:23 +0000 (23:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185040 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/SLPVectorizer.cpp

index 33d1100ebc7d878e74e10dc80c85c23d6f50e47f..3c1dc78bc4046a2114b87d4a36aae5f5621804cb 100644 (file)
@@ -1258,8 +1258,6 @@ Value *FuncSLP::vectorizeArith(ArrayRef<Value *> Operands) {
   for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
     Value *S = Builder.CreateExtractElement(Vec, Builder.getInt32(i));
     Operands[i]->replaceAllUsesWith(S);
-    Instruction *I = cast<Instruction>(Operands[i]);
-    I->eraseFromParent();
   }
 
   return Vec;