(no commit message)
authorlkcl <lkcl@web>
Wed, 16 Dec 2020 13:04:26 +0000 (13:04 +0000)
committerIkiWiki <ikiwiki.info>
Wed, 16 Dec 2020 13:04:26 +0000 (13:04 +0000)
openpower/sv/svp_rewrite/svp64/discussion.mdwn

index 8034e1c3417f630c4e8d6412d805e40298b7a39a..aad08446f316d8ce33f40255d70ce7ac7544a8b2 100644 (file)
@@ -160,16 +160,22 @@ this means by default that 001 will always be in nonpredicated ops, which seems
 programmerjake:
 I picked 0001 to indicate ALWAYS since that matches with the other semantics: the LSB bit is invert-the-mask, and you can think about the table as-if it is really:
 
+this is the opposite of what feels natural.  inversion should switch *off* something.  also 000 is the canonical "this feature is off by default" number.
+
+the constant should be an immediate of all 1s (not r0), which is the natural way to think of "predication is off".
+
+i get the idea "r0 to be used therefore it is all zeros" but that makes 001 the "default", not 000.
+
 | Value | Mnemonic    |
 |-------|-------------|
-| 0000  | R0 (zero)   |
-| 0001  | ~R0 (~zero) |
-| 0010  | R3          |
-| 0011  | ~R3         |
-| 0100  | R10         |
-| 0101  | ~R10        |
-| 0110  | R30         |
-| 0111  | ~R30        |
+| 000  | R0 (zero)   set to all 1s, naturally means "no predication" |
+| 001  | ~R0 (~zero) |
+| 010  | R3          |
+| 011  | ~R3         |
+| 100  | R10         |
+| 101  | ~R10        |
+| 110  | R30         |
+| 111  | ~R30        |
 
 
 # CR Vectorisation