From: Luke Kenneth Casson Leighton Date: Sat, 8 Feb 2020 16:35:12 +0000 (+0000) Subject: update tables for dynamic shift X-Git-Tag: convert-csv-opcode-to-binary~3511 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=45429500320cbcedaaf421e631b227fd98d4aa71;p=libreriscv.git update tables for dynamic shift --- diff --git a/3d_gpu/architecture/dynamic_simd/shift.mdwn b/3d_gpu/architecture/dynamic_simd/shift.mdwn index 1d3dfcdb1..39820e449 100644 --- a/3d_gpu/architecture/dynamic_simd/shift.mdwn +++ b/3d_gpu/architecture/dynamic_simd/shift.mdwn @@ -38,15 +38,53 @@ Table based on partitions: p2p1p0 | o0 | o1 | o2 | o3 ++++++ | ++++++++ | ++++++++ | ++++++++ | ++ 0 0 0 | a0b0 | a1b0 | a2b0 | a3b0 -0 0 1 | eq0 | &(eq1-3) | 0 | 0 -0 1 0 | &(eq0-1) | 0 | &(eq2-3) | 0 -0 1 1 | eq0 | eq1 | &(eq2-3) | 0 -1 0 0 | &(eq0-2) | 0 | 0 | eq3 -1 0 1 | eq0 | &(eq1-2) | 0 | eq3 -1 1 0 | &(eq0-1) | 0 | eq2 | eq3 -1 1 1 | eq0 | eq1 | eq2 | eq3 +0 0 1 | a0b0 | a1b1 | a2b1 | a3b1 +0 1 0 | a0b0 | a1b0 | a2b2 | a3b2 +0 1 1 | a0b0 | a1b1 | a2b2 | a3b2 +1 0 0 | a0b0 | a1b0 | a2b0 | a3b3 +1 0 1 | a0b0 | a1b1 | a2b1 | a3b3 +1 1 0 | a0b0 | a1b0 | a2b2 | a3b3 +1 1 1 | a0b0 | a1b1 | a2b2 | a3b3 """]] +Therefore, the actual output for o1 looks something like this: + + p2p1p0 : o1 + 0 0 0 : a0b0[15:8] | a1b0[7:0] + 0 0 1 | a0b0[15:8] | a1b1[7:0] + 0 1 0 | a0b0[15:8] | a1b0[7:0] + 0 1 1 | a0b0[15:8] | a1b1[7:0] + 1 0 0 | a0b0[15:8] | a1b0[7:0] + 1 0 1 | a0b0[15:8] | a1b1[7:0] + 1 1 0 | a0b0[15:8] | a1b0[7:0] + 1 1 1 | a0b0[15:8] | a1b1[7:0] + +For o2: + + p2p1p0 : o2 + 0 0 0 | a0b0[23:16] | a1b0[15:8] | a2b0 + 0 0 1 | a0b0[23:16] | a1b1[15:8] | a2b1 + 0 1 0 | a0b0[23:16] | a1b0[15:8] | a2b2 + 0 1 1 | a0b0[23:16] | a1b1[15:8] | a2b2 + 1 0 0 | a0b0[23:16] | a1b0[15:8] | a2b0 + 1 0 1 | a0b0[23:16] | a1b1[15:8] | a2b1 + 1 1 0 | a0b0[23:16] | a1b0[15:8] | a2b2 + 1 1 1 | a0b0[23:16] | a1b1[15:8] | a2b2 + +For o3: + + p2p1p0 | o3 + 0 0 0 | a0b0[31:24] | a1b0[23:16] | a2b0[15:8] | a3b0 + 0 0 1 | a0b0[31:24] | a1b1[23:16] | a2b1[15:8] | a3b1 + 0 1 0 | a0b0[31:24] | a1b0[23:16] | a2b2[15:8] | a3b2 + 0 1 1 | a0b0[31:24] | a1b1[23:16] | a2b2[15:8] | a3b2 + 1 0 0 | a0b0[31:24] | a1b0[23:16] | a2b0[15:8] | a3b3 + 1 0 1 | a0b0[31:24] | a1b1[23:16] | a2b1[15:8] | a3b3 + 1 1 0 | a0b0[31:24] | a1b0[23:16] | a2b2[15:8] | a3b3 + 1 1 1 | a0b0[31:24] | a1b1[23:16] | a2b2[15:8] | a3b3 + +Where for o0 the output is simple a0b0 for all partition permutations. + # Static Partitioned Shift Static shift is pretty straightforward: the input is the entire number