(no commit message)
authorlkcl <lkcl@web>
Thu, 8 Jun 2023 14:30:22 +0000 (15:30 +0100)
committerIkiWiki <ikiwiki.info>
Thu, 8 Jun 2023 14:30:22 +0000 (15:30 +0100)
openpower/sv/po9_encoding/discussion.mdwn

index 609dc61724461ef6826e84d1abb6e837ee060565..4e8555b64f6d158ad271c7fca2caea3670108c25 100644 (file)
@@ -5,7 +5,7 @@
 |---|-----|-----|-----|--|-----|-----|-------|-------|------------------|
 |PO9| rm0 | 0 0 | 0 0 | 0  000   rm1 |  xxxx | 0000  | SVP64:EXT900     |
 |PO9| rm0 | 0 0 | 0 0 | 1  000   rm1 |  xxxx | 0000  | SSingle:EXT900   |
-|PO9| xxx | x 0 | 0 0 | x !zero      |  xxxx | !zero | 55-bit RESERVED  |
+|PO9| xxx | x 0 | 0 0 | x !zero0     |  xxxx | !zero1| 55-bit RESERVED  |
 |PO9| xxx | 0 1 | 0 0 |              32-bit EXT900 (Vectorizable)       |
 |PO9| xxx | 1 1 | 0 0 |              32-bit EXT901 (Unvectorizable)     |
 |PO9|   !ZERO   | 0 0 |  1 | DWi                   | SSingle:EXT232-263 |
@@ -20,6 +20,7 @@ Fields:
 
 * `RM`: 24-bit SVP64 prefix
 * `RM <- rm0 || rm1` split field
+* `!zero0 || !zero1` a split field that must not be zero
 
 Length detection:
 
@@ -48,10 +49,18 @@ Instruction allocation restrictions:
 
 the complexity of attempting to fit 32-bit instructions into
 PO9 is very high. encoding (1) attempts to fit `setvl` etc. into
-32-bit but it is very tight.
+32-bit but it is very tight.  the entire EXT900 area would be
+taken up by the SVP64 Management instructions, below, defeating
+the purpose of having it.
+
+* `setvl` - Unvectorizable, EXT0xx, `RT RA CTR SVSTATE`, 6-bit XO (including Rc=1)
+* `psetvl` - Unvectorizable, EXT1xx, ditto
+* `svstep` - Vectorizable, either EXT900 (very precious) or EXT1xx (better), `RT, SVSTATE`, 6-bit XO (including Rc=1)
+* `svindex` - Unvectorizable, EXT0xx, `SVSTATE,SVSHAPE0-3`, 5-bit XO
+* `psvindex` - Unvectorizable, EXT1xx, ditto
+* `svstep(2)` - Unvectorizable, EXT0xx, `SVSTATE,SVSHAPE0-3`, 5-bit XO
+* `svstep(2)` - Unvectorizable, EXT1xx, ditto
 
-* `setvl` - Unvectorizable, EXT0xx, 6-bit XO (including Rc=1)
-* `psetvl` - Unvectorizable, EXT1xx
 
 
 ```
@@ -59,7 +68,7 @@ PO9 is very high. encoding (1) attempts to fit `setvl` etc. into
 |---|-----|--------|--|-----|---|-------|-------|------------------|
 |PO9| rm0 | 0  0 0 | 0 0000  rm1|  xxxx | 000   | SVP64:EXT900     |
 |PO9| rm0 | 0  0 0 | 1 0000  rm1|  xxxx | 000   | SSingle:EXT900   |
-|PO9| xxx | 0  0 0 | x !zero    |  xxxx | !zero | 55-bit RESERVED  |
+|PO9| xxx | 0  0 0 | x !zero0   |  xxxx | !zero1 | 55-bit RESERVED  |
 |PO9| xxx | 1  0 0 |            32-bit EXT900                      |
 |PO9|  !ZERO | 0 0 |  1 | DWi                 | SSingle:EXT232-263 |
 |PO9|  0000  | 0 0 |  1 | DWi                 | Scalar EXT232-263  |