blob: c789726dc1413b13cee7ab9a4124c3927e5eb0cb [file]
; RUN: llc -mtriple=amdgpu12.00-amd-amdhsa < %s | FileCheck %s --check-prefixes=CHECK,PACKED
; RUN: llc -mtriple=amdgpu10.30-amd-amdhsa < %s | FileCheck %s --check-prefixes=CHECK,NOTPACKED
@global = addrspace(1) global i32 poison, align 4
; Carefully crafted kernel that uses v0 but never writes a VGPR or reads another VGPR.
; Only hardware-initialized VGPRs (v0) are read in this kernel.
; CHECK-LABEL: amdhsa.kernels:
; CHECK-LABEL: kernel_x
; CHECK: .vgpr_count: 1
define amdgpu_kernel void @kernel_x(ptr addrspace(8) %rsrc) #0 {
entry:
%id = call i32 @llvm.amdgcn.workitem.id.x()
call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 %id, ptr addrspace(8) %rsrc, i32 0, i32 0, i32 0)
ret void
}
; CHECK-LABEL: kernel_z
; PACKED: .vgpr_count: 1
; NOTPACKED: .vgpr_count: 3
define amdgpu_kernel void @kernel_z(ptr addrspace(8) %rsrc) {
entry:
%id = call i32 @llvm.amdgcn.workitem.id.z()
call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 %id, ptr addrspace(8) %rsrc, i32 0, i32 0, i32 0)
ret void
}
attributes #0 = { "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" }