From cfa58d2ffb71f7bc78bb6bd7ce38faa5d0b0415a Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sat, 25 Sep 2021 14:14:16 +0100 Subject: [PATCH] add extra partition states for PartitionedSignal assign --- 3d_gpu/architecture/dynamic_simd/assign.mdwn | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/3d_gpu/architecture/dynamic_simd/assign.mdwn b/3d_gpu/architecture/dynamic_simd/assign.mdwn index cb41c6f5b..bec2ebdd9 100644 --- a/3d_gpu/architecture/dynamic_simd/assign.mdwn +++ b/3d_gpu/architecture/dynamic_simd/assign.mdwn @@ -32,10 +32,17 @@ then it matters what the partition settings are: | 000 | [A7A7A7A7] | [A7A7A7A7] | A7A6A5A4 | A3A2A1A0 | | 001 | [A7A7A7A7] | [A7A7]A7A6 | A5A4A3A2 | [A1A1]A1A0 | | 010 | [A7A7A7A7] | A7A6A5A4 | [A3A3A3A3] | A3A2A1A0 | +| 011 | [A7A7A7A7] | A7A6A5A4 | [A3A3]A3A2 | [A1A1]A1A0 | +| 100 | [A7A7]A7A6 | [A5A5A5A5] | [A5A5]A5A4 | A3A2A1A0 | +| 101 | [A7A7]A7A6 | [A5A5A5A5] | A5A4A3A2 | [A1A1]A1A0 | +| 110 | [A7A7]A7A6 | [A5A5]A5A4 | [A3A3A3A3] | A3A2A1A0 | | 111 | [A7A7]A7A6 | [A5A5]A5A4 | [A3A3]A3A2 | [A1A1]A1A0 | where square brackets are zero if A is unsigned, and contains -the specified bits if signed. +the specified bits if signed. Here, each partition copies the +smaller value (A) into the larger partition (B) then, depending +on whether A is signed or unsigned, sign-extends or zero-extends +*on a per-partition basis*. When the source A is scalar and is equal or larger than the destination it requires copying across multiple -- 2.30.2