summaryrefslogtreecommitdiff
path: root/test/Transforms/SCCP
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-11-02 18:27:22 +0000
committerChris Lattner <sabre@nondot.org>2009-11-02 18:27:22 +0000
commit0909796868048d3453fc8bdffd5147cc77f2010e (patch)
tree67c47e92c1cd3899ec85a9ae036ed54a7cb280c7 /test/Transforms/SCCP
parent2bbbbd6ac823181f8c3cceb55482254c4255a65a (diff)
downloadllvm-0909796868048d3453fc8bdffd5147cc77f2010e.tar.gz
llvm-0909796868048d3453fc8bdffd5147cc77f2010e.tar.bz2
llvm-0909796868048d3453fc8bdffd5147cc77f2010e.tar.xz
merge 2008-03-10-sret.ll into ipsccp-basic.ll, and upgrade its syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85811 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/SCCP')
-rw-r--r--test/Transforms/SCCP/2008-03-10-sret.ll21
-rw-r--r--test/Transforms/SCCP/ipsccp-basic.ll26
2 files changed, 26 insertions, 21 deletions
diff --git a/test/Transforms/SCCP/2008-03-10-sret.ll b/test/Transforms/SCCP/2008-03-10-sret.ll
deleted file mode 100644
index ec99e292a7..0000000000
--- a/test/Transforms/SCCP/2008-03-10-sret.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: opt < %s -ipsccp -S > %t
-; RUN: grep {ret i32 36} %t
-; RUN: grep {%mrv = insertvalue %T undef, i32 18, 0} %t
-; RUN: grep {%mrv1 = insertvalue %T %mrv, i32 17, 1} %t
-; RUN: grep {ret %T %mrv1} %t
-
-; XFAIL: *
-
-%T = type {i32,i32}
-
-define internal {i32, i32} @bar(i32 %A) {
- %X = add i32 1, %A
- ret i32 %X, i32 %A
-}
-
-define i32 @foo() {
- %X = call {i32, i32} @bar(i32 17)
- %Y = getresult {i32, i32} %X, 0
- %Z = add i32 %Y, %Y
- ret i32 %Z
-}
diff --git a/test/Transforms/SCCP/ipsccp-basic.ll b/test/Transforms/SCCP/ipsccp-basic.ll
index f015834f87..ec349e91d2 100644
--- a/test/Transforms/SCCP/ipsccp-basic.ll
+++ b/test/Transforms/SCCP/ipsccp-basic.ll
@@ -149,3 +149,29 @@ define i64 @test6b() {
; CHECK: define i64 @test6b
; CHECK: ret i64 0
+;;======================== test7
+
+
+%T = type {i32,i32}
+
+define internal {i32, i32} @test7a(i32 %A) {
+ %X = add i32 1, %A
+ %mrv0 = insertvalue %T undef, i32 %X, 0
+ %mrv1 = insertvalue %T %mrv0, i32 %A, 1
+ ret %T %mrv1
+; CHECK: @test7a
+; CHECK-NEXT: %mrv0 = insertvalue %T undef, i32 18, 0
+; CHECK-NEXT: %mrv1 = insertvalue %T %mrv0, i32 17, 1
+}
+
+define i32 @test7b() {
+ %X = call {i32, i32} @test7a(i32 17)
+ %Y = extractvalue {i32, i32} %X, 0
+ %Z = add i32 %Y, %Y
+ ret i32 %Z
+; CHECK: define i32 @test7b
+; CHECK-NEXT: call %T @test7a(i32 17)
+; CHECK-NEXT: ret i32 36
+}
+
+