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
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to