Re: V extension groups analogue to the standard groups

Simon Davidmann Imperas

A question to clarify. You state:
      RV32IV doesn’t mandate any FP hardware in the vector unit, whereas RV32IFV means both scalar and vector support single-precision, etc.  

This means if I understand you that we need to add F to get F hardware in the vector unit - so RV32IV means V with no F hardware, and RV32IFV includes F hardware.

So for consistency...

What does RV32IV means for M hardware multiply - do I need to RV32IMV to get scalar and vector hardware multiply?

RV32IV means no F and no M hardware? - so I need to explicitly include the extensions I need as V assumes nothing but I?

Or is something assumed for M?


On Thu, Aug 20, 2020 at 8:48 PM Andrew Waterman <andrew@...> wrote:
Quad-widening ops have been moved to a separate extension, Zvqmac.

I believe the intent is that the capital-V V extension supports the same FP datatypes as the scalar ISA, so e.g., RV32IV doesn’t mandate any FP hardware in the vector unit, whereas RV32IFV means both scalar and vector support single-precision, etc.

I’m surprised all those hashtags made it past the spam filter!

On Thu, Aug 20, 2020 at 11:42 AM Strauch, Tobias (HENSOLDT Cyber GmbH) <tobias.strauch@...> wrote:

Apologies if this is old stuff already dismissed. But I give it a try anyway.

Wouldn't it make sense to separate more complex vector instructions from more trivial ones? Already with the very first base release ? Vector instructions can also be helpful in small devices #IOT #Edge #GAP8 #RISCY without the need to fully support floating point instructions or without the need for a quad multiply.

The suggestion would be to basically group vector extensions analogue to the standard instructions (I, M, F, D, Q, …), instead of having an already complex base and then subtract or re-define subsets of instructions again ?

Wouldn't that be in-line with the RISC-V philosophy of modularity and simplicity ? The beauty would be that you have a non-vector and a vector group version.

Possible nomenclature based on order:

M: Standard Multiply Divide Instructions (MUL, ...)

V: Very Basic Vector Instructions (VSETVL, ...)

MV: Standard Multiply Divide Instructions and Very Basic Vector Instructions (MUL, VSETVL, ...

VM: Standard Multiply Divide Instructions, Very Basic Vector Instructions and Vector Integer Multiply\Divide Instructions (MUL, VSETVL, VMUL, ...)

F, D, Q analogue to M as suggested.

The V version will not be a 1:1 match with the standard version and will cover additional aspects. But it can be argued, that when you implement the V version (of M, F, D, Q, ...), then you most likely will have the relevant standard counterparts implemented as well anyway.

Kind Regards, Tobias

The information contained in this electronic mail message and any attachments hereto
is privileged and confidential information intended only for the use of the individual or 
entity named above or their designee.  If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or copying of this
communication is strictly prohibited.  If you have received this communication in error 
please immediately notify us by return  message or by telephone and delete the 
original message from your mail system.  Thank you.

Join { to automatically receive all group messages.