Mask elements
Each element index maps to one predicate bit; this instruction operates on mask bits, not SEW-wide data elements.
Vector mask XOR: vd.mask[i] = vs2.mask[i] ^ vs1.mask[i]
VMXOR.MM is an RVV vector mask XOR instruction. The `.mm` suffix means the sources and destination are mask-register operands; each mask element is one bit, and the instruction computes vd.mask[i] = vs2.mask[i] ^ vs1.mask[i] by element index. These instructions are always unmasked, vm=0 encodings are reserved, and tail elements are updated tail-agnostically.
Starts from V-extension encoding fields, then shows XOR mask-logical field decode, mask-bit reads, per-lane execution, and vd writeback.
This animation models only the ISA semantic relationship vd.mask[i] = vs2.mask[i] ^ vs1.mask[i]: read predicate bits from two mask registers, compute XOR per lane, then write the destination mask register.
VMXOR.MM is the vector mask XOR member of the RVV mask-register logical instructions, used for predicate composition. The `.mm` suffix means vd, vs2, and vs1 have mask-register semantics; each element is one bit, independent of the current data SEW.
When reading VMXOR.MM, focus on bit-by-bit predicate composition in mask registers. .mm: sources and destination are mask registers, operating on one predicate bit per element.
Each element index maps to one predicate bit; this instruction operates on mask bits, not SEW-wide data elements.
vd can be any mask register receiving the result mask, while vs2 and vs1 provide the two source masks combined bit by bit at the same element index.
Mask logical instructions are always unmasked; only a result written or moved into v0 is later consumed through v0.t by ordinary masked vector instructions.
Understand this scenario with real code like «vmxor.mm v1, v2, v3».
Understand this scenario with real code like «vmxor.mm v1, v2, v3».
Understand this scenario with real code like «vmxor.mm v1, v2, v3».
It means a mask-mask form: vd, vs2, and vs1 are interpreted as mask registers, operating on one predicate bit per element.
The formula is vd.mask[i] = vs2.mask[i] ^ vs1.mask[i].
No. Vector mask logical instructions are always unmasked and vm=0 encodings are reserved; vd can be any mask register. Only a result written or moved into v0 is later consumed through v0.t by ordinary masked vector instructions.
It means the two source masks differ at that lane: one is 1 and the other is 0.