From: lkcl Date: Tue, 12 Jul 2022 16:05:16 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1205 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=717b2457d0c847cd2db0122965751d99c4569534;p=libreriscv.git --- diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index 777e26548..70f614777 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -160,13 +160,20 @@ to FFT. An in-depth analysis showed that it is possible to do in-place in-register DCT and FFT as long as twin-result "butterfly" instructions are provided. -These can be found in the [[openpower/isa/svfparith]] page. +These can be found in the [[openpower/isa/svfparith]] page if performing +IEEE754 FP transforms. *(For fixed-point transforms, equivalent 3-in 2-out +integer operations would be required)*. These "butterfly" instructions +avoid the need for a temporary register because the two array positions +being overwritten will be "in-flight" in any In-Order or Out-of-Order +micro-architecture. DCT and FFT Schedules are currently limited to RADIX2 sizes and do not accept predicate masks. Given that it is common to perform recursive convolutions combining smaller Power-2 DCT/FFT to create larger DCT/FFTs in practice the RADIX2 -limit is not a problem. +limit is not a problem. A Bluestein convolution to compute arbitrary +length is demonstrated +by [Project Nayuki](https://www.nayuki.io/res/free-small-fft-in-multiple-languages/fft.py) ## Indexed