From: lkcl Date: Mon, 13 Jun 2022 16:58:36 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1807 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=27d002d56384eb72187e7e61729492940a2bbb5f;p=libreriscv.git --- diff --git a/openpower/sv/mv.swizzle.mdwn b/openpower/sv/mv.swizzle.mdwn index acf8ef1b5..958231ad5 100644 --- a/openpower/sv/mv.swizzle.mdwn +++ b/openpower/sv/mv.swizzle.mdwn @@ -100,7 +100,8 @@ an Exception or Interrupt may not occur during the pair of Moves. **SVP64 Vectorised** -Vectorised Swizzle may be considered to be an extended static predicate +Vectorised Swizzle may be considered to +contain an extended static predicate mask for subvectors (SUBVL=2/3/4). Due to the skipping caused by the static predication capability, the destination subvector length can be *different* from the source subvector @@ -127,7 +128,8 @@ Horizontal-First Mode: the Swizzle instruction requires that all Swizzled source elements be copied into intermediary buffers (in-flight Reservation Stations, pipeline registers) **before* being swapped and placed in - destinations. Strict Program Order is required in full. + destinations. In-place (RT=RA) is required to work correctly. + Strict Program Order is required in full. *Implementor's note: the cost of Vertical-First Mode in an Embedded design of storing four 64-bit in-flight elements may be considered @@ -168,14 +170,7 @@ source and destination subvector lengths, by exploiting redundancy in the Swizzle Immediate. With the Swizzles marking what goes into each destination position, the marker "0b001" may be used to indicate the end. If no marker is present then the destination subvector length -may be assimed to be 4. - -To determine the value to be copied from the source: - -``` -def get_src_from_dest(swiz, idx): - -``` +may be assumed to be 4. **Effect of Saturation on Vectorised Swizzle**