diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/InstructionCombining.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/InstructionCombining.cpp | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp index ee6b51cf296..717a46eb82c 100644 --- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp @@ -9200,12 +9200,11 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {        if (GlobalVariable *GVSrc = dyn_cast<GlobalVariable>(MMI->getSource()))          if (GVSrc->isConstant()) {            Module *M = CI.getParent()->getParent()->getParent(); -          Intrinsic::ID MemCpyID; -          if (CI.getOperand(3)->getType() == Type::Int32Ty) -            MemCpyID = Intrinsic::memcpy_i32; -          else -            MemCpyID = Intrinsic::memcpy_i64; -          CI.setOperand(0, Intrinsic::getDeclaration(M, MemCpyID)); +          Intrinsic::ID MemCpyID = Intrinsic::memcpy; +          const Type *Tys[1]; +          Tys[0] = CI.getOperand(3)->getType(); +          CI.setOperand(0,  +                        Intrinsic::getDeclaration(M, MemCpyID, Tys, 1));            Changed = true;          } | 

