From: lkcl Date: Sat, 8 Feb 2020 12:57:47 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~3520 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5961e39304815ab586785e931bc4f0ededa61ff5;p=libreriscv.git --- diff --git a/3d_gpu/architecture/dynamic_simd/shift.mdwn b/3d_gpu/architecture/dynamic_simd/shift.mdwn index bd97bcbf2..4f8153479 100644 --- a/3d_gpu/architecture/dynamic_simd/shift.mdwn +++ b/3d_gpu/architecture/dynamic_simd/shift.mdwn @@ -32,3 +32,12 @@ input and a 4-way partition: out0 = p00[7..0] out1 = pmask[0] ? p01[7..0] : p00[15..8] +# Static Partitioned Shift + +Static shift is pretty straightforward: the input is the entire number +shifted, however clearly due to partitioning some of the bits need to +be masked out (to zero, or to 1 if it is an arithmetic shift right). +This can therefore use the class currently known as "MultiShiftRMerge" +or similar, which can merge in a 1 into the shifted data. Luckily +the amount to be 0'd/1'd is also statically computable: it is just that +the location *where* is dynamic, based on the partition location(s).