mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
c22abcde1d
Use the 64-bit SGPR base with a 0 offset, since it's 1 fewer instruction to materialize the 0 vs. the 64-bit copy.
20 lines
783 B
LLVM
20 lines
783 B
LLVM
; RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX10 %s
|
|
|
|
declare i32 @llvm.amdgcn.s.get.waveid.in.workgroup() #0
|
|
|
|
; GCN-LABEL: {{^}}test_s_get_waveid_in_workgroup:
|
|
; GFX10: global_store_dword
|
|
; GFX10: s_get_waveid_in_workgroup [[DEST:s[0-9]+]]
|
|
; GFX10: s_waitcnt lgkmcnt(0)
|
|
; GFX10: v_mov_b32_e32 [[VDEST:v[0-9]+]], [[DEST]]
|
|
; GFX10: global_store_dword v{{[0-9]+}}, [[VDEST]], s{{\[[0-9]+:[0-9]+\]$}}
|
|
define amdgpu_kernel void @test_s_get_waveid_in_workgroup(i32 addrspace(1)* %out) {
|
|
; Make sure %out is loaded and assiciated wait count already inserted
|
|
store i32 0, i32 addrspace(1)* %out
|
|
%v = call i32 @llvm.amdgcn.s.get.waveid.in.workgroup()
|
|
store i32 %v, i32 addrspace(1)* %out
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { nounwind }
|