From: lkcl Date: Sun, 3 Apr 2022 15:36:54 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~2894 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4fe4dad4ea6288a55112a92de7be4d32939c95ae;p=libreriscv.git --- diff --git a/openpower/sv/normal.mdwn b/openpower/sv/normal.mdwn index 88db31a4e..f0619fcee 100644 --- a/openpower/sv/normal.mdwn +++ b/openpower/sv/normal.mdwn @@ -162,7 +162,7 @@ tests this may be insufficient. If that is the case, a vectorised crops (crand, cror) may be used, and ffirst applied to the crop instead of to the arithmetic vector. -One extremely important aspect of ffirst is: +Two extremely important aspects of ffirst are: * LDST ffirst may never set VL equal to zero. This because on the first element an exception must be raised "as normal". @@ -173,7 +173,12 @@ One extremely important aspect of ffirst is: vectorised operations are effectively `nops` which is *precisely the desired and intended behaviour*. -CR-based data-dependent first on the other hand MUST not truncate VL +The second crucial aspect, compared to LDST Ffirst: + +* LD/ST Failfirst may (beyond the initial first element + conditions) truncate VL for any architecturally + suitable reason. +* CR-based data-dependent first on the other hand MUST NOT truncate VL arbitrarily to a length decided by the hardware: VL MUST only be truncated based explicitly on whether a test fails. This because it is a precise test on which algorithms