diff options
author | Chris Lattner <sabre@nondot.org> | 2009-10-20 21:04:26 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-10-20 21:04:26 +0000 |
commit | 0f15e03c5a13a0e6170d1aae655f89d2ba3e45b3 (patch) | |
tree | c0f341601eefa898928c4c40b24e95c469df2f1c /llvm/test/Transforms/SCCP/ipsccp-basic.ll | |
parent | 582d056b14e1ee48529a6f5c5fc4db6d8d4e3e5a (diff) | |
download | bcm5719-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.ll | 32 |
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 +} + |