mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
23ce502cb7
to the block that defines their operands. This doesn't work in the case that the operand is an invoke, because invoke is a terminator and must be the last instruction in a block. Replace it with support in SelectionDAGISel for copying struct values into sequences of virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50279 91177308-0d34-0410-b5e6-96231b3b80d8
19 lines
425 B
LLVM
19 lines
425 B
LLVM
; RUN: llvm-as < %s | llc
|
|
|
|
declare { i64, double } @wild()
|
|
|
|
define void @foo(i64* %p, double* %q) nounwind {
|
|
%t = invoke { i64, double } @wild() to label %normal unwind label %handler
|
|
|
|
normal:
|
|
%mrv_gr = getresult { i64, double } %t, 0
|
|
store i64 %mrv_gr, i64* %p
|
|
%mrv_gr12681 = getresult { i64, double } %t, 1
|
|
store double %mrv_gr12681, double* %q
|
|
ret void
|
|
|
|
handler:
|
|
ret void
|
|
}
|
|
|