Summary: Form dedicated exits after trivial unswitches. Fixes PR38737, PR38283. Reviewers: chandlerc, fedor.sergeev Subscribers: sanjoy, jlebar, uabelho, llvm-commits Differential Revision: https://reviews.llvm.org/D51375 llvm-svn: 340871
23 lines
382 B
LLVM
23 lines
382 B
LLVM
; RUN: opt < %s -simple-loop-unswitch -disable-output
|
|
|
|
; PR38283
|
|
; PR38737
|
|
define void @Test(i32) {
|
|
entry:
|
|
%trunc = trunc i32 %0 to i3
|
|
br label %outer
|
|
outer:
|
|
br label %inner
|
|
inner:
|
|
switch i3 %trunc, label %crit_edge [
|
|
i3 2, label %break
|
|
i3 1, label %loopexit
|
|
]
|
|
crit_edge:
|
|
br i1 true, label %loopexit, label %inner
|
|
loopexit:
|
|
ret void
|
|
break:
|
|
br label %outer
|
|
}
|