| ------ | ------ | ------ | ------ | ------- | ------- | ------- | ------- |
| 0b00 | skip | offset | invxyz | permute | zdimsz | ydimsz | xdimsz |
| 0b01 | submode| offset | invxyz | submode2| rsvd | rsvd | xdimsz |
-| 0b00 | elwidth| offset | invxyz |0b110/0b111| SVGPR | ydimsz | xdimsz |
+| 0b00 | elwidth| offset |skip/invxy|0b110/0b111|SVGPR| ydimsz | xdimsz |
mode sets different behaviours (straight matrix multiply, FFT, DCT).
## Indexed Mode
Indexed Mode activates reading of the element indices from the GPR.
-In its simplest form (without elwidth overrides):
+In its simplest form (without elwidth overrides or other modes):
```
def index_remap(i):
- return GPR(SVSHAPE.SVGPR+i)
+ return GPR((SVSHAPE.SVGPR<<1)+i)
for i in 0..VL-1:
GPR(RT + indexed_remap(i) + SVSHAPE.offset) = ....
```
+Matrix-style reordering still applies to the indices, except limited
+to up to 2 Dimensions (X,Y). Ordering is therefore limited to (X,Y) or
+(Y,X). Only one dimension may optionally be skipped. Inversion of either
+X or Y or both is possible.