forked from OSchip/llvm-project
AMDGPU/GlobalISel: Fall-back to SelectionDAG for non-void functions
Reviewers: arsenm, nhaehnle Reviewed By: nhaehnle Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D45843 llvm-svn: 330774
This commit is contained in:
parent
434d4c0b88
commit
257882ff72
|
@ -32,6 +32,10 @@ AMDGPUCallLowering::AMDGPUCallLowering(const AMDGPUTargetLowering &TLI)
|
|||
|
||||
bool AMDGPUCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
|
||||
const Value *Val, unsigned VReg) const {
|
||||
// FIXME: Add support for non-void returns.
|
||||
if (Val)
|
||||
return false;
|
||||
|
||||
MIRBuilder.buildInstr(AMDGPU::S_ENDPGM);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
; RUN: llc -mtriple=amdgcn-mesa-mesa3d -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
; This isn't implemented, but we need to make sure we fall back to SelectionDAG
|
||||
; instead of generating wrong code.
|
||||
; CHECK: warning: Instruction selection used fallback path for non_void_ret
|
||||
; CHECK: non_void_ret:
|
||||
; CHECK-NOT: s_endpgm
|
||||
define amdgpu_vs i32 @non_void_ret() {
|
||||
ret i32 0
|
||||
}
|
Loading…
Reference in New Issue