RewriteLoopBodyWithConditionConstant can end up rewriting the

condition we're unswitching on.  In this case, don't try to
simplify the second copy of the loop which may be dead or not,
but is probably a constant now.  This fixes PR6879


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101870 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-04-20 05:09:16 +00:00
parent f1cfb95337
commit a78130c320
2 changed files with 33 additions and 5 deletions
+19
View File
@@ -45,3 +45,22 @@ for.body: ; preds = %for.body, %bb.nph
for.end: ; preds = %for.body, %entry
ret void
}
; PR6879
define i32* @test3(i32** %p_45, i16 zeroext %p_46, i64 %p_47, i64 %p_48, i16 signext %p_49) nounwind {
entry:
br label %for.cond
for.cond: ; preds = %for.cond4, %entry
br i1 false, label %for.cond4, label %for.end88
for.cond4: ; preds = %for.cond
%conv46 = trunc i32 0 to i8 ; <i8> [#uses=2]
%cmp60 = icmp sgt i8 %conv46, 124 ; <i1> [#uses=1]
%or.cond = and i1 undef, %cmp60 ; <i1> [#uses=1]
%cond = select i1 %or.cond, i8 %conv46, i8 undef ; <i8> [#uses=0]
br label %for.cond
for.end88: ; preds = %for.cond
ret i32* undef
}