LoopVectorize: Simplify code for clarity.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 13 Feb 2013 21:12:29 +0000 (21:12 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 13 Feb 2013 21:12:29 +0000 (21:12 +0000)
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175076 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/LoopVectorize.cpp

index 842ae0291e2a18380528a5b034fa4a6a828e123c..ab1068dfa70ca1a8dc6f63549a76a896677bb1f6 100644 (file)
@@ -2805,17 +2805,17 @@ unsigned LoopVectorizationCostModel::getWidestType() {
           continue;
 
       // Examine the stored values.
-      StoreInst *ST = 0;
-      if ((ST = dyn_cast<StoreInst>(it)))
+      if (StoreInst *ST = dyn_cast<StoreInst>(it))
         T = ST->getValueOperand()->getType();
 
       // Ignore loaded pointer types and stored pointer types that are not
       // consecutive. However, we do want to take consecutive stores/loads of
       // pointer vectors into account.
-      if (T->isPointerTy() && isConsecutiveLoadOrStore(it))
-        MaxWidth = std::max(MaxWidth, DL->getPointerSizeInBits());
-      else
-        MaxWidth = std::max(MaxWidth, T->getScalarSizeInBits());
+      if (T->isPointerTy() && !isConsecutiveLoadOrStore(it))
+        continue;
+
+      MaxWidth = std::max(MaxWidth,
+                          (unsigned)DL->getTypeSizeInBits(T->getScalarType()));
     }
   }
 
@@ -3242,13 +3242,11 @@ namespace llvm {
 
 bool LoopVectorizationCostModel::isConsecutiveLoadOrStore(Instruction *Inst) {
   // Check for a store.
-  StoreInst *ST = dyn_cast<StoreInst>(Inst);
-  if (ST)
+  if (StoreInst *ST = dyn_cast<StoreInst>(Inst))
     return Legal->isConsecutivePtr(ST->getPointerOperand()) != 0;
 
   // Check for a load.
-  LoadInst *LI = dyn_cast<LoadInst>(Inst);
-  if (LI)
+  if (LoadInst *LI = dyn_cast<LoadInst>(Inst))
     return Legal->isConsecutivePtr(LI->getPointerOperand()) != 0;
 
   return false;