@@ -192,13 +192,29 @@ define amdgpu_kernel void @load_to_lds_fat_pointer_as_flat(ptr addrspace(7) %buf
192
192
ret void
193
193
}
194
194
195
+ define amdgpu_kernel void @make_buffer_rsrc_global_as_flat (ptr addrspace (1 ) %global , i32 %extent ) {
196
+ ;; NOTE: flags value not representative of real input
197
+ ; CHECK-LABEL: define amdgpu_kernel void @make_buffer_rsrc_global_as_flat(
198
+ ; CHECK-SAME: ptr addrspace(1) [[GLOBAL:%.*]], i32 [[EXTENT:%.*]]) {
199
+ ; CHECK-NEXT: [[BUFFER_FAT_PTR:%.*]] = call ptr addrspace(7) @llvm.amdgcn.make.buffer.rsrc.p7.p1(ptr addrspace(1) [[GLOBAL]], i16 0, i32 [[EXTENT]], i32 0)
200
+ ; CHECK-NEXT: store i32 [[EXTENT]], ptr addrspace(7) [[BUFFER_FAT_PTR]], align 4
201
+ ; CHECK-NEXT: ret void
202
+ ;
203
+ %cast = addrspacecast ptr addrspace (1 ) %global to ptr
204
+ %buffer.fat.ptr = call ptr addrspace (7 ) @llvm.amdgcn.make.buffer.rsrc.p7.p0 (ptr %cast , i16 0 , i32 %extent , i32 0 )
205
+ store i32 %extent , ptr addrspace (7 ) %buffer.fat.ptr
206
+ ret void
207
+ }
208
+
195
209
declare void @llvm.memset.p0.i64 (ptr nocapture writeonly , i8 , i64 , i1 ) #1
196
210
declare void @llvm.memcpy.p0.p0.i64 (ptr nocapture writeonly , ptr nocapture readonly , i64 , i1 ) #1
197
211
declare void @llvm.memcpy.inline.p0.p0.i64 (ptr nocapture writeonly , ptr nocapture readonly , i64 , i1 ) #1
198
212
declare void @llvm.memcpy.p0.p3.i32 (ptr nocapture writeonly , ptr addrspace (3 ) nocapture readonly , i32 , i1 ) #1
199
213
declare void @llvm.memmove.p0.p0.i64 (ptr nocapture writeonly , ptr nocapture readonly , i64 , i1 ) #1
200
214
declare void @llvm.amdgcn.load.to.lds.p0 (ptr nocapture readonly , ptr addrspace (3 ) nocapture writeonly , i32 immarg, i32 immarg, i32 immarg) #1
201
215
216
+ declare ptr addrspace (7 ) @llvm.amdgcn.make.buffer.rsrc.p7.p0 (ptr readnone , i16 , i32 , i32 ) #0
217
+
202
218
attributes #0 = { nounwind }
203
219
attributes #1 = { argmemonly nounwind }
204
220
0 commit comments