@@ -204,26 +204,50 @@ define amdgpu_kernel void @marked_kernel_use_workgroup_id(ptr addrspace(1) %ptr)
204204}
205205
206206define void @marked_func_use_other_sgpr (ptr addrspace (1 ) %ptr ) #0 {
207- ; FIXEDABI-LABEL: marked_func_use_other_sgpr:
208- ; FIXEDABI: ; %bb.0:
209- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
210- ; FIXEDABI-NEXT: v_mov_b32_e32 v2, s6
211- ; FIXEDABI-NEXT: v_mov_b32_e32 v3, s7
212- ; FIXEDABI-NEXT: flat_load_ubyte v2, v[2:3] glc
213- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
214- ; FIXEDABI-NEXT: v_mov_b32_e32 v2, s8
215- ; FIXEDABI-NEXT: v_mov_b32_e32 v3, s9
216- ; FIXEDABI-NEXT: flat_load_ubyte v2, v[2:3] glc
217- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
218- ; FIXEDABI-NEXT: v_mov_b32_e32 v2, s4
219- ; FIXEDABI-NEXT: v_mov_b32_e32 v3, s5
220- ; FIXEDABI-NEXT: flat_load_ubyte v2, v[2:3] glc
221- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
222- ; FIXEDABI-NEXT: v_mov_b32_e32 v2, s10
223- ; FIXEDABI-NEXT: v_mov_b32_e32 v3, s11
224- ; FIXEDABI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]
225- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
226- ; FIXEDABI-NEXT: s_setpc_b64 s[30:31]
207+ ; FIXEDABI-SDAG-LABEL: marked_func_use_other_sgpr:
208+ ; FIXEDABI-SDAG: ; %bb.0:
209+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
210+ ; FIXEDABI-SDAG-NEXT: s_mov_b64 s[6:7], 0xc8
211+ ; FIXEDABI-SDAG-NEXT: s_load_dwordx2 s[6:7], s[6:7], 0x0
212+ ; FIXEDABI-SDAG-NEXT: s_waitcnt lgkmcnt(0)
213+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v2, s6
214+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v3, s7
215+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v2, v[2:3] glc
216+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0)
217+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v2, s8
218+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v3, s9
219+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v2, v[2:3] glc
220+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0)
221+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v2, s4
222+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v3, s5
223+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v2, v[2:3] glc
224+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0)
225+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v2, s10
226+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v3, s11
227+ ; FIXEDABI-SDAG-NEXT: flat_store_dwordx2 v[0:1], v[2:3]
228+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0)
229+ ; FIXEDABI-SDAG-NEXT: s_setpc_b64 s[30:31]
230+ ;
231+ ; FIXEDABI-GISEL-LABEL: marked_func_use_other_sgpr:
232+ ; FIXEDABI-GISEL: ; %bb.0:
233+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
234+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v2, s6
235+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v3, s7
236+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v2, v[2:3] glc
237+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
238+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v2, s8
239+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v3, s9
240+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v2, v[2:3] glc
241+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
242+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v2, s4
243+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v3, s5
244+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v2, v[2:3] glc
245+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
246+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v2, s10
247+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v3, s11
248+ ; FIXEDABI-GISEL-NEXT: flat_store_dwordx2 v[0:1], v[2:3]
249+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
250+ ; FIXEDABI-GISEL-NEXT: s_setpc_b64 s[30:31]
227251 %queue.ptr = call ptr addrspace (4 ) @llvm.amdgcn.queue.ptr ()
228252 %implicitarg.ptr = call ptr addrspace (4 ) @llvm.amdgcn.implicitarg.ptr ()
229253 %dispatch.ptr = call ptr addrspace (4 ) @llvm.amdgcn.dispatch.ptr ()
@@ -236,18 +260,34 @@ define void @marked_func_use_other_sgpr(ptr addrspace(1) %ptr) #0 {
236260}
237261
238262define amdgpu_kernel void @marked_kernel_use_other_sgpr (ptr addrspace (1 ) %ptr ) #0 {
239- ; FIXEDABI-LABEL: marked_kernel_use_other_sgpr:
240- ; FIXEDABI: ; %bb.0:
241- ; FIXEDABI-NEXT: s_add_u32 s0, s4, 8
242- ; FIXEDABI-NEXT: flat_load_ubyte v0, v[0:1] glc
243- ; FIXEDABI-NEXT: s_addc_u32 s1, s5, 0
244- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
245- ; FIXEDABI-NEXT: v_mov_b32_e32 v0, s0
246- ; FIXEDABI-NEXT: v_mov_b32_e32 v1, s1
247- ; FIXEDABI-NEXT: flat_load_ubyte v0, v[0:1] glc
248- ; FIXEDABI-NEXT: s_waitcnt vmcnt(0)
249- ; FIXEDABI-NEXT: flat_load_ubyte v0, v[0:1] glc
250- ; FIXEDABI-NEXT: s_endpgm
263+ ; FIXEDABI-SDAG-LABEL: marked_kernel_use_other_sgpr:
264+ ; FIXEDABI-SDAG: ; %bb.0:
265+ ; FIXEDABI-SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xd0
266+ ; FIXEDABI-SDAG-NEXT: s_add_u32 s2, s4, 8
267+ ; FIXEDABI-SDAG-NEXT: s_addc_u32 s3, s5, 0
268+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v0, s2
269+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v1, s3
270+ ; FIXEDABI-SDAG-NEXT: s_waitcnt lgkmcnt(0)
271+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v3, s1
272+ ; FIXEDABI-SDAG-NEXT: v_mov_b32_e32 v2, s0
273+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v2, v[2:3] glc
274+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v0, v[0:1] glc
275+ ; FIXEDABI-SDAG-NEXT: s_waitcnt vmcnt(0)
276+ ; FIXEDABI-SDAG-NEXT: flat_load_ubyte v0, v[0:1] glc
277+ ; FIXEDABI-SDAG-NEXT: s_endpgm
278+ ;
279+ ; FIXEDABI-GISEL-LABEL: marked_kernel_use_other_sgpr:
280+ ; FIXEDABI-GISEL: ; %bb.0:
281+ ; FIXEDABI-GISEL-NEXT: s_add_u32 s0, s4, 8
282+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v0, v[0:1] glc
283+ ; FIXEDABI-GISEL-NEXT: s_addc_u32 s1, s5, 0
284+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
285+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v0, s0
286+ ; FIXEDABI-GISEL-NEXT: v_mov_b32_e32 v1, s1
287+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v0, v[0:1] glc
288+ ; FIXEDABI-GISEL-NEXT: s_waitcnt vmcnt(0)
289+ ; FIXEDABI-GISEL-NEXT: flat_load_ubyte v0, v[0:1] glc
290+ ; FIXEDABI-GISEL-NEXT: s_endpgm
251291 %queue.ptr = call ptr addrspace (4 ) @llvm.amdgcn.queue.ptr ()
252292 %implicitarg.ptr = call ptr addrspace (4 ) @llvm.amdgcn.implicitarg.ptr ()
253293 %dispatch.ptr = call ptr addrspace (4 ) @llvm.amdgcn.dispatch.ptr ()
0 commit comments