1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=-architected-sgprs -global-isel=0 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9,GFX9-SDAG %s
3
- ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=-architected-sgprs -global-isel=1 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9,GFX9-GISEL %s
4
- ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=+architected-sgprs -global-isel=0 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9ARCH,GFX9ARCH -SDAG %s
5
- ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=+architected-sgprs -global-isel=1 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9ARCH,GFX9ARCH -GISEL %s
2
+ ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=-architected-sgprs -global-isel=0 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9 %s
3
+ ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=-architected-sgprs -global-isel=1 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9 %s
4
+ ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=+architected-sgprs -global-isel=0 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9ARCH-SDAG %s
5
+ ; RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx900 -mattr=+architected-sgprs -global-isel=1 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9ARCH-GISEL %s
6
6
; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -global-isel=0 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX12,GFX12-SDAG %s
7
7
; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -global-isel=1 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX12,GFX12-GISEL %s
8
8
@@ -156,10 +156,37 @@ define amdgpu_gfx void @workgroup_ids_gfx(ptr addrspace(1) %outx, ptr addrspace(
156
156
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
157
157
; GFX9-NEXT: s_setpc_b64 s[30:31]
158
158
;
159
- ; GFX9ARCH-LABEL: workgroup_ids_gfx:
160
- ; GFX9ARCH: ; %bb.0:
161
- ; GFX9ARCH-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
162
- ; GFX9ARCH-NEXT: s_setpc_b64 s[30:31]
159
+ ; GFX9ARCH-SDAG-LABEL: workgroup_ids_gfx:
160
+ ; GFX9ARCH-SDAG: ; %bb.0:
161
+ ; GFX9ARCH-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
162
+ ; GFX9ARCH-SDAG-NEXT: v_mov_b32_e32 v6, ttmp9
163
+ ; GFX9ARCH-SDAG-NEXT: s_and_b32 s34, ttmp7, 0xffff
164
+ ; GFX9ARCH-SDAG-NEXT: global_store_dword v[0:1], v6, off
165
+ ; GFX9ARCH-SDAG-NEXT: s_waitcnt vmcnt(0)
166
+ ; GFX9ARCH-SDAG-NEXT: v_mov_b32_e32 v0, s34
167
+ ; GFX9ARCH-SDAG-NEXT: s_lshr_b32 s34, ttmp7, 16
168
+ ; GFX9ARCH-SDAG-NEXT: global_store_dword v[2:3], v0, off
169
+ ; GFX9ARCH-SDAG-NEXT: s_waitcnt vmcnt(0)
170
+ ; GFX9ARCH-SDAG-NEXT: v_mov_b32_e32 v0, s34
171
+ ; GFX9ARCH-SDAG-NEXT: global_store_dword v[4:5], v0, off
172
+ ; GFX9ARCH-SDAG-NEXT: s_waitcnt vmcnt(0)
173
+ ; GFX9ARCH-SDAG-NEXT: s_setpc_b64 s[30:31]
174
+ ;
175
+ ; GFX9ARCH-GISEL-LABEL: workgroup_ids_gfx:
176
+ ; GFX9ARCH-GISEL: ; %bb.0:
177
+ ; GFX9ARCH-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
178
+ ; GFX9ARCH-GISEL-NEXT: v_mov_b32_e32 v6, ttmp9
179
+ ; GFX9ARCH-GISEL-NEXT: s_and_b32 s34, ttmp7, 0xffff
180
+ ; GFX9ARCH-GISEL-NEXT: s_lshr_b32 s35, ttmp7, 16
181
+ ; GFX9ARCH-GISEL-NEXT: global_store_dword v[0:1], v6, off
182
+ ; GFX9ARCH-GISEL-NEXT: s_waitcnt vmcnt(0)
183
+ ; GFX9ARCH-GISEL-NEXT: v_mov_b32_e32 v0, s34
184
+ ; GFX9ARCH-GISEL-NEXT: global_store_dword v[2:3], v0, off
185
+ ; GFX9ARCH-GISEL-NEXT: s_waitcnt vmcnt(0)
186
+ ; GFX9ARCH-GISEL-NEXT: v_mov_b32_e32 v0, s35
187
+ ; GFX9ARCH-GISEL-NEXT: global_store_dword v[4:5], v0, off
188
+ ; GFX9ARCH-GISEL-NEXT: s_waitcnt vmcnt(0)
189
+ ; GFX9ARCH-GISEL-NEXT: s_setpc_b64 s[30:31]
163
190
;
164
191
; GFX12-LABEL: workgroup_ids_gfx:
165
192
; GFX12: ; %bb.0:
@@ -168,6 +195,18 @@ define amdgpu_gfx void @workgroup_ids_gfx(ptr addrspace(1) %outx, ptr addrspace(
168
195
; GFX12-NEXT: s_wait_samplecnt 0x0
169
196
; GFX12-NEXT: s_wait_bvhcnt 0x0
170
197
; GFX12-NEXT: s_wait_kmcnt 0x0
198
+ ; GFX12-NEXT: s_and_b32 s0, ttmp7, 0xffff
199
+ ; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
200
+ ; GFX12-NEXT: v_dual_mov_b32 v6, ttmp9 :: v_dual_mov_b32 v7, s0
201
+ ; GFX12-NEXT: s_lshr_b32 s1, ttmp7, 16
202
+ ; GFX12-NEXT: v_mov_b32_e32 v8, s1
203
+ ; GFX12-NEXT: s_wait_storecnt 0x0
204
+ ; GFX12-NEXT: global_store_b32 v[0:1], v6, off scope:SCOPE_SYS
205
+ ; GFX12-NEXT: s_wait_storecnt 0x0
206
+ ; GFX12-NEXT: global_store_b32 v[2:3], v7, off scope:SCOPE_SYS
207
+ ; GFX12-NEXT: s_wait_storecnt 0x0
208
+ ; GFX12-NEXT: global_store_b32 v[4:5], v8, off scope:SCOPE_SYS
209
+ ; GFX12-NEXT: s_wait_storecnt 0x0
171
210
; GFX12-NEXT: s_setpc_b64 s[30:31]
172
211
%id.x = call i32 @llvm.amdgcn.workgroup.id.x ()
173
212
%id.y = call i32 @llvm.amdgcn.workgroup.id.y ()
@@ -177,11 +216,3 @@ define amdgpu_gfx void @workgroup_ids_gfx(ptr addrspace(1) %outx, ptr addrspace(
177
216
store volatile i32 %id.z , ptr addrspace (1 ) %outz
178
217
ret void
179
218
}
180
-
181
- declare i32 @llvm.amdgcn.workgroup.id.x ()
182
- declare i32 @llvm.amdgcn.workgroup.id.y ()
183
- declare i32 @llvm.amdgcn.workgroup.id.z ()
184
- declare void @llvm.amdgcn.raw.ptr.buffer.store.v3i32 (<3 x i32 >, ptr addrspace (8 ), i32 , i32 , i32 immarg)
185
- ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
186
- ; GFX9-GISEL: {{.*}}
187
- ; GFX9-SDAG: {{.*}}
0 commit comments