(no commit message)
authorlkcl <lkcl@web>
Fri, 6 Aug 2021 14:47:20 +0000 (15:47 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 6 Aug 2021 14:47:20 +0000 (15:47 +0100)
openpower/sv/branches.mdwn

index e1942748dcf8680c5fcf41de08b888cf9edabf58..1fcafc83f798acbdc837351a7010f2ac8bca8649 100644 (file)
@@ -110,10 +110,12 @@ Fields:
   is ignored or skipped, depending on context.
 * **ALL** when set, all branch conditional tests must pass in order for
   the branch to succeed.
-* **VLI** In VLSET mode, VL is set equal (truncated) to the first
-  branch which succeeds.  If VLI (Vector Length Inclusive) is clear,
+* **VLI** Identical to Data-dependent Fail-First mode.
+  In VLSET mode, VL is set equal (truncated) to the first point
+  where, assuming Conditions are tested sequentially, the  branch succeeds
+  *or fails*.  If VLI (Vector Length Inclusive) is clear,
   VL is truncated to *exclude* the current element, otherwise it is
-  included. SVSTATE.MVL is not changed.
+  included. SVSTATE.MVL is not changed: only VL.
 * **LRu**: Link Register Update. When set, Link Register will
   only be updated if the Branch Condition succeeds. This avoids
   destruction of LR during loops.
@@ -134,6 +136,9 @@ and `svstep` mode it is actually useful to use Branch Conditional even
 to perform no actual branch operation, i.e to point to the instruction
 after the branch.
 
+`VLSET` mode with Vertical-First is particularly unusual. TODO
+investigate svstep index checks.
+
 In particular, svstep mode is still useful for Horizontal-First Mode
 particularly in combination with REMAP. All "loop end" conditions
 will be tested on a per-element basis and placed into a Vector of CRs