mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-28 06:29:45 +00:00
is sabre. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81528 91177308-0d34-0410-b5e6-96231b3b80d8
48 lines
1.3 KiB
LLVM
48 lines
1.3 KiB
LLVM
; RUN: opt < %s -simplifycfg -S | not grep br
|
|
|
|
declare void @foo1()
|
|
|
|
declare void @foo2()
|
|
|
|
define void @test1(i32 %V) {
|
|
%C1 = icmp eq i32 %V, 4 ; <i1> [#uses=1]
|
|
%C2 = icmp eq i32 %V, 17 ; <i1> [#uses=1]
|
|
%CN = or i1 %C1, %C2 ; <i1> [#uses=1]
|
|
br i1 %CN, label %T, label %F
|
|
T: ; preds = %0
|
|
call void @foo1( )
|
|
ret void
|
|
F: ; preds = %0
|
|
call void @foo2( )
|
|
ret void
|
|
}
|
|
|
|
define void @test2(i32 %V) {
|
|
%C1 = icmp ne i32 %V, 4 ; <i1> [#uses=1]
|
|
%C2 = icmp ne i32 %V, 17 ; <i1> [#uses=1]
|
|
%CN = and i1 %C1, %C2 ; <i1> [#uses=1]
|
|
br i1 %CN, label %T, label %F
|
|
T: ; preds = %0
|
|
call void @foo1( )
|
|
ret void
|
|
F: ; preds = %0
|
|
call void @foo2( )
|
|
ret void
|
|
}
|
|
|
|
define void @test3(i32 %V) {
|
|
%C1 = icmp eq i32 %V, 4 ; <i1> [#uses=1]
|
|
br i1 %C1, label %T, label %N
|
|
N: ; preds = %0
|
|
%C2 = icmp eq i32 %V, 17 ; <i1> [#uses=1]
|
|
br i1 %C2, label %T, label %F
|
|
T: ; preds = %N, %0
|
|
call void @foo1( )
|
|
ret void
|
|
F: ; preds = %N
|
|
call void @foo2( )
|
|
ret void
|
|
}
|
|
|
|
|