aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-02-07 19:07:40 +0000
committerChris Lattner <sabre@nondot.org>2006-02-07 19:07:40 +0000
commitd89d888cc5a4d5aad9cb810953eed2b919d0beac (patch)
treeffa4b1a6027976439a63f38095b14cb722ca391a /lib/Transforms
parent78ee0addedb6ae3c655495e9dc1ec09928250c9a (diff)
downloadexternal_llvm-d89d888cc5a4d5aad9cb810953eed2b919d0beac.zip
external_llvm-d89d888cc5a4d5aad9cb810953eed2b919d0beac.tar.gz
external_llvm-d89d888cc5a4d5aad9cb810953eed2b919d0beac.tar.bz2
Fix Transforms/InstCombine/2006-02-07-SextZextCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26040 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
-rw-r--r--lib/Transforms/Scalar/InstructionCombining.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp
index bcc17f1..6058338 100644
--- a/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -563,10 +563,12 @@ bool InstCombiner::SimplifyDemandedBits(Value *V, uint64_t Mask,
// extend instead of a sign extend.
if ((Mask & ((1ULL << SrcBits)-1)) == 0) {
// Convert to unsigned first.
- Value *NewVal;
+ Instruction *NewVal;
NewVal = new CastInst(I->getOperand(0), SrcTy->getUnsignedVersion(),
- I->getOperand(0)->getName(), I);
- NewVal = new CastInst(I->getOperand(0), I->getType(), I->getName());
+ I->getOperand(0)->getName());
+ InsertNewInstBefore(NewVal, *I);
+ NewVal = new CastInst(NewVal, I->getType(), I->getName());
+ InsertNewInstBefore(NewVal, *I);
return UpdateValueUsesWith(I, NewVal);
}