Preserve debug info attached with call instruction while eliminating dead argument.
[oota-llvm.git] / test / Transforms / DeadArgElim / 2009-03-17-MRE-Invoke.ll
1 ; RUN: opt < %s -deadargelim | llvm-dis
2 ; PR3807
3
4 define internal { i32, i32 } @foo() {
5   ret {i32,i32} {i32 42, i32 4}
6 }
7
8 define i32 @bar() {
9   %x = invoke {i32,i32} @foo() to label %T unwind label %T2
10 T:
11   %y = extractvalue {i32,i32} %x, 1
12   ret i32 %y
13 T2:
14   unreachable
15 }
16
17 define i32 @bar2() {
18 entry:
19   %x = invoke {i32,i32} @foo() to label %T unwind label %T2
20 T:
21   %PN = phi i32 [0, %entry]
22   %y = extractvalue {i32,i32} %x, 1
23   ret i32 %y
24 T2:
25   unreachable
26 }