diff options
author | Shih-wei Liao <sliao@google.com> | 2010-02-10 11:10:31 -0800 |
---|---|---|
committer | Shih-wei Liao <sliao@google.com> | 2010-02-10 11:10:31 -0800 |
commit | e264f62ca09a8f65c87a46d562a4d0f9ec5d457e (patch) | |
tree | 59e3d57ef656cef79afa708ae0a3daf25cd91fcf /test/Transforms/SimplifyCFG/PhiBlockMerge2.ll | |
download | external_llvm-e264f62ca09a8f65c87a46d562a4d0f9ec5d457e.zip external_llvm-e264f62ca09a8f65c87a46d562a4d0f9ec5d457e.tar.gz external_llvm-e264f62ca09a8f65c87a46d562a4d0f9ec5d457e.tar.bz2 |
Check in LLVM r95781.
Diffstat (limited to 'test/Transforms/SimplifyCFG/PhiBlockMerge2.ll')
-rw-r--r-- | test/Transforms/SimplifyCFG/PhiBlockMerge2.ll | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll b/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll new file mode 100644 index 0000000..fb5d600 --- /dev/null +++ b/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll @@ -0,0 +1,27 @@ +; 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: opt < %s -simplifycfg -S | 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 +} + |