summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SCCP/ipsccp-basic.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-10-20 21:04:26 +0000
committerChris Lattner <sabre@nondot.org>2009-10-20 21:04:26 +0000
commit0f15e03c5a13a0e6170d1aae655f89d2ba3e45b3 (patch)
treec0f341601eefa898928c4c40b24e95c469df2f1c /llvm/test/Transforms/SCCP/ipsccp-basic.ll
parent582d056b14e1ee48529a6f5c5fc4db6d8d4e3e5a (diff)
downloadbcm5719-llvm-0f15e03c5a13a0e6170d1aae655f89d2ba3e45b3.tar.gz
bcm5719-llvm-0f15e03c5a13a0e6170d1aae655f89d2ba3e45b3.zip
add a real testcase for PR4313
llvm-svn: 84676
Diffstat (limited to 'llvm/test/Transforms/SCCP/ipsccp-basic.ll')
-rw-r--r--llvm/test/Transforms/SCCP/ipsccp-basic.ll32
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SCCP/ipsccp-basic.ll b/llvm/test/Transforms/SCCP/ipsccp-basic.ll
index 6141972c25b..d3584d1b3ce 100644
--- a/llvm/test/Transforms/SCCP/ipsccp-basic.ll
+++ b/llvm/test/Transforms/SCCP/ipsccp-basic.ll
@@ -102,3 +102,35 @@ define internal i64 @test4c(i64 %a) {
}
; CHECK: define internal i64 @test4c
; CHECK: ret i64 undef
+
+
+
+;;======================== test5
+
+; PR4313
+define internal {i64,i64} @test5a() {
+ %a = insertvalue {i64,i64} undef, i64 4, 1
+ %b = insertvalue {i64,i64} %a, i64 5, 0
+ ret {i64,i64} %b
+}
+
+define i64 @test5b() {
+ %a = invoke {i64,i64} @test5a()
+ to label %A unwind label %B
+A:
+ %c = call i64 @test5c({i64,i64} %a)
+ ret i64 %c
+B:
+ ret i64 0
+}
+
+; CHECK: define i64 @test5b()
+; CHECK: A:
+; CHECK-NEXT: %c = call i64 @test5c(%0 %a)
+; CHECK-NEXT: ret i64 %c
+
+define internal i64 @test5c({i64,i64} %a) {
+ %b = extractvalue {i64,i64} %a, 0
+ ret i64 %b
+}
+
OpenPOWER on IntegriCloud