[llvm-branch-commits] [llvm] AMDGPU: Fix buffer load/store of pointers (PR #95379)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jun 14 11:48:37 PDT 2024


arsenm wrote:

> On the other hand, it's a lot easier to handle ugly types down in instruction selection, where you get to play much more fast and loose with types.

I think it's mostly easier to do this in the IR 

> 
> And there are buffer uses that don't fit into the fat pointer use use case where we'd still want them to work. For example, both `str uct.ptr.bufferload.v6f16` and `struct.ptr.buffer.load.v3f32` should be a `buffer_load_dwordx3`, but I'm pretty sure 6 x half isn't a register type.

Yes, we should just fix this one

> 
> The load and store intrinsics are already overloaded to handle various {8, 16, ..., 128}-bit types, and it seems much cleaner to let it support any type of those lengths. It's just a load/store with somewhat weird indexing semantics, is all.

Splitting is pretty ugly too, especially for a truly arbitrary type in legalization.



https://github.com/llvm/llvm-project/pull/95379


More information about the llvm-branch-commits mailing list