Skip to content

Commit edcbee0

Browse files
Update v-st-ext.adoc
Misc. small syntax corrections & rephrasing according to the feedbacks. Signed-off-by: DmitryUtyansky <118922093+DmitryUtyansky@users.noreply.github.com>
1 parent 73ea9d1 commit edcbee0

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/v-st-ext.adoc

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ Each hart supporting a vector extension defines two parameters:
2121

2222
. [#norm:elen]#The maximum size in bits of a vector element that any operation can produce or consume, _ELEN_ {ge} 8, which
2323
must be a power of 2.#
24-
. [#norm:vlen]#The number of bits in a single vector register, _VLEN_, which must be a power of 2, and must be no greater than 2^16^.#
24+
. [#norm:vlen]#The number of bits in a single vector register, _VLEN_ {ge} 8, which must be a power of 2, and must be no greater than 2^16^.#
2525

2626
Standard vector extensions (<<sec-vector-extensions>>) and
2727
architecture profiles may set further constraints on _ELEN_ and _VLEN_.
2828

29-
NOTE: Future extensions may allow ELEN {gt} VLEN by holding one
29+
NOTE: Future extensions may allow ELEN > VLEN by holding one
3030
element using bits from multiple vector registers. The formulas in this
3131
specification have been updated to allow this. The changes only
32-
affect ELEN {gt} VLEN cases, when ELEN {le} VLEN nothing is changed.
32+
affect ELEN > VLEN cases, when ELEN {le} VLEN nothing is changed.
3333
E.g.: EMUL for "scalar in vector" inputs/outputs of reductions is now
3434
defined as ceil(EEW/VLEN), so it is still 1 (specifying a single register,
3535
as before) when EEW {le} VLEN. Element width for whole vector register
@@ -288,8 +288,7 @@ register-resident vectors.
288288
Implementations must provide fractional LMUL settings that allow the
289289
narrowest supported type to occupy a fraction of a vector register
290290
corresponding to the ratio of the narrowest supported type's width to
291-
that of the largest supported type's width or to the vector register length,
292-
if the latter is smaller than the largest supported type (ELEN/VLEN > 1).
291+
the smaller of VLEN and the largest supported type's width.
293292
In general, the requirement is to support LMUL {ge} SEW~MIN~/min(ELEN, VLEN),
294293
where SEW~MIN~ is the narrowest supported SEW value, ELEN is the widest
295294
supported SEW value and VLEN is the number of bits in a vector register.
@@ -1060,7 +1059,7 @@ Widened scalar values, e.g., input and output to a widening reduction
10601059
operation, are held in the first element of a vector register and
10611060
have EMUL=1.
10621061
If a vector extension supports EEW/VLEN > 1, EEW-wide widened scalar
1063-
values are held in a vector register group with EMUL = EEW/VLEN
1062+
values are held in a vector register group with EMUL = EEW/VLEN.
10641063

10651064
==== Vector Masking
10661065

@@ -2109,11 +2108,11 @@ The full set of EEW variants is provided so that the encoded EEW can be used
21092108
as a hint to indicate the destination register group will next be accessed
21102109
with this EEW, which aids implementations that rearrange data internally.
21112110

2112-
In vector extensions supporting ELEN/VLEN {gt} 1, element size can exceed
2111+
In vector extensions supporting ELEN/VLEN > 1, element size can exceed
21132112
the number of bits available in a vector register or a vector register
2114-
group. In that case whole vector register load instructions
2113+
group. In that case, the whole vector register load instructions
21152114
still operate on the specified number of vector register(s), using the
2116-
least significant bits of the element.
2115+
least-significant bits of the element.
21172116

21182117
The vector whole register store instructions are encoded similar to
21192118
unmasked unit-stride store of elements with EEW=8.
@@ -3936,7 +3935,7 @@ destination format is converted to the destination format's largest finite value
39363935
and a scalar held in element 0 of a vector register group, and perform a
39373936
reduction using some binary operator, to produce a scalar result in
39383937
element 0 of a vector register group.# [#norm:vreduction_scalar_disregard_LMUL]#The scalar input and output operands
3939-
are held in element 0 of a group with EMUL=ceil(EEW/VLEN) regardless of LMUL setting.#
3938+
are held in element 0 of a group with EMUL=ceil(EEW/VLEN), regardless of LMUL setting.#
39403939

39413940
[#norm:vreduction_vd_overlap_vs]#The destination vector register can overlap the source operands,
39423941
including the mask register.#
@@ -4566,7 +4565,7 @@ and `vmv.s.x` are reserved.#
45664565

45674566
The floating-point scalar read/write instructions transfer a single
45684567
value between a scalar `f` register and element 0 of a vector
4569-
register group with EMUL=ceil(EEW/VLEN). [#norm:vfmv-f-s_vfmv-s-f_ignoreLMUL]##The instructions ignore LMUL, EMUL is computed as ceil(EEW/VLEN).#
4568+
register group with EMUL=ceil(EEW/VLEN). [#norm:vfmv-f-s_vfmv-s-f_ignoreLMUL]##The instructions ignore LMUL; EMUL is computed as ceil(EEW/VLEN).#
45704569

45714570
----
45724571
vfmv.f.s rd, vs2 # f[rd] = vs2[0] (rs1=0)
@@ -4909,7 +4908,7 @@ e q r d c b v a # v11 destination after vrgather using viota.m under mask
49094908
[#norm:vmv-nr-r_op]#The `vmv<nr>r.v` instructions copy whole vector registers (i.e., all
49104909
VLEN bits) and can copy whole vector register groups. The `nr` value
49114910
in the opcode is the number of individual vector registers, NREG, to
4912-
copy. The instructions operate as if EEW=min(VLEN, SEW), EMUL = NREG, effective
4911+
copy. The instructions operate as if EEW=min(VLEN, SEW), EMUL = NREG, and effective
49134912
length `evl`= EMUL * VLEN/EEW.#
49144913

49154914
NOTE: These instructions are intended to aid compilers to shuffle

0 commit comments

Comments
 (0)