xref: /llvm-project/llvm/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll (revision c87c48019c105e1b198fee37546fe512a89bc669)
1; RUN: llc < %s
2declare { i64, double } @wild()
3
4define void @foo(i64* %p, double* %q) nounwind personality i32 (...)* @__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, i64* %p
10        %mrv_gr12681 = extractvalue { i64, double } %t, 1
11        store double %mrv_gr12681, double* %q
12	ret void
13
14handler:
15        %exn = landingpad {i8*, i32}
16                 catch i8* null
17	ret void
18}
19
20declare i32 @__gxx_personality_v0(...)
21