[[!inline raw="yes" pages="simple_v_extension/pred_table" ]]
[[!inline raw="yes" pages="simple_v_extension/get_pred_value" ]]
+## Swizzle Table <a name="swizzle_table></a>
+
+The swizzle table is a key-value store that indicates (if a given
+register is used, and SUBVL is 2, 3 or 4) that the sub-elements are to
+be re-ordered according to the indices in the Swizzle format.
+
+Source vectors are free to have the swizzle indices point to the same
+sub-vector element. However when using swizzling on destination vectors,
+the swizzle **must** be a permutation (no two swizzle indices point to
+the same sub-element). An illegal instruction exception must be raised
+if this occurs.
+
+[[!inline raw="yes" pages="simple_v_extension/swizzle_table_format" ]]
+
+For more information on swizzling, see the Khronos wiki page
+<https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Swizzling>
+
## Fail-on-First Mode <a name="ffirst-mode"></a>
ffirst is a special data-dependent predicate mode. There are two
"""]]
When 16xil is 0b111, this is the "Extended" Format, using the >= 192-bit
-RISC-V ISA format. Note that the length is 80+16\*nnnnnn, not 192+
+RISC-V ISA format. Note that the length is 96+16\*nnnnnn, not 192+
| base+5 ... base+3 | base+1 | base | no. of bits |
| ------ ----------------- | | ---------------- | ------------- |
-| ..xxxx xxxxxxxxxxxxxxxx | | x111xxxxx1111111 | 80+16\*nnnnnn |
+| ..xxxx xxxxxxxxxxxxxxxx | | x111xxxxx1111111 | 96+16\*nnnnnn |
| {ops}{Pred}{Reg}{VL Block}| VBLOCK2 | VBLOCK Prefix | |
VBLOCK2 extends the VBLOCK fields: