From 457e92d0de6138a33cb8a8ce31c6646958e43026 Mon Sep 17 00:00:00 2001 From: Nicolas Brunie Date: Wed, 25 Sep 2024 19:36:52 -0700 Subject: [PATCH] [vector crypto] Clarifying mandate for vector register index alignment to LMUL/EMUL --- src/vector-crypto.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vector-crypto.adoc b/src/vector-crypto.adoc index 8c422e1c7..99588da6b 100644 --- a/src/vector-crypto.adoc +++ b/src/vector-crypto.adoc @@ -269,6 +269,17 @@ Element Group Size (`EGS`). LMUL constraints:: For element-group instructions, `LMUL`*`VLEN` must always be at least as large as `EGW`, otherwise an _illegal instruction exception_ is raised, even if `vl`=0. ++ +A *Vector Element Group* operand or destination sets `EMUL = LMUL`. ++ +A *Scalar Element Group* operand or destination sets `EMUL = ceil(EGW / VLEN)`. ++ +The standard RISC-V Vector mandates on vector register group indices alignment to `EMUL` apply: operand or destination register indices must be aligned to `EMUL`, all other non-aligned cases are __reserved__. ++ +[NOTE] +==== +These `EMUL` alignement constraints allow scalar element group operands to be allocated to any vector register group (without need to be aligned to `LMUL`) for any implementation with `VLEN >= EGW`. +==== [%autowidth] [%header,cols="4,2,2"]