You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Looking at the lastest GitHub released spec, under "Vector Tail Agnostic and Vector Mask Agnostic vta and vma" there is this text:
The assembly syntax adds two mandatory flags to the `vsetvli` instruction
...followed by a table of the valid vta and vtm flags.
A first suggestion is to change "adds ... to" in the text above to "has ... in", as it's not apparent what is being added to.
A second suggestion is to add vsetivli to the sentence, presuming these flags are also mandatory for it.
Accompanying the above table is a note:
Prior to v0.9, when these flags were not specified on a vsetvli, they defaulted to mask-undisturbed/tail-undisturbed. The use of vsetvli without these flags is deprecated, however, and specifying a flag setting is now mandatory. The default should perhaps be tail-agnostic/mask-agnostic, so software has to specify when it cares about the non-participating elements, but given the historical meaning of the instruction prior to introduction of these flags, it was decided to always require them in future assembly code.
Are references to pre-ratified specifications of value in the ratified spec? Presuming not, a third suggestion is to remove this note.
Regardless, this note further confirms that the vta and vtm flags are required.
Unfortunately, some later examples of the use of vsetvli/vsetivli do not obviously include the mandatory flags. In (33.6):
vsetvli rd, rs1, vtypei # rd = new vl, rs1 = AVL, vtypei = new vtype setting
vsetivli rd, uimm, vtypei # rd = new vl, uimm = AVL, vtypei = new vtype setting
vsetvl rd, rs1, rs2 # rd = new vl, rs1 = AVL, rs2 = new vtype value
Thus, a final suggestion is to add some indication or immediate explanation that vtypei is a series of flags (not one operand as shown), including some mandatory flags. This explanation comes in a subsection about a page later after content about encodings and the vtype register layout.
The text was updated successfully, but these errors were encountered:
I haven't checked how broadly various tools have deprecated the old assembly syntax. I generally use LLVM's (integrated) assembler, modern versions of which error on the old syntax. So I'm OK with deleting the note.
In the quest for "one source of truth", I certainly hope the RISC-V Sail specification informs the content of the RISC-V Assembly Programmer's Manual, if it is not generated (or partly generated) from it. The Sail specification needs to retain its role as the canonical reference.
Looking at the lastest GitHub released spec, under "Vector Tail Agnostic and Vector Mask Agnostic
vta
andvma
" there is this text:...followed by a table of the valid
vta
andvtm
flags.A first suggestion is to change "adds ... to" in the text above to "has ... in", as it's not apparent what is being added to.
A second suggestion is to add
vsetivli
to the sentence, presuming these flags are also mandatory for it.Accompanying the above table is a note:
Are references to pre-ratified specifications of value in the ratified spec? Presuming not, a third suggestion is to remove this note.
Regardless, this note further confirms that the
vta
andvtm
flags are required.Unfortunately, some later examples of the use of
vsetvli
/vsetivli
do not obviously include the mandatory flags. In (33.6):Thus, a final suggestion is to add some indication or immediate explanation that
vtypei
is a series of flags (not one operand as shown), including some mandatory flags. This explanation comes in a subsection about a page later after content about encodings and thevtype
register layout.The text was updated successfully, but these errors were encountered: