; Test merging of blocks that only have PHI nodes in them.  This tests the case
; where the mergedinto block doesn't have any PHI nodes, and is in fact 
; dominated by the block-to-be-eliminated
;
; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep N:
;

define i32 @test(i1 %a, i1 %b) {
	br i1 %b, label %N, label %Q
Q:
	br label %N
N:
	%W = phi i32 [0, %0], [1, %Q]
	; This block should be foldable into M
	br label %M

M:
	%R = add i32 %W, 1
	ret i32 %R
}


; Test merging of blocks that only have PHI nodes in them.  This tests the case
; where the mergedinto block doesn't have any PHI nodes, and is in fact 
; dominated by the block-to-be-eliminated
;
; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep N:
;

declare i1 @foo()

define i32 @test(i1 %a, i1 %b) {
        %c = call i1 @foo()
	br i1 %c, label %N, label %P
P:
        %d = call i1 @foo()
	br i1 %d, label %N, label %Q
Q:
	br label %N
N:
	%W = phi i32 [0, %0], [1, %Q], [2, %P]
	; This block should be foldable into M
	br label %M

M:
	%R = add i32 %W, 1
	ret i32 %R
}


Make this test more challenging to help it avoid being optimized away before it tests what it is intended to test.
Make this test more challenging to help it avoid being
optimized away before it tests what it is intended to test.


git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@48251 91177308-0d34-0410-b5e6-96231b3b80d8
