[libre-riscv-dev] [llvm-dev] RFC: First-class Matrix type
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Thu Oct 11 09:26:41 BST 2018
[off llvm-dev list, link/ref here:
http://lists.llvm.org/pipermail/llvm-dev/2018-October/126873.html]
On Thu, Oct 11, 2018 at 8:59 AM Jacob Lifshay <programmerjake at gmail.com> wrote:
>
> This sounds like it would be really useful for 3D Graphics APIs as SPIR-V (the Vulkan/OpenCL2.1 intermediate representation) has matrices as first-class types. This will promote round-trip-ability. I have also heard that RISC-V's V extension wants to support matrices (not sure if it's as an additional extension on top of V or as part of V proper).
if you can pseudo-code an example instruction, or load/store, that
would be great.
i did consider last night adding a "remap" option to the register
file. so whereas normally you do this:
VL=3
add r10, r20, r30
=>
add r10, r20, r30
add r11, r21, r31
add r12, r22, r33
it would be (assuming elwidth=8):
for i in range(VL):
r10[i] = r11[i] + r12[i]
for elwidth = 16 it would be obviously r10[i..i+1] = .....
this could be set as a "mode" in the STATE.
not sure what to do if VL*elwidth goes beyond XLEN?
it *might* also solve the issues you were talking about for reordering
structs of arrays to arrays of structs, jacob.
l.
More information about the libre-riscv-dev
mailing list