[Libre-soc-dev] SVP64 Vectorised add-carry => big int add

lkcl luke.leighton at gmail.com
Sun Apr 17 10:14:27 BST 2022


On Sun, Apr 17, 2022 at 6:07 AM Jacob Lifshay <programmerjake at gmail.com> wrote:

> if we were to add carrying functionality to madd,

apparently, it's mathematically impossible, even when A*B+C+D, to
overflow (need a carry).  p7 of that intel paper

Another optimization is based on the observation that (A x B + C + D),
where A, B, C, and D are one-word values, will never produce a result larger
than two words. This means that one can add two low-order words to a two-
word product (or one low-order word and a carry) without generating a carry-
out of the high-order word. This allows one to efficiently consume the carry
or in other words truncate the carry chain in some cases.



More information about the Libre-soc-dev mailing list