From: lkcl Date: Wed, 9 Mar 2022 23:40:17 +0000 (+0000) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~3105 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8a3ca2f5e23ad80d7b789377bdfb6af300e023d;p=libreriscv.git --- diff --git a/openpower/sv/bitmanip.mdwn b/openpower/sv/bitmanip.mdwn index 6b3277bb3..3ed51ae91 100644 --- a/openpower/sv/bitmanip.mdwn +++ b/openpower/sv/bitmanip.mdwn @@ -736,6 +736,21 @@ uint_xlen_t clmulr(uint_xlen_t RA, uint_xlen_t RB) return x; } ``` +## carryless Twin Butterfly (Tukey-Cooley) Mul-add-sub + +used in combination with SV FFT REMAP to perform +a full NTT in-place. possible by having 3-in 2-out, +to avoid the need for a temp register. RS is written +to as well as RT. + + clfmadd RT,RA,RC,RB (Rc=0) + clfmadd. RT,RA,RC,RB (Rc=1) + +Pseudo-code: + + RT <- CLMUL(RA, RC) ^ RB + RS <- CLMUL(RA, RC) ^ RB + # bitmatrix