(no commit message)
authorlkcl <lkcl@web>
Wed, 6 Apr 2022 23:08:58 +0000 (00:08 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 6 Apr 2022 23:08:58 +0000 (00:08 +0100)
openpower/sv/branches.mdwn

index 82ca2ea2c3294c93f3192ab8dc9703c5abea3438..ee1344924296acd774abd8d9293b37af66e88f98 100644 (file)
@@ -729,3 +729,16 @@ it violates the fundamental principle of SVP64 which is that
 SVP64 looping is a thin wrapper around Scalar Instructions.
 The pseducode below is more an actual Vector ISA Branch and
 as such is not aporopriate:
+
+```
+for i in 0 to VL-1:
+    ...
+    ...
+    cond_ok <- BO[0] | ¬(CR[BI+32] ^  BO[1])
+    if ctr_ok & cond_ok then NIA <-iea LR[0:61] || 0b00
+# only at the end of looping is LK checked.
+# this completely violates the design principle of SVP64
+# and would actually need to be a separate (scalar)
+# instruction "set LR to CIA+4 but retrospectively"
+if LK then LR <-iea CIA + 4
+```