1e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao; Inlining used to break PHI nodes.  This tests that they are correctly updated
2e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao; when a node is split around the call instruction.  The verifier caught the error.
3e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao;
4e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao; RUN: opt < %s -inline
5e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao;
6e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao
7e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaodefine i64 @test(i64 %X) {
8e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	ret i64 %X
9e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao}
10e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao
11e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaodefine i64 @fib(i64 %n) {
12e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao; <label>:0
13e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	%T = icmp ult i64 %n, 2		; <i1> [#uses=1]
14e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	br i1 %T, label %BaseCase, label %RecurseCase
15e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao
16e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei LiaoRecurseCase:		; preds = %0
17e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	%result = call i64 @test( i64 %n )		; <i64> [#uses=0]
18e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	br label %BaseCase
19e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao
20e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei LiaoBaseCase:		; preds = %RecurseCase, %0
21e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	%X = phi i64 [ 1, %0 ], [ 2, %RecurseCase ]		; <i64> [#uses=1]
22e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao	ret i64 %X
23e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao}
24