summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-12-19 09:08:15 +0000
committerChris Lattner <sabre@nondot.org>2003-12-19 09:08:15 +0000
commitb141a2aca64b991ed6bc8332d9f5f87b98e76705 (patch)
tree7c6e0b743dce2d7e95564fed981b1b6fca75b579
parentb8b9163a2f37201d973b576e75f5f24b2d9c878c (diff)
downloadbcm5719-llvm-b141a2aca64b991ed6bc8332d9f5f87b98e76705.tar.gz
bcm5719-llvm-b141a2aca64b991ed6bc8332d9f5f87b98e76705.zip
New testcase for missed optimization
llvm-svn: 10538
-rw-r--r--llvm/test/Regression/Transforms/ADCE/2003-12-19-MergeReturn.llx28
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()
OpenPOWER on IntegriCloud