blob: 2dc823f54139c150dd418d45fe41beaa3665e4be [file] [edit]
; RUN: opt -S -mtriple=amdgpu9.50 -passes=amdgpu-attributor %s | FileCheck %s
; The async marker intrinsics only set/await a marker in the stream of async
; requests; they cannot transfer control out of the module. Make sure they do
; not defeat the AGPR allocation inference, which conservatively gives up on
; any call that is not nocallback.
; CHECK: define amdgpu_kernel void @asyncmark_kernel({{.*}}) #[[ATTR:[0-9]+]]
define amdgpu_kernel void @asyncmark_kernel(ptr addrspace(1) %out) {
call void @llvm.amdgcn.asyncmark()
call void @llvm.amdgcn.wait.asyncmark(i16 0)
store i32 0, ptr addrspace(1) %out
ret void
}
; CHECK: attributes #[[ATTR]] = {{{.*}}"amdgpu-agpr-alloc"="0"