@@ -24,6 +24,54 @@ store i32 0, ptr addrspace(3) @used_by_kernel
2424}
2525; CHECK: ; LDSByteSize: 4 bytes
2626
27+ define void @nonkernel () {
28+ ; GFX9-LABEL: nonkernel:
29+ ; GFX9: ; %bb.0:
30+ ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
31+ ; GFX9-NEXT: v_mov_b32_e32 v0, 0
32+ ; GFX9-NEXT: v_mov_b32_e32 v1, v0
33+ ; GFX9-NEXT: ds_write_b32 v0, v0 offset:8
34+ ; GFX9-NEXT: ds_write_b64 v0, v[0:1]
35+ ; GFX9-NEXT: s_waitcnt lgkmcnt(0)
36+ ; GFX9-NEXT: s_setpc_b64 s[30:31]
37+ ;
38+ ; GFX10-LABEL: nonkernel:
39+ ; GFX10: ; %bb.0:
40+ ; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
41+ ; GFX10-NEXT: v_mov_b32_e32 v0, 0
42+ ; GFX10-NEXT: v_mov_b32_e32 v1, v0
43+ ; GFX10-NEXT: ds_write_b32 v0, v0 offset:8
44+ ; GFX10-NEXT: ds_write_b64 v0, v[0:1]
45+ ; GFX10-NEXT: s_waitcnt lgkmcnt(0)
46+ ; GFX10-NEXT: s_setpc_b64 s[30:31]
47+ ;
48+ ; G_GFX9-LABEL: nonkernel:
49+ ; G_GFX9: ; %bb.0:
50+ ; G_GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
51+ ; G_GFX9-NEXT: v_mov_b32_e32 v2, 0
52+ ; G_GFX9-NEXT: v_mov_b32_e32 v3, 8
53+ ; G_GFX9-NEXT: v_mov_b32_e32 v0, 0
54+ ; G_GFX9-NEXT: v_mov_b32_e32 v1, 0
55+ ; G_GFX9-NEXT: ds_write_b32 v3, v2
56+ ; G_GFX9-NEXT: ds_write_b64 v2, v[0:1]
57+ ; G_GFX9-NEXT: s_waitcnt lgkmcnt(0)
58+ ; G_GFX9-NEXT: s_setpc_b64 s[30:31]
59+ ;
60+ ; G_GFX10-LABEL: nonkernel:
61+ ; G_GFX10: ; %bb.0:
62+ ; G_GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
63+ ; G_GFX10-NEXT: v_mov_b32_e32 v2, 0
64+ ; G_GFX10-NEXT: v_mov_b32_e32 v3, 8
65+ ; G_GFX10-NEXT: v_mov_b32_e32 v0, 0
66+ ; G_GFX10-NEXT: v_mov_b32_e32 v1, 0
67+ ; G_GFX10-NEXT: ds_write_b32 v3, v2
68+ ; G_GFX10-NEXT: ds_write_b64 v2, v[0:1]
69+ ; G_GFX10-NEXT: s_waitcnt lgkmcnt(0)
70+ ; G_GFX10-NEXT: s_setpc_b64 s[30:31]
71+ store i32 0 , ptr addrspace (3 ) @used_by_both
72+ store double 0 .0 , ptr addrspace (3 ) @used_by_function
73+ ret void
74+ }
2775; Needs to allocate both variables, store to used_by_both is at sizeof(double)
2876define amdgpu_kernel void @withcall () {
2977; GFX9-LABEL: withcall:
@@ -135,52 +183,3 @@ define amdgpu_kernel void @nocall_false_sharing() {
135183}
136184; CHECK: ; LDSByteSize: 4 bytes
137185
138-
139- define void @nonkernel () {
140- ; GFX9-LABEL: nonkernel:
141- ; GFX9: ; %bb.0:
142- ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
143- ; GFX9-NEXT: v_mov_b32_e32 v0, 0
144- ; GFX9-NEXT: v_mov_b32_e32 v1, v0
145- ; GFX9-NEXT: ds_write_b32 v0, v0 offset:8
146- ; GFX9-NEXT: ds_write_b64 v0, v[0:1]
147- ; GFX9-NEXT: s_waitcnt lgkmcnt(0)
148- ; GFX9-NEXT: s_setpc_b64 s[30:31]
149- ;
150- ; GFX10-LABEL: nonkernel:
151- ; GFX10: ; %bb.0:
152- ; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
153- ; GFX10-NEXT: v_mov_b32_e32 v0, 0
154- ; GFX10-NEXT: v_mov_b32_e32 v1, v0
155- ; GFX10-NEXT: ds_write_b32 v0, v0 offset:8
156- ; GFX10-NEXT: ds_write_b64 v0, v[0:1]
157- ; GFX10-NEXT: s_waitcnt lgkmcnt(0)
158- ; GFX10-NEXT: s_setpc_b64 s[30:31]
159- ;
160- ; G_GFX9-LABEL: nonkernel:
161- ; G_GFX9: ; %bb.0:
162- ; G_GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
163- ; G_GFX9-NEXT: v_mov_b32_e32 v2, 0
164- ; G_GFX9-NEXT: v_mov_b32_e32 v3, 8
165- ; G_GFX9-NEXT: v_mov_b32_e32 v0, 0
166- ; G_GFX9-NEXT: v_mov_b32_e32 v1, 0
167- ; G_GFX9-NEXT: ds_write_b32 v3, v2
168- ; G_GFX9-NEXT: ds_write_b64 v2, v[0:1]
169- ; G_GFX9-NEXT: s_waitcnt lgkmcnt(0)
170- ; G_GFX9-NEXT: s_setpc_b64 s[30:31]
171- ;
172- ; G_GFX10-LABEL: nonkernel:
173- ; G_GFX10: ; %bb.0:
174- ; G_GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
175- ; G_GFX10-NEXT: v_mov_b32_e32 v2, 0
176- ; G_GFX10-NEXT: v_mov_b32_e32 v3, 8
177- ; G_GFX10-NEXT: v_mov_b32_e32 v0, 0
178- ; G_GFX10-NEXT: v_mov_b32_e32 v1, 0
179- ; G_GFX10-NEXT: ds_write_b32 v3, v2
180- ; G_GFX10-NEXT: ds_write_b64 v2, v[0:1]
181- ; G_GFX10-NEXT: s_waitcnt lgkmcnt(0)
182- ; G_GFX10-NEXT: s_setpc_b64 s[30:31]
183- store i32 0 , ptr addrspace (3 ) @used_by_both
184- store double 0 .0 , ptr addrspace (3 ) @used_by_function
185- ret void
186- }
0 commit comments