From 61eaa63b65e7f0ba6c906d2372ad66c07e9d392c Mon Sep 17 00:00:00 2001 From: Joey Gouly Date: Tue, 6 Jun 2017 10:17:14 +0000 Subject: [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. llvm-svn: 304784 --- llvm/lib/Analysis/InstructionSimplify.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Analysis') diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp index ea83c83ed0c..aa7993b875c 100644 --- a/llvm/lib/Analysis/InstructionSimplify.cpp +++ b/llvm/lib/Analysis/InstructionSimplify.cpp @@ -3884,8 +3884,11 @@ static Value *SimplifyGEPInst(Type *SrcTy, ArrayRef Ops, if (!all_of(Ops, [](Value *V) { return isa(V); })) return nullptr; - return ConstantExpr::getGetElementPtr(SrcTy, cast(Ops[0]), - Ops.slice(1)); + auto *CE = ConstantExpr::getGetElementPtr(SrcTy, cast(Ops[0]), + Ops.slice(1)); + if (auto *CEFolded = ConstantFoldConstant(CE, Q.DL)) + return CEFolded; + return CE; } Value *llvm::SimplifyGEPInst(Type *SrcTy, ArrayRef Ops, -- cgit v1.2.3