From: lkcl Date: Sat, 19 Dec 2020 20:42:11 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~1166 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cfed5f15d401a8b29a5997e49ef24db0facf3eab;p=libreriscv.git --- diff --git a/openpower/sv/mv.vec.mdwn b/openpower/sv/mv.vec.mdwn index 82f55cd7d..0f035fb3f 100644 --- a/openpower/sv/mv.vec.mdwn +++ b/openpower/sv/mv.vec.mdwn @@ -29,6 +29,15 @@ mv.destvec (leaving out elwidths and chop): Note that these mv operations only become significant when elwidth is set on the vector to a small value. SUBVL=4, src elwidth=8, dest elwidth=32 for example. +intended to cover: + + rd = (rs >> 0 * 8) & (2^8 - 1) + rd+1 = (rs >> 1 * 8) & (2^8 - 1) + rd+2 = (rs >> 2 * 8) & (2^8 - 1) + rd+3 = (rs >> 3 * 8) & (2^8 - 1) + +and variants involving vec3 into 32 bit (4th byte set to zero) + ## Twin Predication, saturation, swizzle, and elwidth overrides Note that mv is a twin-predicated operation, and is swizzlable. This implies that from the vec2, vec3 or vec4, 1 to 8 bytes may be selected and re-ordered (XYZW), mixed with 0 and 1 constants, skipped by way of twin predicate pack and unpack, and a huge amount besides.