(no commit message)
authorlkcl <lkcl@web>
Tue, 19 Jan 2021 14:47:22 +0000 (14:47 +0000)
committerIkiWiki <ikiwiki.info>
Tue, 19 Jan 2021 14:47:22 +0000 (14:47 +0000)
openpower/sv/remap.mdwn

index 83509c18e02b5b9be4d9b1e4c253d8ddcf1d56bb..69d5295c5403e53a135294e49509e681f630d6a3 100644 (file)
@@ -172,7 +172,13 @@ It should be clear that a 4x4 by 4x4 Matrix Multiply, being effectively the same
 
 # SUBVL Remap
 
-Remapping even of SUBVL (vec2/3/4) elements is permitted, as if the sub-vectir elements were simply part of the main VL loop.  This is the *complete opposite* of predication which **only** applies to the whole vec2/3/4.
+Remapping even of SUBVL (vec2/3/4) elements is permitted, as if the sub-vectir elements were simply part of the main VL loop.  This is the *complete opposite* of predication which **only** applies to the whole vec2/3/4.  In pseudocode this would be:
+
+      for (i = 0; i < VL; i++)
+        if (predval & 1<<i) # apply to VL not SUBVL
+          for (j = 0; j < SUBVL; j++)
+             id = i*SUBVL + j # not, "id=i".
+             ireg[RT+remap1(id)] ...
 
 The reason for allowing SUBVL Remaps is that some regular patterns using Swizzle which would otherwise require multiple explicit instructions with 12 bit swizzles encoded in them may be efficently encoded with Remap instead.  Not however that Swizzle is *still permitted to be applied*.