Vector Segment Load/Store Encoding

271 views
Skip to first unread message

Tor Jeremiassen

unread,
Jun 2, 2022, 7:49:14 PM6/2/22
to RISC-V ISA Dev
Reading through the RiscV "V" Vector Extensions 1.0, I cannot find the encodings for the vector load/store segment instructions (unit stride, strided, indexed). All the other load instructions seem to be well described. Does anyone have any pointers?

Nick Knight

unread,
Jun 2, 2022, 7:55:26 PM6/2/22
to Tor Jeremiassen, RISC-V ISA Dev
Hi Tor,

Are you looking at Section 7.1 (p.29) of the ratified spec: https://github.com/riscv/riscv-v-spec/releases/download/v1.0/riscv-v-spec-1.0.pdf ?

A key detail is that "nf[2:0]" indicates the segment size.

Best,
Nick Knight

On Thu, Jun 2, 2022 at 4:49 PM 'Tor Jeremiassen' via RISC-V ISA Dev <isa...@groups.riscv.org> wrote:
Reading through the RiscV "V" Vector Extensions 1.0, I cannot find the encodings for the vector load/store segment instructions (unit stride, strided, indexed). All the other load instructions seem to be well described. Does anyone have any pointers?

--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/e21d2f04-3d0a-497f-be18-a761f137b7fdn%40groups.riscv.org.

Tor Jeremiassen

unread,
Jun 2, 2022, 8:00:54 PM6/2/22
to RISC-V ISA Dev, Nick Knight, RISC-V ISA Dev, Tor Jeremiassen
So the segmented load/stores differ from the other loads/stores only in nf[2:0] != 0? I.e., a segment load/store with segment size 1, is really just a regular load/store.

Nick Knight

unread,
Jun 2, 2022, 8:07:00 PM6/2/22
to Tor Jeremiassen, RISC-V ISA Dev
Yes, this is clarified in the last two paragraphs of Section 7.2:

The nf[2:0] field encodes the number of fields in each segment. For regular vector loads and stores, nf=0, indicating that a single value is moved between a vector register group and memory at each element position. Larger values in the nf field are used to access multiple contiguous fields within a segment as described below in Section Vector Load/Store Segment Instructions.

The nf[2:0] field also encodes the number of whole vector registers to transfer for the whole vector register load/store instructions.

Best,
Nick Knight
Reply all
Reply to author
Forward
0 new messages