Does VMV2R.V copy only current vl elements?
No. A whole-register move copies the complete vector-register group, not elements selected by current vl or SEW.
Copy the complete bit contents of 2 consecutive complete vector registers, without element selection by current vl, SEW, or v0.t.
VMV2R.V is a RISC-V V whole-register move instruction. With NREG=2, it copies complete bit contents from the vector-register group starting at vs2 to the group starting at vd; the copy is for compiler vector-register shuffling without needing to know or change current vl.
Decode the OP-V whole-register move fields, then copy 2 complete vector registers; current vl and v0.t do not limit the copy range, while SEW is used only to calculate evl.
EEW=SEW=32 and EMUL=NREG=2, so evl=2*256/32=16. vl does not limit the copy; vstart >= evl is reserved and is not presented as an executable copy.
Whole-register moves use the OPIVI encoding form. The animation places fixed fields, the complete simm[4:0] immediate, the source register group, and the destination register group in one encoding strip.
This animation shows only ISA-visible relationships from the official V extension: OP-V field decode, NREG=2 register-group selection, complete register-content copying, and vd writeback. It does not filter by vl, SEW, or v0.t and does not model pipelines, caches, or timing.
VMV2R.V copies the complete bit contents of a whole register group. It is not the same as a VMV.V.V body-element move; vl, SEW, and v0.t do not limit the copy range.
vd and vs2 start groups of 2 consecutive vector registers, aligned to 2 without passing v31.
32-bit OP-V: opcode=1010111, funct6=100111, funct3=011, vm=1; simm[4:0]=00001 is fixed; no v0.t operand.
vstart=0 copies all bits; nonzero vstart resumes from that element. evl=NREG*VLEN/SEW; vstart≥evl is reserved. vl does not limit copying; vd=vs2 leaves vector state unchanged.
Require V 1.0, valid supported vtype and non-Off mstatus.VS; with H and virtualization V=1, vsstatus.VS must also be non-Off. Successful completion resets vstart to 0.
Assume enabled V/VS, valid m1, VLEN≥128, initialized sources and vstart=0; NREG=2: v2=v16, v3=v17. Successful completion resets vstart to 0.
Assume enabled V/VS, valid m1, VLEN≥128, initialized sources and vstart=0; NREG=2: v2=v16, v3=v17. Successful completion resets vstart to 0.
Assume enabled V/VS, valid m1, VLEN≥128, initialized sources and vstart=0; NREG=2: v2=v16, v3=v17. Successful completion resets vstart to 0.
No. A whole-register move copies the complete vector-register group, not elements selected by current vl or SEW.
No. The syntax has no ordinary vm operand; it is encoded as an unmasked whole-register move.
vd and vs2 name starts of consecutive register groups; each start must be 2-aligned and the group must not pass v31.