From: lkcl Date: Tue, 14 Jun 2022 23:41:04 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1774 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c2550375e7dd0fe2707924e0ce2ca5bcc50c96e7;p=libreriscv.git --- diff --git a/openpower/sv/svp64_quirks.mdwn b/openpower/sv/svp64_quirks.mdwn index 5b157bf39..34920fdb4 100644 --- a/openpower/sv/svp64_quirks.mdwn +++ b/openpower/sv/svp64_quirks.mdwn @@ -512,3 +512,13 @@ based on an immediate supplied by the instruction. The fun comes when Pack/Unpack are enabled, and it is really important to be aware how the Arrays of vec2/3/4 become re-ordered *and swizzled at the same time*. + +Pack/Unpack applies to +[[sv/mv.vec]] as well however the uniform relationship and +the fact that the source and destination subvector length +must be the same (vec2/3/4) makes things slightly easier to +understand. The main thing to keep in mind about Pack/Unpack +is that it engages a swap of the ordering of the VL-SUBVL +nested for-loops, in exactly the same way that Matrix REMAP +can do. When Pack or Unpack is enabled it is the SUBVL for-loop +thar becomes outermost.