[libre-riscv-dev] [isa-dev] 3D Matrix-style operations / primitives
lkcl
luke.leighton at gmail.com
Thu Sep 19 18:16:50 BST 2019
On Wednesday, September 18, 2019 at 10:36:17 AM UTC+1, Jacob Lifshay wrote:
anyway, here's a web page showing one way it can be done (the swizzles will
> need to be decoded from the matrices provided, or just look up the sse2
> instructions):
>
> http://web.archive.org/web/20100111104515/http://www.randombit.net:80/bitbashing/programming/integer_matrix_transpose_in_sse2.html
>
the ones being used are punpckldq and punpcklqdq, which are described here:
https://www.felixcloutier.com/x86/punpcklbw:punpcklwd:punpckldq:punpcklqdq
NP 0F 62 /*r*1 PUNPCKLDQ *mm, mm/m32* A V/V MMX Interleave low-order
doublewords from *mm* and *mm/m32* into *mm*.
the key being "interleave". so out of 128 bits (4x 32-bits)... hey it's
the 128-bit equivalent of PACK! :) that's very funny.
i'm not seeing how MV.SWIZZLE would help, given that MV.SWIZZLE only takes
one source register.
l.
>
More information about the libre-riscv-dev
mailing list