(no commit message)
authorlkcl <lkcl@web>
Mon, 21 Dec 2020 04:52:22 +0000 (04:52 +0000)
committerIkiWiki <ikiwiki.info>
Mon, 21 Dec 2020 04:52:22 +0000 (04:52 +0000)
openpower/sv/svp_rewrite/svp64.mdwn

index c4b297ee2c4ccf2fa4352ac8f99c994d36a67a98..73a1904fc6eae07be6e4cd6b3ac5fff967d38cf4 100644 (file)
@@ -207,7 +207,8 @@ These are the modes:
 * **normal** mode is straight vectorisation.  no augmentations: the vector comprises an array of independently created results.
 * **ffirst** or data-dependent fail-on-first: see separate section.  the vector may be truncated depending on certain criteria.
   *VL is altered as a result*.
-* **sat mode** or saturation: clamps each elemrnt result to a min/max rather than overflows / wraps.  allows signed and unsigned clamping.
+* **sat mode** or saturation: clamps each elemrnt result to a min/max rather than overflows / wraps.  allows signed and unsigned clamping. 
+  requires twin-predication (different src and dest elwidth).
 * **reduce mode**. a mapreduce is performed.  the result is a scalar.  a result vector however is required, as the upper elements may be used to store intermediary computations.  the result of the mapreduce is in the first element with a nonzero predicate bit.  see separate section below.
   note that there are comprehensive caveats when using this mode.
 * **pred-result** will test the result (CR testing selects a bit of CR and inverts it, just like branch testing) and if the test fails it is as if the predicate bit was zero.  When Rc=1 the CR element (CR0) however is still stored in the CR regfile.  This scheme does not apply to crops (crand, cror).
@@ -521,6 +522,8 @@ saturation may be done using a mapreduced CR op (cror), or by using the
 new crweird instruction, transferring the relevant CR bits to a scalar
 integer and testing it for nonzero.  see [[sv/cr_int_predication]]
 
+Note that due to the need for both a src and dest elwidth, saturation mode
+requires twin-predication.
 
 ## Reduce mode