[Libre-soc-dev] sv.mv x: the instruction from hell

lkcl luke.leighton at gmail.com
Sun Jun 5 10:58:28 BST 2022


On Sun, Jun 5, 2022 at 8:39 AM Jacob Lifshay <programmerjake at gmail.com> wrote:

> sorry, having mv.x be 2-operand like that is totally unworkable -- sv.mv.x is supposed to be dynamic swizzle where the indexes read from one vector are used as the indexes of which elements to copy from a second vector to the destination. It inherently needs 3 operands.

the rule is: the scalar instruction has to exist, first, and it has to exist
on its own merit.

what *scalar* instruction can be proposed - stand-alone - which does
*not* rely *in any way shape or form* on SV - that is not so absolutely
awful that the ISA WG rejects it for very valid reasons.

you're laser-focussing on SV only to the detriment of the rest of the ISA,
and we have to be in a position to have good justification for *everything*
that is proposed.  mv.x as a stand-alone Scalar instruction is so bad that
i would *agree* with any objections by the ISA WG to its inclusion, and
consequently it cannot be relied on to exist as a basis for an SVP64 variant.

when added as a REMAP we can get away with calling it "advanced SVP64"
and there will be not only far less objection (because it's part of something
that's entirely new that has no effect on the Scalar ISA), it has far more
uses and makes the entire ISA that much more powerful.

l.



More information about the Libre-soc-dev mailing list