• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt < %s -mergefunc -stats -disable-output |& grep {functions merged}
2
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}
30