From 4563326472b000ee501a99f19b912bf9ca134b1f Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Wed, 20 Sep 2006 15:37:57 +0000 Subject: [PATCH] simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30535 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Scalar/InstructionCombining.cpp | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 8f6d5348e67..79c204f93eb 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -1603,18 +1603,14 @@ FoundSExt: CI = dyn_cast(RHS); Other = LHS; } - if (CI) { - const Type *UIntPtrTy = TD->getIntPtrType(); - const Type *SIntPtrTy = UIntPtrTy->getSignedVersion(); - if((CI->getType() == UIntPtrTy || CI->getType() == SIntPtrTy) - && isa(CI->getOperand(0)->getType())) { - Instruction* I2 = new CastInst(CI->getOperand(0), - PointerType::get(Type::SByteTy), "ctg", &I); - WorkList.push_back(I2); - I2 = new GetElementPtrInst(I2, Other, "ctg", &I); - WorkList.push_back(I2); - return new CastInst(I2, CI->getType()); - } + if (CI && CI->getType()->isSized() && + (CI->getType()->getPrimitiveSize() == + TD->getIntPtrType()->getPrimitiveSize()) + && isa(CI->getOperand(0)->getType())) { + Value* I2 = InsertCastBefore(CI->getOperand(0), + PointerType::get(Type::SByteTy), I); + I2 = InsertNewInstBefore(new GetElementPtrInst(I2, Other, "ctg2"), I); + return new CastInst(I2, CI->getType()); } } -- 2.34.1