Does VOR.VV produce a vector mask?
No. VOR.VV writes ordinary vector elements; compare instructions produce mask results, and mask-register logic uses .mm instructions.
VOR.VV applies SEW-width integer bitwise OR to active RVV elements.
RISC-V VOR.VV uses OP-V encoding and computes vs2 | the second source for each active element, writing vd. The second source is the corresponding element of vector register vs1; with vm=0, v0.t controls participating elements.
Starts from OP-V encoding fields, then shows how VOR applies SEW-width bitwise OR to active elements and writes vd.
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. In ordinary masked forms, inactive and tail elements follow vtype.vma/vta and the result row does not invent a definite value; VADC/VMADC/VSBC/VMSBC execute every body element, with v0 bits used only as carry/borrow-in.
vor.vv uses OP-V encoding. The animation places fixed fields, register fields, vm, and the vs1 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 bitwise OR, mask control, and vd writeback. It does not model pipelines, caches, or timing.
VOR.VV is a V-extension single-width integer logical instruction: within vl, active elements compute vs2 | the second source, keep the SEW-bit result, and write ordinary vector register vd.
Syntax: vor.vv vd, vs2, vs1[, v0.t]; omit v0.t for vm=1, include it for vm=0. 32-bit OP-V: opcode=1010111, funct6=001010, funct3=000.
vd, vs2 and a vector second source are ordinary SEW/LMUL groups. Active elements compute vs2[i] | second source, not .mm mask logic. Same-width source/destination overlap is allowed; equal sources read equal initial values.
vs1 supplies the same-lane SEW-wide second OR source.
Group starts align to EMUL, with EMUL≤8; masked vd cannot contain v0. When v0 supplies the EEW=1 execution mask, it cannot also supply SEW source data.
Require V 1.0, enabled vector state and valid supported vtype. Active body satisfies vstart≤i<vl with mask enabled; prestart is unchanged and inactive/tail follow vma/vta. vstart≥vl (including vl=0) updates no destination elements. Masked vd cannot contain v0, which cannot supply both mask and data.
Assume enabled V/VS, valid m1, VLEN≥128, supported operand widths, vl=4, vstart=0, v0.mask[0..3]=1111 and initialized sources. a0=4, SEW=16, v8=[250,267,284,301], v12=[13,22,31,40] → v4=[255,287,287,301]. Bitwise OR keeps SEW bits. Inactive/tail follow policy without assumed zeroing.
Assume enabled V/VS, valid m1, VLEN≥128, supported operand widths, vl=4, vstart=0, v0.mask[0..3]=1111 and initialized sources. a0=4, SEW=16, v8=[250,267,284,301], v12=[13,22,31,40] → v4=[255,287,287,301]. Bitwise OR keeps SEW bits. Inactive/tail follow policy without assumed zeroing.
No. VOR.VV writes ordinary vector elements; compare instructions produce mask results, and mask-register logic uses .mm instructions.
The current vtype SEW determines element width; body elements satisfy vstart≤i<vl. Element width and execution range are different concepts.
Those elements do not execute this logical operation. The destination element follows the current mask policy, so the mnemonic does not imply a fixed zero result.