From: lkcl Date: Tue, 14 Jun 2022 20:42:06 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1776 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e99424662b7cb5580b14863252fccc40f6d383a5;p=libreriscv.git --- diff --git a/openpower/sv/svp64_quirks.mdwn b/openpower/sv/svp64_quirks.mdwn index 3872e635b..1af27b60d 100644 --- a/openpower/sv/svp64_quirks.mdwn +++ b/openpower/sv/svp64_quirks.mdwn @@ -501,3 +501,13 @@ in Vertical-First Mode. This is conceptually quite easy to keep in mind that a Vertical-First instruction does one element at a time, and when SUBVL is set, that "element" in essence becomes a vec2/3/4. + +# Swizzle and Pack/Unpack + +These are both so weird it's best to just read the pages in full +and pay attention: [[sv/mv.swizzle]] and [[sv/mv.vec]]. +Swizzle Moves only engage with vec2/3/4, *reordering* the copying +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*.