From a201802bb89b0f9f6b1fddc949c087e79509f9f6 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sat, 30 Apr 2022 18:53:09 +0100 Subject: [PATCH] --- openpower/sv/svp64/appendix.mdwn | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/openpower/sv/svp64/appendix.mdwn b/openpower/sv/svp64/appendix.mdwn index d8638460f..37bfcd006 100644 --- a/openpower/sv/svp64/appendix.mdwn +++ b/openpower/sv/svp64/appendix.mdwn @@ -1053,7 +1053,7 @@ is best illustrated in pseudocode: src2 = get_polymorphed_reg(RC, srcwid, irs3) result = src1*src2 + src2 destmask = (2<>destwid) if (!RT.isvec) break @@ -1064,7 +1064,20 @@ is best illustrated in pseudocode: The significant part here is that the second half is stored starting not from RT+MAXVL at all: it is the *element* index -that is offset by MAXVL, both starting from RT. +that is offset by MAXVL, both halves actually starting from RT. +If VL is 3, MAXVL is 5, RT is 1, and dest elwidth is 32 then the elements +RT0 to RT2 are stored: + + 0..31 32..63 + r0 unchanged unchanged + r1 RT0.lo RT1.lo + r2 RT2.lo unchanged + r3 unchanged RT0.hi + r4 RT1.hi RT2.hi + r5 unchanged unchanged + +Additional DRAFT Scalar instructions in 3-in 2-out form +with an implicit 2nd destination: * [[isa/svfixedarith]] * [[isa/svfparith]] -- 2.30.2