(no commit message)
authorlkcl <lkcl@web>
Tue, 22 Dec 2020 17:57:59 +0000 (17:57 +0000)
committerIkiWiki <ikiwiki.info>
Tue, 22 Dec 2020 17:57:59 +0000 (17:57 +0000)
openpower/sv/vector_ops.mdwn

index e9d52a745abcadbd766635361ee37ec849d2aabb..682b3973ba87cce9bb9a34658e5595659ef5f26b 100644 (file)
@@ -27,7 +27,33 @@ Based on RVV vmiota.  vmiota may be viewed as a cumulative variant of cntlz, whe
 
 These may all be viewed as suitable for fitting into a scalar bitmanip extension.
 
-## vmsbf
+## sbfm
+
+   sbfm RT, RA, RB!=0
+
+Example
+
+     7 6 5 4 3 2 1 0   Bit index
+
+     1 0 0 1 0 1 0 0   v3 contents
+                       vmsbf.m v2, v3
+     0 0 0 0 0 0 1 1   v2 contents
+
+     1 0 0 1 0 1 0 1   v3 contents
+                       vmsbf.m v2, v3
+     0 0 0 0 0 0 0 0   v2
+
+     0 0 0 0 0 0 0 0   v3 contents
+                       vmsbf.m v2, v3
+     1 1 1 1 1 1 1 1   v2
+
+     1 1 0 0 0 0 1 1   RB vcontents
+     1 0 0 1 0 1 0 0   v3 contents
+                       vmsbf.m v2, v3, v0.t
+     0 1 x x x x 1 1   v2 contents
+
+The vmsbf.m instruction takes a mask register as input and writes results to a mask register. The instruction writes a 1 to all active mask elements before the first source element that is a 1, then writes a 0 to that element and all following active elements. If there is no set bit in the source vector, then all active elements in the destination are written with a 1.
+
 
 ## vmsif