VMSBC.VV

RISC-V VMSBC.VV Instruction Details

Instruction ManualR-type

Compute element-wise subtract borrow-out and write the Boolean result to mask destination vd.

Instruction Syntax

vmsbc.vv vd, vs2, vs1
Operand Breakdown
Destination rd: register receiving the operation result.
Source rs1: register holding the first operand.
Source rs2: register holding the second operand.
VVector IntegerCarry/Borrow

Instruction Behavior

VMSBC.VV is a RISC-V V vector subtract borrow-out instruction. It does not write the integer sum or difference; it writes each element's borrow-out as a destination mask bit. The form without the m suffix has no borrow input and no ordinary execution-mask operand. The destination is a mask register, not an ordinary SEW-width integer result.

Quick Understanding & Search Notes

VMSBC.VV generates a borrow mask; in m forms, v0 is the carry/borrow input, not an ordinary execution mask.

Destination vd holds a one-bit mask result, one bit per element.
Forms without the m suffix do not read v0 as carry/borrow input.
Pair with VADC/VSBC for multiword add/subtract.

Common Usage Scenarios

Multi-Precision Sub

Understand this scenario with real code like «vmsbc.vv v1, v2, v3».

BigInt

Understand this scenario with real code like «vmsbc.vv v1, v2, v3».

Pre-Use Checklist

Syntax Check
  • Confirm the current instruction format is R-type.
  • Confirm the operand order matches the example.
Semantic Check
  • Ensure the destination register usage is compatible with the calling convention.
  • Confirm this is not the lower-level form of a pseudo-instruction expansion.

Pitfalls / Common Confusions

Borrow=1 if pre-truncation diff negative
No borrow-in in the non-m form

FAQ

Does VMSBC.VV write the add/subtract result?

No. It writes only carry or borrow mask bits; data results come from instructions such as VADC/VSBC.