Change memcpy/memset/memmove to have dest and source alignments.
[oota-llvm.git] / lib / CodeGen / CodeGenPrepare.cpp
index de5c68f776781e95f04c46cfcd870a027b12ecbe..d0ff84fa6f3fcb1844cb42c3af9f6e9aac8bb0ae 100644 (file)
@@ -1665,8 +1665,8 @@ bool CodeGenPrepare::optimizeCallInst(CallInst *CI, bool& ModifiedDT) {
       unsigned Align = getKnownAlignment(MI->getDest(), *DL);
       if (MemTransferInst *MTI = dyn_cast<MemTransferInst>(MI))
         Align = std::min(Align, getKnownAlignment(MTI->getSource(), *DL));
-      if (Align > MI->getAlignment())
-        MI->setAlignment(ConstantInt::get(MI->getAlignmentType(), Align));
+      if (Align > MI->getDestAlignment())
+        MI->setDestAlignment(Align);
     }
   }