shuffle TODO
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 25 Jun 2019 07:48:35 +0000 (08:48 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 25 Jun 2019 07:48:35 +0000 (08:48 +0100)
simple_v_extension/sv_prefix_proposal.rst
simple_v_extension/sv_prefix_proposal/discussion.mdwn

index 327bf0c35d5c0fc350f5fd130ef2887a253c99ee..4cc779b992d711bf2d8eb1f9b388852f638ff503 100644 (file)
@@ -621,25 +621,31 @@ in STATE must be zero, and, in the UNIX Platform, an illegal exception
 Additional Instructions
 =======================
 
-Add instructions to convert between integer types.
-
-Add instructions to `swizzle`_ elements in sub-vectors. Note that the sub-vector
-lengths of the source and destination won't necessarily match.
+* Add instructions to convert between integer types.
+* Add instructions to `swizzle`_ elements in sub-vectors. Note that
+  the sub-vector lengths of the source and destination won't necessarily
+  match.
+* Add instructions to transpose (2-4)x(2-4) element matrices.
+* Add instructions to insert or extract a sub-vector from a vector, with
+  the index allowed to be both immediate and from a register (*immediate
+  can be covered by twin-predication, register might be, by virtue of
+  predicates being registers*)
+* Add a register gather instruction (aka MV.X: regfile[rd] =
+  regfile[regfile[rs1]])
+
+subelement swizzle example:
+
+    velswizzle x32, x64, SRCSUBVL=3, DESTSUBVL=4, ELTYPE=u8, elements=[0, 0, 2, 1]
 
 .. _swizzle: https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Swizzling
 
-Add instructions to transpose (2-4)x(2-4) element matrices.
-
-Add instructions to insert or extract a sub-vector from a vector, with
-the index allowed to be both immediate and from a register (*immediate
-can be covered by twin-predication, register might be, by virtue of
-predicates being registers*)
-
-Add a register gather instruction (aka MV.X: regfile[rd] =
-regfile[regfile[rs1]])
-
 questions
 =========
 
 Moved to the discussion page (link at top of this page)
 
+TODO
+====
+
+Work out a way to do sub-element swizzling.
+
index f8e05d0b44034130fc7e309a0685fba3523ff177..a8e0e739589fc6c73d98aae8753ee0dee2d8ba6e 100644 (file)
@@ -145,6 +145,12 @@ doesn't need to pessimize. Additionally, swizzles almost always have constant
 element selectors. MV.X is meant more as a last-resort instruction that is
 better than load/store, but worse than everything else.
 
+> ok, then we'll need a way to do that.  given that it needs to apply
+> to, well... everything, basically, i'm tempted to recommend it be
+> done as a CSR and/or as (another) table in VBLOCK.
+> the reason is, it's just too much to expect to massively duplicate
+> literally every single opcode in existence, adding swizzle.
+
 ----
 
 Is vectorised srcbase ok as a gather scatter and ok substitute for