diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-12-19 09:08:15 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-12-19 09:08:15 +0000 |
| commit | b141a2aca64b991ed6bc8332d9f5f87b98e76705 (patch) | |
| tree | 7c6e0b743dce2d7e95564fed981b1b6fca75b579 /llvm | |
| parent | b8b9163a2f37201d973b576e75f5f24b2d9c878c (diff) | |
| download | bcm5719-llvm-b141a2aca64b991ed6bc8332d9f5f87b98e76705.tar.gz bcm5719-llvm-b141a2aca64b991ed6bc8332d9f5f87b98e76705.zip | |
New testcase for missed optimization
llvm-svn: 10538
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/Regression/Transforms/ADCE/2003-12-19-MergeReturn.llx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/test/Regression/Transforms/ADCE/2003-12-19-MergeReturn.llx b/llvm/test/Regression/Transforms/ADCE/2003-12-19-MergeReturn.llx new file mode 100644 index 00000000000..541f2abe976 --- /dev/null +++ b/llvm/test/Regression/Transforms/ADCE/2003-12-19-MergeReturn.llx @@ -0,0 +1,28 @@ +; This testcase was failing because without merging the return blocks, ADCE +; didn't know that it could get rid of the then.0 block. + +; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load + + +implementation ; Functions: + +void %main(uint %argc, sbyte** %argv) { +entry: + call void %__main( ) + %tmp.1 = setle uint %argc, 5 ; <bool> [#uses=1] + br bool %tmp.1, label %then.0, label %return + +then.0: ; preds = %entry + %tmp.8 = load sbyte** %argv ; <sbyte*> [#uses=1] + %tmp.10 = load sbyte* %tmp.8 ; <sbyte> [#uses=1] + %tmp.11 = seteq sbyte %tmp.10, 98 ; <bool> [#uses=1] + br bool %tmp.11, label %then.1, label %return + +then.1: ; preds = %then.0 + ret void + +return: ; preds = %entry, %then.0 + ret void +} + +declare void %__main() |

