Add a prototype of a new peephole optimizing pass that uses LazyValue info to simplif...
[oota-llvm.git] / test / Transforms / ValuePropagation / select.ll
1 ; RUN: opt < %s -value-propagation -S | FileCheck %s
2 ; PR4420
3
4 declare i1 @ext()
5 ; CHECK: @foo
6 define i1 @foo() {
7 entry:
8         %cond = tail call i1 @ext()             ; <i1> [#uses=2]
9         br i1 %cond, label %bb1, label %bb2
10
11 bb1:            ; preds = %entry
12         %cond2 = tail call i1 @ext()            ; <i1> [#uses=1]
13         br i1 %cond2, label %bb3, label %bb2
14
15 bb2:            ; preds = %bb1, %entry
16 ; CHECK-NOT: phi i1
17         %cond_merge = phi i1 [ %cond, %entry ], [ false, %bb1 ]         ; <i1> [#uses=1]
18 ; CHECK: ret i1 false
19         ret i1 %cond_merge
20
21 bb3:            ; preds = %bb1
22         %res = tail call i1 @ext()              ; <i1> [#uses=1]
23 ; CHECK: ret i1 %res
24         ret i1 %res
25 }