openpower-isa.git
2 years agostart on inverse DCT, transforming to iterative
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 18:04:52 +0000 (19:04 +0100)]
start on inverse DCT, transforming to iterative

2 years agogot DCT LD-bit-rev demo operational in unit test
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 15:42:42 +0000 (16:42 +0100)]
got DCT LD-bit-rev demo operational in unit test

2 years agofix LD/ST bitreverse with Matrix REMAP to instead be non-bitreversed.
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 13:46:39 +0000 (14:46 +0100)]
fix LD/ST bitreverse with Matrix REMAP to instead be non-bitreversed.
slightly meaningless to bit-reverse on matrix LDs, but it is still possible

2 years agoargh, have LD-bitreverse select the offset from RA REMAP schedule
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 13:24:21 +0000 (14:24 +0100)]
argh, have LD-bitreverse select the offset from RA REMAP schedule

2 years agoadd mode for half-swap, to be combined with LD-bit-reversed for loading DCT
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 11:16:18 +0000 (12:16 +0100)]
add mode for half-swap, to be combined with LD-bit-reversed for loading DCT
data

2 years agocode comments
Luke Kenneth Casson Leighton [Wed, 28 Jul 2021 11:03:51 +0000 (12:03 +0100)]
code comments

2 years agofix test_power_decoder.py
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 17:26:51 +0000 (18:26 +0100)]
fix test_power_decoder.py

2 years agoget DCT shortened table operational
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 16:20:07 +0000 (17:20 +0100)]
get DCT shortened table operational

2 years agoisatables: addg6s instruction
Dmitry Selyutin [Tue, 27 Jul 2021 06:22:38 +0000 (06:22 +0000)]
isatables: addg6s instruction

2 years agopower_enums: cbcdtd instruction
Dmitry Selyutin [Mon, 26 Jul 2021 14:48:38 +0000 (14:48 +0000)]
power_enums: cbcdtd instruction

2 years agopower_enums: cdtbcd instruction
Dmitry Selyutin [Mon, 26 Jul 2021 14:48:25 +0000 (14:48 +0000)]
power_enums: cdtbcd instruction

2 years agopower_enums: addg6s instruction
Dmitry Selyutin [Mon, 26 Jul 2021 14:48:03 +0000 (14:48 +0000)]
power_enums: addg6s instruction

2 years agoadding reduced COS table DCT test
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 15:40:38 +0000 (16:40 +0100)]
adding reduced COS table DCT test

2 years agoadd new DCT inner butterfly shorter COS-gen mode unit test
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 15:17:52 +0000 (16:17 +0100)]
add new DCT inner butterfly shorter COS-gen mode unit test

2 years agofix new COSTABLE generator unit test,
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 13:31:05 +0000 (14:31 +0100)]
fix new COSTABLE generator unit test,
cross-reference it to transcendentals scalar version

2 years agofix up DCT modes for inner/outer butterfly,
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 13:27:41 +0000 (14:27 +0100)]
fix up DCT modes for inner/outer butterfly,
add new costables schedule and set up REMAP correctly

2 years agoargh, LD/ST using DS has to be computed differently.
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 13:20:57 +0000 (14:20 +0100)]
argh, LD/ST using DS has to be computed differently.
multiply DS by four, then compute SVP64 ELSTRIDE/UNITSTRIDE, then
*divide* DS by four afterwards
TODO, illegal instruction if the 2 LSBs are non-zero? does this ever occur?

2 years agofix errors in detection of ffmadds (etc), enabling FFT twin-regs moed
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 13:19:31 +0000 (14:19 +0100)]
fix errors in detection of ffmadds (etc), enabling FFT twin-regs moed
when it should not have been.  affected fcoss/fsins/fcfids

2 years agoclear persist bit if setvl explicitly called
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 12:03:55 +0000 (13:03 +0100)]
clear persist bit if setvl explicitly called

2 years agoadd new cos coefficient pre-computed and on-the-fly mode,
Luke Kenneth Casson Leighton [Tue, 27 Jul 2021 11:35:55 +0000 (12:35 +0100)]
add new cos coefficient pre-computed and on-the-fly mode,
reorganise DCT modes due to needing more bits

2 years agouse ydimsz as sub-mode in DCT/FFT butterfly
Luke Kenneth Casson Leighton [Mon, 26 Jul 2021 15:22:48 +0000 (16:22 +0100)]
use ydimsz as sub-mode in DCT/FFT butterfly

2 years agouse std not stw in transcendentals ld/st-convert test
Luke Kenneth Casson Leighton [Mon, 26 Jul 2021 15:22:26 +0000 (16:22 +0100)]
use std not stw in transcendentals ld/st-convert test

2 years agoadd dct cos 8 table test
Luke Kenneth Casson Leighton [Mon, 26 Jul 2021 14:57:07 +0000 (15:57 +0100)]
add dct cos 8 table test

2 years agoadd sv.fcoss SVP64Asm support
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 18:09:20 +0000 (19:09 +0100)]
add sv.fcoss SVP64Asm support

2 years agoadd DS-Form support for sv.std
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 18:08:53 +0000 (19:08 +0100)]
add DS-Form support for sv.std

2 years agoadded an extra SVP64 instruction, svstep, to replace setvl
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 16:43:09 +0000 (17:43 +0100)]
added an extra SVP64 instruction, svstep, to replace setvl
"get end state" mode

2 years agoadd experiment to convert int to float and multiply by PI etc.
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 12:06:47 +0000 (13:06 +0100)]
add experiment to convert int to float and multiply by PI etc.
for later use in DCT

2 years agoadd ability to get current SVSHAPE indices into a register,
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 10:43:23 +0000 (11:43 +0100)]
add ability to get current SVSHAPE indices into a register,
using setvl "Vertical First" test mode

2 years agocomments
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 09:59:28 +0000 (10:59 +0100)]
comments

2 years agoadd DCT unit test combining DCT inner and outer butterfly
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 07:31:16 +0000 (08:31 +0100)]
add DCT unit test combining DCT inner and outer butterfly

2 years agomake REMAP persistent (if persistence requested) even on svshape
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 07:30:45 +0000 (08:30 +0100)]
make REMAP persistent (if persistence requested) even on svshape

2 years agocreate schedule for calculating COS coefficient in DCT
Luke Kenneth Casson Leighton [Sat, 24 Jul 2021 06:59:10 +0000 (07:59 +0100)]
create schedule for calculating COS coefficient in DCT

2 years agoadd DCT outer butterfly iterative overlapping ADD schedule
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 17:29:43 +0000 (18:29 +0100)]
add DCT outer butterfly iterative overlapping ADD schedule

2 years agoadd DCT outer butterfly svshape setup
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 16:53:10 +0000 (17:53 +0100)]
add DCT outer butterfly svshape setup

2 years agosmall inner DCT butterfly test, fix up order of fdmadds
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 15:57:31 +0000 (16:57 +0100)]
small inner DCT butterfly test, fix up order of fdmadds

2 years agoadd DCT inner butterfly results test
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 14:41:54 +0000 (15:41 +0100)]
add DCT inner butterfly results test

2 years ago"fix" fdmadd DCT mul-add-sub unit test with values that will
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:48:53 +0000 (14:48 +0100)]
"fix" fdmadd DCT mul-add-sub unit test with values that will
not cause rounding.  "good enough" for now

2 years agoadd sv.fdmadds unit test
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:24:04 +0000 (14:24 +0100)]
add sv.fdmadds unit test

2 years agoadd sv.fdmadds to SVP64Asm
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:19:12 +0000 (14:19 +0100)]
add sv.fdmadds to SVP64Asm

2 years agoadd DCT mul-add to CSV and enums
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:17:59 +0000 (14:17 +0100)]
add DCT mul-add to CSV and enums

2 years agoadd DCT variant of twin MUL-ADD. actually an add and a MUL-SUB
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:16:59 +0000 (14:16 +0100)]
add DCT variant of twin MUL-ADD.  actually an add and a MUL-SUB

2 years agoadd DCT butterfly mode into svremap
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 13:16:23 +0000 (14:16 +0100)]
add DCT butterfly mode into svremap

2 years agoset up submodes for SVSHAPE, to include DCT butterfly yielders
Luke Kenneth Casson Leighton [Fri, 23 Jul 2021 10:09:53 +0000 (11:09 +0100)]
set up submodes for SVSHAPE, to include DCT butterfly yielders

2 years agosplit out 2nd dct outer butterfly scheduler
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 22:18:25 +0000 (23:18 +0100)]
split out 2nd dct outer butterfly scheduler

2 years agohalf way through converting in-place dct to yield unit test
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 16:31:29 +0000 (17:31 +0100)]
half way through converting in-place dct to yield unit test

2 years agoadd inner and outer yield version of DCT inner and out butterfly
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 14:46:56 +0000 (15:46 +0100)]
add inner and outer yield version of DCT inner and out butterfly

2 years agocopy of halfrev2 algorithm updated
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 14:24:36 +0000 (15:24 +0100)]
copy of halfrev2 algorithm updated

2 years agosimplification of halfrev2 algorithm (really neat)
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 14:24:00 +0000 (15:24 +0100)]
simplification of halfrev2 algorithm (really neat)

2 years agoadd REMAP DCT yield schedule function, TODO
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 14:12:43 +0000 (15:12 +0100)]
add REMAP DCT yield schedule function, TODO

2 years agoadd hybrid LD-ST-bitreverse with REMAP as an experiment
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 14:12:09 +0000 (15:12 +0100)]
add hybrid LD-ST-bitreverse with REMAP as an experiment

2 years agocorrections to SVP64 LD/ST unit tests
Luke Kenneth Casson Leighton [Thu, 22 Jul 2021 12:17:06 +0000 (13:17 +0100)]
corrections to SVP64 LD/ST unit tests

2 years agocomments
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 21:04:45 +0000 (22:04 +0100)]
comments

2 years agocreate cos table independent, outside of the inner loops
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 21:03:44 +0000 (22:03 +0100)]
create cos table independent, outside of the inner loops

2 years agocleanup
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 20:58:35 +0000 (21:58 +0100)]
cleanup

2 years agoadd iterative list-reversing algorithm, replace recursive variant.
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 20:49:23 +0000 (21:49 +0100)]
add iterative list-reversing algorithm, replace recursive variant.
actually really simple (to implement in hardware)

2 years agopre-reverse order of data indices in DCT so that *after* the inner
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 16:04:22 +0000 (17:04 +0100)]
pre-reverse order of data indices in DCT so that *after* the inner
butterfly is done the data is in the correct order for the outer one.
this so that no data-swaps are needed

2 years agotemporary reordering after the DCT schedule is carried out, this removes
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 14:56:43 +0000 (15:56 +0100)]
temporary reordering after the DCT schedule is carried out, this removes
the need for *data* swaps.

2 years agorealised that SVSHAPE0-3 is not privileged
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 13:08:06 +0000 (14:08 +0100)]
realised that SVSHAPE0-3 is not privileged

2 years agoadd inner sub-loop testing from svstep Rc=1
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 13:06:04 +0000 (14:06 +0100)]
add inner sub-loop testing from svstep Rc=1

2 years agocomments
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 09:01:08 +0000 (10:01 +0100)]
comments

2 years agocomments
Luke Kenneth Casson Leighton [Tue, 20 Jul 2021 08:58:09 +0000 (09:58 +0100)]
comments

2 years agobit of a reorg, adding option to test end of inner loops of SVSTATE(s)
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 19:45:25 +0000 (20:45 +0100)]
bit of a reorg, adding option to test end of inner loops of SVSTATE(s)
needed to pass the immediate to svstep as an option of which
SVSTATE0-3 to test

2 years agodo in-place swap
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 15:24:48 +0000 (16:24 +0100)]
do in-place swap

2 years agoannoying: missed out something in the unit test, not working yet
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:59:03 +0000 (15:59 +0100)]
annoying: missed out something in the unit test, not working yet

2 years agosimplify DCT code
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:53:17 +0000 (15:53 +0100)]
simplify DCT code

2 years agocreate coefficient table for DCT outside of loops
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:50:23 +0000 (15:50 +0100)]
create coefficient table for DCT outside of loops

2 years agoupdate comments
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:48:17 +0000 (15:48 +0100)]
update comments

2 years agomore comments
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:13:25 +0000 (15:13 +0100)]
more comments

2 years agoupdate comments and license
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 14:05:26 +0000 (15:05 +0100)]
update comments and license

2 years agoremove unneeded code
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 13:47:59 +0000 (14:47 +0100)]
remove unneeded code

2 years agono need for len(j) > 1 test, half of 1 is zero which stops swap anyway
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 13:46:25 +0000 (14:46 +0100)]
no need for len(j) > 1 test, half of 1 is zero which stops swap anyway

2 years agoremove unneeded code
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 13:44:20 +0000 (14:44 +0100)]
remove unneeded code

2 years agoswap the indices rather than the data in DCT top half: bizarrely this works!
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 13:41:04 +0000 (14:41 +0100)]
swap the indices rather than the data in DCT top half: bizarrely this works!

2 years agoremove copy, use in-place with post-inner-loop swap
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 12:25:51 +0000 (13:25 +0100)]
remove copy, use in-place with post-inner-loop swap

2 years agoadd experimental order-reversing code (commented out) to DCT
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 11:56:51 +0000 (12:56 +0100)]
add experimental order-reversing code (commented out) to DCT

2 years agocode comments
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 11:08:38 +0000 (12:08 +0100)]
code comments

2 years agowhitespace cleanup
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 11:08:00 +0000 (12:08 +0100)]
whitespace cleanup

2 years agomove bit-reversing to before MULs in DCT
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 10:57:37 +0000 (11:57 +0100)]
move bit-reversing to before MULs in DCT

2 years agoreverse bit-order of in-place outer DCT butterfly
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 10:53:33 +0000 (11:53 +0100)]
reverse bit-order of in-place outer DCT butterfly

2 years agofinallygot the DCT outer butterfly correct
Luke Kenneth Casson Leighton [Mon, 19 Jul 2021 10:48:45 +0000 (11:48 +0100)]
finallygot the DCT outer butterfly correct

2 years agogot cos intermediate working on iterative dct
Luke Kenneth Casson Leighton [Sun, 18 Jul 2021 20:29:36 +0000 (21:29 +0100)]
got cos intermediate working on iterative dct

2 years agoexperimenting to create iterative version of dct
Luke Kenneth Casson Leighton [Sun, 18 Jul 2021 16:24:28 +0000 (17:24 +0100)]
experimenting to create iterative version of dct

2 years agouse lists rather than list incomprehension
Luke Kenneth Casson Leighton [Sun, 18 Jul 2021 10:09:29 +0000 (11:09 +0100)]
use lists rather than list incomprehension

2 years agoprint out some debug statements in fastdctlee
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 17:03:30 +0000 (18:03 +0100)]
print out some debug statements in fastdctlee

2 years agowhitespace
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 16:07:29 +0000 (17:07 +0100)]
whitespace

2 years agoadd naive dct, remove fft variant
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 16:06:38 +0000 (17:06 +0100)]
add naive dct, remove fft variant

2 years agoadd nayuki dct
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 15:29:11 +0000 (16:29 +0100)]
add nayuki dct

2 years agoworking RADIX-2 FFT with bit-reversed LD/ST
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 13:59:55 +0000 (14:59 +0100)]
working RADIX-2 FFT with bit-reversed LD/ST

2 years agoadd FP LOAD bit-reversed operations to ISACaller simulator
Luke Kenneth Casson Leighton [Sat, 17 Jul 2021 12:07:40 +0000 (13:07 +0100)]
add FP LOAD bit-reversed operations to ISACaller simulator

2 years agomake a test for if size of FFT is less than 8, if so call a separate function
Luke Kenneth Casson Leighton [Fri, 16 Jul 2021 19:03:17 +0000 (20:03 +0100)]
make a test for if size of FFT is less than 8, if so call a separate function
idea is to replace that function with assembler

2 years agoadd fsins and fcoss to simulator
Luke Kenneth Casson Leighton [Fri, 16 Jul 2021 17:15:31 +0000 (18:15 +0100)]
add fsins and fcoss to simulator
WARNING: THESE ARE **NOT** APPROVED BY OPF ISA WG, CONSIDER TO BE DRAFT
in particular, they have had to be added to minor opcode 59 (alongside
fcfids) because there is not enough space to add them to "sandbox" 22

2 years agocode clean-up, simplify, use float not double
Luke Kenneth Casson Leighton [Fri, 16 Jul 2021 16:23:26 +0000 (17:23 +0100)]
code clean-up, simplify, use float not double

2 years agoadd fft makefile
Luke Kenneth Casson Leighton [Fri, 16 Jul 2021 16:14:06 +0000 (17:14 +0100)]
add fft makefile

2 years agoadd nayuki project reference code
Luke Kenneth Casson Leighton [Fri, 16 Jul 2021 15:59:41 +0000 (16:59 +0100)]
add nayuki project reference code
https://www.nayuki.io/page/free-small-fft-in-multiple-languages

2 years agouse coincidence of svremap "persistence" to remove one more instruction
Luke Kenneth Casson Leighton [Thu, 15 Jul 2021 18:07:38 +0000 (19:07 +0100)]
use coincidence of svremap "persistence" to remove one more instruction
from FFT example

2 years agoenable use of svremap "persist" mode, remove 4 instructions from FFT example
Luke Kenneth Casson Leighton [Thu, 15 Jul 2021 17:58:34 +0000 (18:58 +0100)]
enable use of svremap "persist" mode, remove 4 instructions from FFT example

2 years agostop using MSR vfirst bit, move to SVSTATE bit 63 instead
Luke Kenneth Casson Leighton [Thu, 15 Jul 2021 17:49:45 +0000 (18:49 +0100)]
stop using MSR vfirst bit, move to SVSTATE bit 63 instead

2 years agoadd extra "persistence" bit to svremap instruction
Luke Kenneth Casson Leighton [Thu, 15 Jul 2021 17:44:13 +0000 (18:44 +0100)]
add extra "persistence" bit to svremap instruction

2 years agobig intrusive update: merge SVREMAP with SVSTATE, remove SVREMAP
Luke Kenneth Casson Leighton [Thu, 15 Jul 2021 12:51:08 +0000 (13:51 +0100)]
big intrusive update: merge SVREMAP with SVSTATE, remove SVREMAP
this also involved creating an SVP64State class similar to the REMAPP
class (now removed).
unit tests had to be altered to the new API

2 years agouse fmadds and fmsubs in complex fft example
Luke Kenneth Casson Leighton [Wed, 14 Jul 2021 20:37:38 +0000 (21:37 +0100)]
use fmadds and fmsubs in complex fft example
reduces inner loop instruction count by 2