(no commit message)
authorlkcl <lkcl@web>
Wed, 2 Oct 2019 11:16:27 +0000 (12:16 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 2 Oct 2019 11:16:27 +0000 (12:16 +0100)
simple_v_extension/specification/bitmanip.mdwn

index 1af47e749569d835a2627de248e8bcf27f166fec..fb47df6340bc0e6a5ffee62ef0a7363658e50df6 100644 (file)
@@ -95,6 +95,19 @@ This instruction is present in BitManip.
 
 finds the first bit set as an index.
 
+Pseudocode:
+
+
+    uint_xlen_t clz(uint_xlen_t rs1)
+    {
+        for (int count = 0; count < XLEN; count++)
+            if ((rs1 << count) >> (XLEN - 1))
+                return count;
+        return XLEN; // -1
+    }
+
+This is similar but not identical to BitManip "CLZ". CLZ returns XLEN when no bits are set, whereas RVV returns -1.
+
 ## sbf - set before first bit
 
 Sets all LSBs leading up to where an LSB in the src is set.  If the second
@@ -142,6 +155,8 @@ Pseudo-code:
 
 ## sif - set including first bit
 
+Similar to sbf except including the bit which ends a run.
+
      # Example
 
      7 6 5 4 3 2 1 0   Element number