+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.
+