From f1e73161d7283a5e7ba25a41f7781f285984f30f Mon Sep 17 00:00:00 2001 From: lkcl Date: Fri, 7 Feb 2020 16:41:11 +0000 Subject: [PATCH] --- 3d_gpu/architecture/dynamic_simd/shift.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 3d_gpu/architecture/dynamic_simd/shift.mdwn diff --git a/3d_gpu/architecture/dynamic_simd/shift.mdwn b/3d_gpu/architecture/dynamic_simd/shift.mdwn new file mode 100644 index 000000000..83ca7d399 --- /dev/null +++ b/3d_gpu/architecture/dynamic_simd/shift.mdwn @@ -0,0 +1,12 @@ +# Dynamic Partitioned Shift + +This is almost as complex as multiplication, except there is a trick that can be deployed. In the partitioned multiplier, it is necessary to compute a full NxN matrix of partial multiplication results, then perform a cascade of adds, using PartitionedAdd to "automatically" break them down into segments. + +Partitioned Shifting will also require to have an NxN matrix, however it is slightly different. first, define the following: + + a0 = a[7..0], a1 = a[15..8], .... + b0 = b[7..0], b1 = b[15..8], .... + +then, we compute the following matrix: + + a0 << b0 a1 << b0 a2 << b0 a3 << b0 -- 2.30.2