Conversation
| [source,sail] | ||
| -- | ||
| foreach (i from 0 to (num_elem - 1)) { | ||
| if mask[i] == bitone then { |
There was a problem hiding this comment.
Does this indicate that the instruction is always masked or am I misreading the SAIL code ?
There was a problem hiding this comment.
It follows the RVV sail code but omit the initialization code for mask/sew/lmul since these instructions are designed as standard vector arithmetic instruction and the full sail code is too long. If this has caused a misunderstanding, we need to find a way to resolve it.
src/zvabd.adoc
Outdated
| .... | ||
|
|
||
| Reserved Encodings:: | ||
| * `SEW` is 32 or 64. |
There was a problem hiding this comment.
I would define this with the reciprocal: "SEW is not 8 nor 16" (we never know which new SEW values may appear in the future)
There was a problem hiding this comment.
Minor nit: I would rephrase it as "neither 8 nor 16".
|
One question: why is there no vector-scalar / It seems the opcode are free, or at least riscv-opcodes does not complain when: Note that this would allow to define Andrew made an interesting suggestion: in all cases |
I fully agree with you, and the original proposal was also designed this way, but the feedback from ARC is completely the opposite. We must prove that .vx is widely used and has value, otherwise the encoding should be reserved. If .vx has only one usage, x0, then defining a vabs.v and placing it in the VXUNARY0 domain is a more encoding-space-efficient approach.
|
Update Zvabd extension implementation based on riscv/integer-vector-absolute-difference#1. Changes: - Rename widening instruction mnemonics `vwabdacc`/`vwabdaccu` to `vwabda`/`vwabdau`. - Add SEW validity checks to `vabd`/`vabdu` and `vwabda`/`vwabdau` to restrict operations to SEW=8 and SEW=16. - Move mnemonics and assembly mappings to follow the `execute` clause. - Remove enum with single variant. - Update ChangeLog.
Update Zvabd extension implementation based on riscv/integer-vector-absolute-difference#1. Changes: - Rename widening instruction mnemonics `vwabdacc`/`vwabdaccu` to `vwabda`/`vwabdau`. - Add SEW validity checks to `vabd`/`vabdu` and `vwabda`/`vwabdau` to restrict operations to SEW=8 and SEW=16. - Move mnemonics and assembly mappings to follow the `execute` clause. - Remove enum with single variant. - Update ChangeLog.
This creates a more obvious separation between instructions and is consistent with at least the Zvk, Zvbfmin, and Zvfbfwma docs.
Add page breaks between instructions.
It is the draft spec of Zvabd extension for integer vector absolute difference instructions.