Commonly-used patterns such as Matrix Multiply, DCT and FFT have
helper instruction options which make REMAP easier to use.
-There are three types of REMAP:
+There are four types of REMAP:
* **Matrix**, also known as 2D and 3D reshaping, can perform in-place
Matrix transpose and rotate.
Power-2 RADIX
* **Indexing**, for any general-purpose reordering, also includes
limited 2D reshaping.
+* **Parallel Reduction**, for scheduling a sequence of operations
+ in a Deterministic fashion, in a way that may be parallelised,
+ to reduce a Vector down to a single value.
Best implemented on top of a Multi-Issue Out-of-Order Micro-architecture,
REMAP Schedules are 100% Deterministic **including Indexing** and are
designed to be incorporated in between the Decode and Issue phases,
directly into Register Hazard Management.
+Parallel Reduction is unusual in that it requires a full vector array
+of results (not a scalar) and uses the rest of the result Vector for
+the purposes of storing intermediary results. *As these intermediary
+results are Deterministically computed they may be useful*.
+
# Basic principle
* normal vector element read/write of operands would be sequential