(no commit message)
authorlkcl <lkcl@web>
Thu, 21 Apr 2022 08:47:06 +0000 (09:47 +0100)
committerIkiWiki <ikiwiki.info>
Thu, 21 Apr 2022 08:47:06 +0000 (09:47 +0100)
openpower/sv/biginteger/analysis.mdwn

index ce48983720210178bef71a9e617e374a45a9b781..371e81926973ba14f99185d884eab88bc6c7180c 100644 (file)
@@ -19,11 +19,25 @@ big-integer add due to the rules set in SVP64 that all Vector Operations
 are directly equivalent to the strict Program Order Execution of
 their element-level operations.
 
+    R0,CA = A0+B0+CA
+        |
+        +----------+
+                   |
+    R1,CA = A1+B1+CA
+        |
+        +----------+
+                   |
+    R2,CA = A2+B2+CA
+
 Thus, due to sequential execution of `adde` both consuming and producing
 a CA Flag, `sv.adde` is in effect an alias for Vectorised add.  As such,
 implementors are entirely at liberty to recognise Horizontal-First Vector
 adds and send the vector of registers to a much larger and wider back-end
-ALU.
+ALU, and/or short-cut the intermediate storage of XER.CA on an element
+level and implement a Vector-aware carry propagation algorithm
+in back-end hardware that need only take the first incoming XER.CA and
+only store the last XER.CA. The size of the underlying back-end SIMD ALU
+is entirely at the discretion of the implementer.
 
 # Multiply