forked from OSchip/llvm-project
parent
041c1dca8b
commit
8d186bfafb
|
@ -6,7 +6,9 @@ declare i32 @f1()
|
||||||
declare i32 @f2()
|
declare i32 @f2()
|
||||||
declare void @f3()
|
declare void @f3()
|
||||||
|
|
||||||
define i32 @test(i1 %cond) {
|
define i32 @test1(i1 %cond) {
|
||||||
|
; CHECK: @test1
|
||||||
|
|
||||||
br i1 %cond, label %T1, label %F1
|
br i1 %cond, label %T1, label %F1
|
||||||
|
|
||||||
T1:
|
T1:
|
||||||
|
@ -37,6 +39,7 @@ F2:
|
||||||
|
|
||||||
;; cond is known false on Entry -> F1 edge!
|
;; cond is known false on Entry -> F1 edge!
|
||||||
define i32 @test2(i1 %cond) {
|
define i32 @test2(i1 %cond) {
|
||||||
|
; CHECK: @test2
|
||||||
Entry:
|
Entry:
|
||||||
br i1 %cond, label %T1, label %F1
|
br i1 %cond, label %T1, label %F1
|
||||||
|
|
||||||
|
@ -57,3 +60,18 @@ F2:
|
||||||
call void @f3()
|
call void @f3()
|
||||||
ret i32 12
|
ret i32 12
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
; Undef handling.
|
||||||
|
define i32 @test3(i1 %cond) {
|
||||||
|
; CHECK: @test3
|
||||||
|
; CHECK-NEXT: T1:
|
||||||
|
; CHECK-NEXT: ret i32 42
|
||||||
|
br i1 undef, label %T1, label %F1
|
||||||
|
|
||||||
|
T1:
|
||||||
|
ret i32 42
|
||||||
|
|
||||||
|
F1:
|
||||||
|
ret i32 17
|
||||||
|
}
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
; RUN: opt < %s -jump-threading -S | not grep {br }
|
|
||||||
; RUN: opt < %s -jump-threading -S | grep {ret i32} | count 1
|
|
||||||
|
|
||||||
define i32 @test(i1 %cond) {
|
|
||||||
br i1 undef, label %T1, label %F1
|
|
||||||
|
|
||||||
T1:
|
|
||||||
ret i32 42
|
|
||||||
|
|
||||||
F1:
|
|
||||||
ret i32 17
|
|
||||||
}
|
|
Loading…
Reference in New Issue