Home/Instructions/VMSBC-VXM
VMSBC.VXM

RISC-V VMSBC.VXM Instruction Details

Instruction ManualR-type

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

Instruction Syntax

vmsbc.vxm vd, vs2, rs1, v0.t
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.VXM 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 m-suffixed form uses v0.mask[i] as carry/borrow input. The destination is a mask register, not an ordinary SEW-width integer result.

Quick Understanding & Search Notes

VMSBC.VXM 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.
For m-suffixed forms, v0.mask[i] is an arithmetic input; the instruction is not using v0 to filter executed elements.
Pair with VADC/VSBC for multiword add/subtract.

Common Usage Scenarios

Multi-Precision Sub

Understand this scenario with real code like «vmsbc.vxm v1, v2, a1, v0.t».

BigInt

Understand this scenario with real code like «vmsbc.vxm v1, v2, a1, v0.t».

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
with borrow-in
The m-suffixed form operates on all body elements; v0 is carry/borrow input

FAQ

Does VMSBC.VXM write the add/subtract result?

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