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

index 6a80ee3b87d8519693790cf69a78577c550d70c1..b00b85eea3c0103d823a9c8a06b5fd964eb08ff5 100644 (file)
@@ -18,7 +18,7 @@ Links:
 
 ## conflictd
 
-This is based on the AVX512 conflict detection instruction.  Internally the logic is used to detect address conflicts in LD/ST operations.  Two arrays of indices are given.
+This is based on the AVX512 conflict detection instruction.  Internally the logic is used to detect address conflicts in multi-issue LD/ST operations.  Two arrays of values are given: the indices are compared and duplicates reported in a triangular fashion
 
     input = [100, 100,   3, 100,   5, 100, 100,   3]
     conflict result = [
@@ -32,6 +32,13 @@ This is based on the AVX512 conflict detection instruction.  Internally the logi
          0b00000100     // 3 is present on #2
     ]
 
+Pseudocode:
+
+    for i in range(VL):
+        for j in range(1, i):
+            if src1[i] == src2[j]:
+                result[j] |= 1<<i
+
 ## iota
 
 Based on RVV vmiota.  vmiota may be viewed as a cumulative variant of cntlz, where instead of stopping at the first zero with a count to produce a single scalar result, the process continues on, producing another element at the next encounter of a 1.