Can VMV.V.I take v0.t?
No. VMV.V is an unmasked move form; use VMERGE when conditional selection under v0 is required.
Broadcasts 5-bit signed immediate to vd body elements as an unmasked vector move.
VMV.V.I is an unmasked immediate broadcast in RISC-V V. It sign-extends a signed 5-bit immediate (−16…15) to SEW and writes every body element vstart≤i<vl. Prestart is preserved and tails follow vtype.vta. The encoding fixes vm=1 and vs2=00000; v0.t is not accepted.
Starts from OP-V encoding fields, then shows how the unmasked VMV.V move form writes the current source value into vd body elements.
Require valid vtype, enabled VS, and supported SEW; VL=0 updates nothing, including tails. An ordinary masked vd cannot be v0; v0 cannot supply both mask and SEW data. Same-width source/destination overlap is legal. Steps are teaching stages, not processor cycles.
The teaching model fixes LMUL=m1 and vstart=0 and shows only body elements in the selected VL. It fixes VLEN=4096, VLMAX=4096/16=256, and assumes support for the selected SEW; equal vector sources require equal elements. VMV.V.I fixes vm=1 and vs2=0; every body element receives the sign-extended immediate. Tails follow vtype.vta; vma does not affect this unmasked form.
vmv.v.i uses OP-V encoding. The animation places fixed fields, register fields, vm, and the imm field in one encoding strip.
This animation shows only ISA-visible relationships from the official V extension: OP-V field decode, active-element reads, SEW-width integer broadcast, fixed unmasked move, and vd writeback. It does not model pipelines, caches, or timing.
VMV.V.I is an unmasked VMV.V immediate broadcast form that sign-extends the 5-bit signed immediate to SEW and broadcasts it to vd body elements. It performs no arithmetic and no memory access.
vd is a vector group at current LMUL; imm is a signed 5-bit immediate, −16…15, sign-extended to SEW.
32-bit OP-V: opcode=1010111, funct6=010111, funct3=011, vm=1, vs2=00000; no v0.t operand.
Every body element vstart≤i<vl receives the immediate; v0 bits and vma do not select body elements. Tails follow vta: preserve old values or permit all ones.
vstart≥vl (including vl=0) updates no destination elements; successful completion resets vstart to 0. 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.
Assume enabled V/VS, valid e8,m1, VLEN≥128, vl=4 and vstart=0; imm=−3 → v4[0..3]=[0xfd,0xfd,0xfd,0xfd]. Tails follow vta. Tails are not assumed zero; vl=0 leaves the whole destination unchanged.
Assume enabled V/VS, valid e8,m1, VLEN≥128, vl=4 and vstart=0; imm=−3 → v4[0..3]=[0xfd,0xfd,0xfd,0xfd]. Tails follow vta. Tails are not assumed zero; vl=0 leaves the whole destination unchanged.
No. VMV.V is an unmasked move form; use VMERGE when conditional selection under v0 is required.
No. It only broadcasts bit patterns through registers and current body elements.