flip the scev minus direction to simplify the code.
authorNadav Rotem <nrotem@apple.com>
Tue, 16 Jul 2013 22:57:06 +0000 (22:57 +0000)
committerNadav Rotem <nrotem@apple.com>
Tue, 16 Jul 2013 22:57:06 +0000 (22:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186466 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/SLPVectorizer.cpp

index c1e811126d6c78e9b53345fa84eecf81a3bd7967..572f3436804695152457664f5969f6c3455a2eb6 100644 (file)
@@ -1004,7 +1004,7 @@ bool BoUpSLP::isConsecutiveAccess(Value *A, Value *B) {
   // Calculate the distance.
   const SCEV *PtrSCEVA = SE->getSCEV(PtrA);
   const SCEV *PtrSCEVB = SE->getSCEV(PtrB);
-  const SCEV *OffsetSCEV = SE->getMinusSCEV(PtrSCEVA, PtrSCEVB);
+  const SCEV *OffsetSCEV = SE->getMinusSCEV(PtrSCEVB, PtrSCEVA);
   const SCEVConstant *ConstOffSCEV = dyn_cast<SCEVConstant>(OffsetSCEV);
 
   // Non constant distance.
@@ -1013,10 +1013,10 @@ bool BoUpSLP::isConsecutiveAccess(Value *A, Value *B) {
 
   int64_t Offset = ConstOffSCEV->getValue()->getSExtValue();
   Type *Ty = cast<PointerType>(PtrA->getType())->getElementType();
-  // The Instructions are connsecutive if the size of the first load/store is
+  // The Instructions are consecutive if the size of the first load/store is
   // the same as the offset.
   int64_t Sz = DL->getTypeStoreSize(Ty);
-  return ((-Offset) == Sz);
+  return (Offset == Sz);
 }
 
 Value *BoUpSLP::getSinkBarrier(Instruction *Src, Instruction *Dst) {