[LoopVectorize] Use CreateAligned(Load|Store)
authorHal Finkel <hfinkel@anl.gov>
Sat, 19 Jul 2014 13:39:45 +0000 (13:39 +0000)
committerHal Finkel <hfinkel@anl.gov>
Sat, 19 Jul 2014 13:39:45 +0000 (13:39 +0000)
IRBuilder has CreateAligned(Load|Store) functions; use them and we don't need
to make a second call to setAlignment.

No functionality change intended.

llvm-svn: 213453

llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

index 9a0f1df..909de67 100644 (file)
@@ -1762,8 +1762,8 @@ void InnerLoopVectorizer::vectorizeMemoryInstruction(Instruction *Instr) {
 
       Value *VecPtr = Builder.CreateBitCast(PartPtr,
                                             DataTy->getPointerTo(AddressSpace));
-      StoreInst *NewSI = Builder.CreateStore(StoredVal[Part], VecPtr);
-      NewSI->setAlignment(Alignment);
+      StoreInst *NewSI =
+        Builder.CreateAlignedStore(StoredVal[Part], VecPtr, Alignment);
       propagateMetadata(NewSI, SI);
     }
     return;
@@ -1785,8 +1785,7 @@ void InnerLoopVectorizer::vectorizeMemoryInstruction(Instruction *Instr) {
 
     Value *VecPtr = Builder.CreateBitCast(PartPtr,
                                           DataTy->getPointerTo(AddressSpace));
-    LoadInst *NewLI = Builder.CreateLoad(VecPtr, "wide.load");
-    NewLI->setAlignment(Alignment);
+    LoadInst *NewLI = Builder.CreateAlignedLoad(VecPtr, Alignment, "wide.load");
     propagateMetadata(NewLI, LI);
     Entry[Part] = Reverse ? reverseVector(NewLI) :  NewLI;
   }