mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-24 13:33:37 +02:00
d9bf037744
Summary: The main challenge in lowering kernel arguments for AMDGPU is determing the memory type of the argument. The generic calling convention code assumes that only legal register types can be stored in memory, but this is not the case for AMDGPU. This consolidates all the logic AMDGPU uses for deducing memory types into a single function. This will make it much easier to support different ABIs in the future. Reviewers: arsenm Subscribers: arsenm, wdng, nhaehnle, llvm-commits, yaxunl Differential Revision: https://reviews.llvm.org/D24614 llvm-svn: 281781
16 lines
461 B
LLVM
16 lines
461 B
LLVM
; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck %s
|
|
|
|
; CHECK-LABEL: {{^}}kernel_arg_i64:
|
|
define void @kernel_arg_i64(i64 addrspace(1)* %out, i64 %a) nounwind {
|
|
store i64 %a, i64 addrspace(1)* %out, align 8
|
|
ret void
|
|
}
|
|
|
|
; i64 arg works, v1i64 arg does not.
|
|
; CHECK-LABEL: {{^}}kernel_arg_v1i64:
|
|
define void @kernel_arg_v1i64(<1 x i64> addrspace(1)* %out, <1 x i64> %a) nounwind {
|
|
store <1 x i64> %a, <1 x i64> addrspace(1)* %out, align 8
|
|
ret void
|
|
}
|
|
|