mirror of
https://github.com/RPCSX/llvm.git
synced 2025-03-01 17:35:38 +00:00
Add support to codegen for getresult instructions with undef operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50180 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6829157f49
commit
3dc34f682d
@ -3311,8 +3311,13 @@ void SelectionDAGLowering::visitCall(CallInst &I) {
|
||||
|
||||
|
||||
void SelectionDAGLowering::visitGetResult(GetResultInst &I) {
|
||||
SDOperand Call = getValue(I.getOperand(0));
|
||||
setValue(&I, SDOperand(Call.Val, I.getIndex()));
|
||||
if (UndefValue *UV = dyn_cast<UndefValue>(I.getOperand(0))) {
|
||||
SDOperand Undef = DAG.getNode(ISD::UNDEF, TLI.getValueType(I.getType()));
|
||||
setValue(&I, Undef);
|
||||
} else {
|
||||
SDOperand Call = getValue(I.getOperand(0));
|
||||
setValue(&I, SDOperand(Call.Val, I.getIndex()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
6
test/CodeGen/Generic/getresult-undef.ll
Normal file
6
test/CodeGen/Generic/getresult-undef.ll
Normal file
@ -0,0 +1,6 @@
|
||||
; RUN: llvm-as < %s | llc
|
||||
|
||||
define double @foo() {
|
||||
%t = getresult {double, double} undef, 1
|
||||
ret double %t
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user