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