[Libre-soc-dev] SVP64 Vectorised add-carry => big int add
programmerjake at gmail.com
Tue Apr 12 05:00:25 BST 2022
On Mon, Apr 11, 2022, 20:15 Jacob Lifshay <programmerjake at gmail.com> wrote:
> On Sun, Apr 10, 2022, 08:37 lkcl <luke.leighton at gmail.com> wrote:
>> could someone please check the new section about CA/CA32, am i right and
>> is it clear that a chain of adde's (sv.adde) would in fact be a "Big
>> Integer Add"?
> yes, that's correct.
reading through the wiki some more, i noticed it specifies that SO and
OV are ignored and not written by SVP64 instructions, I think that may
not be the best decision, instead I think that SO should not be written to
avoid the dependency chain issues, but OV should still be read/written
since, just like CA, they don't have the dependency chain issue.
Having OV still work with SVP64 allows use of addex (uses OV as a carry
in/out), allowing vectorizing big-int algorithms that need two separate
Both OpenPower (addex) and x86 (adox) have instructions that specifically
use the overflow flag as a carry in/out, so we shouldn't prevent it from
working with svp64.
See table 2 in:
for an example of why two separate carry chains are needed...the example
algorithm they use is 512-bit multiplication.
More information about the Libre-soc-dev