(no commit message)
authorlkcl <lkcl@web>
Sat, 25 Mar 2023 20:28:09 +0000 (20:28 +0000)
committerIkiWiki <ikiwiki.info>
Sat, 25 Mar 2023 20:28:09 +0000 (20:28 +0000)
openpower/sv/rfc/ls008.mdwn

index 3fda6ee302cf6133aa9203d6b82bf312f7fa3009..8e8d6dbbe22a0ae6e574d348ef01e15819578a1c 100644 (file)
@@ -266,7 +266,8 @@ mfspr) are 100% guaranteed to have zero impact on SVP64 state.
 **Max Vector Length (maxvl)** <a name="mvl" />
 
 MAXVECTORLENGTH is the same concept as MVL in RISC-V RVV, except that it
-is variable length and may be dynamically set.  MVL is limited to 7 bits
+is variable length and may be dynamically set (normally from an immediate
+field only).  MVL is limited to 7 bits
 (in the first version of SVP64) and consequently the maximum number of
 elements is limited to between 0 and 127.
 
@@ -282,11 +283,12 @@ and allocation and only utilise `setvl`. Direct writing to SVSTATE in order to
 
 `setvl` is conceptually similar but different from the Cray, SX Aurora, and RISC-V RVV
 equivalent. Similar to RVV, VL is set to be within
-the range 0 <= VL <= MVL
+the range 0 <= VL <= MVL. Unlike RVV, VL is set **exactly** according to the following:
 
-    VL = rd = MIN(vlen, MVL)
+    VL = (RT|0) = MIN(vlen, MVL)
 
-where 0 <= MVL <= XLEN
+where 0 <= MVL <= XLEN and vlen may come from an immediate, `RA`, or from the `CTR` SPR,
+depending on options set with the `setvl` instruction.
 
 **SUBVL - Sub Vector Length**
 
@@ -297,7 +299,9 @@ operation issued, SUBVL operations are issued.
 
 The main effect of SUBVL is that predication bits are applied per
 **group**, rather than by individual element.  Legal values are 0 to 3,
-representing 1 operation thru 4 operations respectively.
+representing 1 operation (1 element) thru 4 operations (4 elements) respectively.
+Elements are best though of in the context of 3D, Audio and Video: two Left and Right
+Channel "elements" or four ARGB "elements", or three XYZ coordinate "elements".
 
 **Horizontal Parallelism**