From d5d17110f524a8cab198b16dbc6bd270e7ef2485 Mon Sep 17 00:00:00 2001 From: lkcl Date: Wed, 16 Dec 2020 13:04:26 +0000 Subject: [PATCH] --- .../sv/svp_rewrite/svp64/discussion.mdwn | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/openpower/sv/svp_rewrite/svp64/discussion.mdwn b/openpower/sv/svp_rewrite/svp64/discussion.mdwn index 8034e1c34..aad08446f 100644 --- a/openpower/sv/svp_rewrite/svp64/discussion.mdwn +++ b/openpower/sv/svp_rewrite/svp64/discussion.mdwn @@ -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 -- 2.30.2