blob: f080191ef860a62743580450987855d6e65c34bb [file] [log] [blame]
Dan Gohman3c7d3082009-09-11 18:01:28 +00001; RUN: opt < %s -mergefunc -stats -disable-output |& grep {functions merged}
Nick Lewycky3dd81172008-11-02 05:52:50 +00002
3define i32 @foo1(i32 %x) {
4entry:
5 %A = add i32 %x, 1
6 %B = call i32 @foo1(i32 %A)
7 br label %loop
8loop:
9 %C = phi i32 [%B, %entry], [%D, %loop]
10 %D = add i32 %C, 2
11 %E = icmp ugt i32 %D, 10000
12 br i1 %E, label %loopexit, label %loop
13loopexit:
14 ret i32 %D
15}
16
17define i32 @foo2(i32 %x) {
18entry:
19 %0 = add i32 %x, 1
20 %1 = call i32 @foo2(i32 %0)
21 br label %loop
22loop:
23 %2 = phi i32 [%1, %entry], [%3, %loop]
24 %3 = add i32 %2, 2
25 %4 = icmp ugt i32 %3, 10000
26 br i1 %4, label %loopexit, label %loop
27loopexit:
28 ret i32 %3
29}