diff options
-rw-r--r-- | lib/Transforms/Scalar/IndVarSimplify.cpp | 2 | ||||
-rw-r--r-- | test/Transforms/IndVarSimplify/2009-04-27-Floating.ll | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index eebcc69590..09d569a097 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -275,7 +275,7 @@ ICmpInst *IndVarSimplify::LinearFunctionTestReplace(Loop *L, // update the branch to use the new comparison; in the common case this // will make old comparison dead. BI->setCondition(Cond); - RecursivelyDeleteTriviallyDeadInstructions(OrigCond); + DeadInsts.push_back(OrigCond); ++NumLFTR; Changed = true; diff --git a/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll b/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll index 9fd2d2f04f..47164d8604 100644 --- a/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll +++ b/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -indvars -S | grep icmp | grep next +; RUN: opt < %s -indvars -S | FileCheck %s ; PR4086 declare void @foo() @@ -6,13 +6,14 @@ define void @test() { entry: br label %loop_body -loop_body: - %i = phi float [ %nexti, %loop_body ], [ 0.0, %entry ] +loop_body: + %i = phi float [ %nexti, %loop_body ], [ 0.0, %entry ] tail call void @foo() %nexti = fadd float %i, 1.0 - %less = fcmp olt float %nexti, 2.0 + ; CHECK: icmp ne i32 %{{[a-zA-Z$._0-9]+}}, 2 + %less = fcmp olt float %nexti, 2.0 br i1 %less, label %loop_body, label %done -done: +done: ret void } |