mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user