mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-24 13:18:17 +00:00
Factor code for testing whether replacing one value with another
preserves LCSSA form out of ScalarEvolution and into the LoopInfo class. Use it to check that SimplifyInstruction simplifications are not breaking LCSSA form. Fixes PR8622. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119727 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
; RUN: opt < %s -loop-unswitch
|
||||
; PR8622
|
||||
@g_38 = external global i32, align 4
|
||||
|
||||
define void @func_67(i32 %p_68.coerce) nounwind {
|
||||
entry:
|
||||
br i1 true, label %for.end12, label %bb.nph
|
||||
|
||||
bb.nph: ; preds = %entry
|
||||
%g_38.promoted = load i32* @g_38
|
||||
br label %for.body
|
||||
|
||||
for.body: ; preds = %for.cond, %bb.nph
|
||||
%tobool.i = icmp eq i32 %p_68.coerce, 1
|
||||
%xor4.i = xor i32 %p_68.coerce, 1
|
||||
%call1 = select i1 %tobool.i, i32 0, i32 %xor4.i
|
||||
br label %for.cond
|
||||
|
||||
for.cond: ; preds = %for.body
|
||||
br i1 true, label %for.cond.for.end12_crit_edge, label %for.body
|
||||
|
||||
for.cond.for.end12_crit_edge: ; preds = %for.cond
|
||||
store i32 %call1, i32* @g_38
|
||||
br label %for.end12
|
||||
|
||||
for.end12: ; preds = %for.cond.for.end12_crit_edge, %entry
|
||||
ret void
|
||||
}
|
||||
Reference in New Issue
Block a user