xref: /llvm-project/llvm/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll (revision 0e8bd5a44a1bd8034706189b49a7a816c59304cd)
1; RUN: llc < %s
2declare { i64, double } @wild()
3
4define void @foo(ptr %p, ptr %q) nounwind personality ptr @__gxx_personality_v0 {
5        %t = invoke { i64, double } @wild() to label %normal unwind label %handler
6
7normal:
8        %mrv_gr = extractvalue { i64, double } %t, 0
9        store i64 %mrv_gr, ptr %p
10        %mrv_gr12681 = extractvalue { i64, double } %t, 1
11        store double %mrv_gr12681, ptr %q
12	ret void
13
14handler:
15        %exn = landingpad {ptr, i32}
16                 catch ptr null
17	ret void
18}
19
20declare i32 @__gxx_personality_v0(...) addrspace(0)
21