* **FFT/DCT**, with full triple-loop in-place support: limited to
Power-2 RADIX
* **Indexing**, for any general-purpose reordering, also includes
- limited 2D reshaping. Currently
- under development.
+ limited 2D reshaping.
-# Principle
+# Basic principle
* normal vector element read/write of operands would be sequential
(0 1 2 3 ....)
otherwise usual `0..VL-1` hardware for-loop
* `svremap` to set which registers a given reordering is to apply to
(RA, RT etc)
-* `sv.instruction` where any Vectorised register marked by `svremap`
+* `sv.{instruction}` where any Vectorised register marked by `svremap`
will have its ordering REMAPPED according to the schedule set
by `svshape`.
a 5x4 result:
svshape 5, 4, 3, 0, 0
- svremap 31, 1, 2, 3, 0, 0, 0, 0
+ svremap 15, 1, 2, 3, 0, 0, 0, 0
sv.fmadds 0.v, 8.v, 16.v, 0.v
* svshape sets up the four SVSHAPE SPRS for a Matrix Schedule
-* svremap activates all five registers RA RB RC RT RS (31)
+* svremap activates four out of five registers RA RB RC RT RS (15)
* svremap requests:
- RA to use SVSHAPE1
- RB to use SVSHAPE2
- RC to use SVSHAPE3
- RT to use SVSHAPE0
- - RS to use SVSHAPE0
+ - RS Remapping to not be activated
* sv.fmadds has RT=0.v, RA=8.v, RB=16.v, RC=0.v
* With REMAP being active each register's element index is
*independently* transformed using the specified SHAPEs.