(no commit message)
[libreriscv.git] / simple_v_extension / v_comparative_analysis.mdwn
index 567db7eac0ad90f45c117a95892b5eba563d8e99..9736bdf74dbaf85ba6aba46f1df9d714abac9527 100644 (file)
@@ -443,80 +443,78 @@ modes.
 # TODO: instructions V-Ext duplication analysis <a name="duplication_analysis">
 
 This is partly speculative due to lack of access to an up-to-date
-V-Ext Spec (V2.3-draft RVV 0.4-Draft at the time of writing).  However
-basin an analysis instead on Hwacha, a cursory examination shows over
-an **85%** duplication of V-Ext operand-related instructions when
-compared to Simple-V on a standard RG64G base.   Even Vector Fetch
-is analogous to "zero-overhead loop".
+V-Ext Spec (V2.3-draft RVV 0.4-Draft at the time of writing).  
+A cursory examination shows an **85%** duplication of V-Ext
+operand-related instructions when compared to a standard RG64G base,
+and a **95%** duplication of arithmetic and floating-point operations.
 
 Exceptions are:
 
-* Vector Indexed Memory Instructions (non-contiguous)
-* Vector Atomic Memory Instructions.
-* Some of the Vector Misc ops: VEIDX, VFIRST, VCLASS, VPOPC
-  and potentially more.
-* Consensual Jump
+* The Vector Misc ops: VEIDX, VFIRST, VPOPC
+  and potentially more (9 control-related instructions)
+* VCLIP and VCLIPI (the only 2 opcodes not duplicated out of 47
+  total arithmetic / floating-point operations)
 
 Table of RV32V Instructions
 
-| RV32V      | RV Equivalent (FP)   | RV Equivalent (Int) | Notes |
-| -----      | --- | |   |
-| VADD       | FADD    | ADD |   |
-| VSUB       | FSUB    | SUB |   |
-| VSL        |     | SLL |   |
-| VSR        |     | SRL |   |
-| VAND       |     | AND |   |
-| VOR        |     | OR |   |
-| VXOR       |     | XOR |   |
-| VSEQ       | FEQ | BEQ | (1) |
-| VSNE       | !FEQ | BNE | (1) |
-| VSLT       | FLT    | BLT | (1) |
-| VSGE       | !FLE | BGE | (1) |
-| VCLIP      |     | |   |
-| VCVT       | FCVT    | |   |
-| VMPOP      |     | |   |
-| VMFIRST    |     | |   |
-| VEXTRACT   |     | |   |
-| VINSERT    |     | |   |
-| VMERGE     |     | |   |
-| VSELECT    |     | |   |
-| VSLIDE     |     | |   |
-| VDIV       | FDIV    | DIV |   |
-| VREM       |     | REM |   |
-| VMUL       | FMUL    | MUL |   |
-| VMULH      |     | |   |
-| VMIN       | FMIN    | |   |
-| VMAX       | FMUX    | |   |
-| VSGNJ      | FSGNJ    | |   |
-| VSGNJN     | FSGNJN    | |   |
-| VSGNJX     | FSNGJX    | |   |
-| VSQRT      | FSQRT    | |   |
-| VCLASS     |     | |   |
-| VPOPC      |     | |   |
-| VADDI      |     | ADDI |   |
-| VSLI       |     | SLI |   |
-| VSRI       |     | SRI |   |
-| VANDI      |     | ANDI |   |
-| VORI       |     | ORI |   |
-| VXORI      |     | XORI |   |
-| VCLIPI     |     | |   |
-| VMADD      | FMADD    | |   |
-| VMSUB      | FMSUB    | |   |
-| VNMADD     | FNMSUB    | |   |
-| VNMSUB     | FNMADD    | |   |
-| VLD        | FLD    | LD |   |
-| VLDS       |     | LD | (2)  |
-| VLDX       |     | LD | (3)  |
-| VST        | FST    | ST |   |
-| VSTS       |     | ST | (2)  |
-| VSTX       |     | ST | (3)  |
-| VAMOSWAP   |     | AMOSWAP |   |
-| VAMOADD    |     | AMOADD |   |
-| VAMOAND    |     | AMOAND |   |
-| VAMOOR     |     | AMOOR |   |
-| VAMOXOR    |     | AMOXOR |   |
-| VAMOMIN    |     | AMOMIN |   |
-| VAMOMAX    |     | AMOMAX |   |
+| RV32V      | RV Std (FP) | RV Std (Int) | Notes |
+| -----      | ---      |         |   |
+| VADD       | FADD     | ADD     |   |
+| VSUB       | FSUB     | SUB     |   |
+| VSL        |          | SLL     |   |
+| VSR        |          | SRL     |   |
+| VAND       |          | AND     |   |
+| VOR        |          | OR      |   |
+| VXOR       |          | XOR     |   |
+| VSEQ       | FEQ      | BEQ     | (1) |
+| VSNE       | !FEQ     | BNE     | (1) |
+| VSLT       | FLT      | BLT     | (1) |
+| VSGE       | !FLE     | BGE     | (1) |
+| VCLIP      |          |         |   |
+| VCVT       | FCVT     |         |   |
+| VMPOP      |          |         |   |
+| VMFIRST    |          |         |   |
+| VEXTRACT   |          |         |   |
+| VINSERT    |          |         |   |
+| VMERGE     |          |         |   |
+| VSELECT    |          |         |   |
+| VSLIDE     |          |         |   |
+| VDIV       | FDIV     | DIV     |   |
+| VREM       |          | REM     |   |
+| VMUL       | FMUL     | MUL     |   |
+| VMULH      |          | MULH    |   |
+| VMIN       | FMIN     |         |   |
+| VMAX       | FMUX     |         |   |
+| VSGNJ      | FSGNJ    |         |   |
+| VSGNJN     | FSGNJN   |         |   |
+| VSGNJX     | FSNGJX   |         |   |
+| VSQRT      | FSQRT    |         |   |
+| VCLASS     | FCLASS   |         |   |
+| VPOPC      |          |         |   |
+| VADDI      |          | ADDI    |   |
+| VSLI       |          | SLI     |   |
+| VSRI       |          | SRI     |   |
+| VANDI      |          | ANDI    |   |
+| VORI       |          | ORI     |   |
+| VXORI      |          | XORI    |   |
+| VCLIPI     |          |         |   |
+| VMADD      | FMADD    |         |   |
+| VMSUB      | FMSUB    |         |   |
+| VNMADD     | FNMSUB   |         |   |
+| VNMSUB     | FNMADD   |         |   |
+| VLD        | FLD      | LD      |   |
+| VLDS       | FLD      | LD      | (2)  |
+| VLDX       | FLD      | LD      | (3)  |
+| VST        | FST      | ST      |   |
+| VSTS       | FST      | ST      | (2)  |
+| VSTX       | FST      | ST      | (3)  |
+| VAMOSWAP   |          | AMOSWAP |   |
+| VAMOADD    |          | AMOADD  |   |
+| VAMOAND    |          | AMOAND  |   |
+| VAMOOR     |          | AMOOR   |   |
+| VAMOXOR    |          | AMOXOR  |   |
+| VAMOMIN    |          | AMOMIN  |   |
+| VAMOMAX    |          | AMOMAX  |   |
 
 Notes: