summaryrefslogtreecommitdiffstats
path: root/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll')
-rw-r--r--test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll b/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
new file mode 100644
index 0000000..f251d6c
--- /dev/null
+++ b/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
@@ -0,0 +1,26 @@
+; RUN: opt < %s -deadargelim | llvm-dis
+; PR3807
+
+define internal { i32, i32 } @foo() {
+ ret {i32,i32} {i32 42, i32 4}
+}
+
+define i32 @bar() {
+ %x = invoke {i32,i32} @foo() to label %T unwind label %T2
+T:
+ %y = extractvalue {i32,i32} %x, 1
+ ret i32 %y
+T2:
+ unreachable
+}
+
+define i32 @bar2() {
+entry:
+ %x = invoke {i32,i32} @foo() to label %T unwind label %T2
+T:
+ %PN = phi i32 [0, %entry]
+ %y = extractvalue {i32,i32} %x, 1
+ ret i32 %y
+T2:
+ unreachable
+} \ No newline at end of file