Home/Instructions/VSLIDEDOWN-VX
VSLIDEDOWN.VX

RISC-V VSLIDEDOWN.VX Instruction Details

Instruction ManualR-type

Slide vector elements toward lower indexes.

Instruction Syntax

vslidedown.vx vd, vs2, rs1, vm
Operand Breakdown
Destination rd: register receiving the operation result.
Source rs1: register holding the first operand.
Source rs2: register holding the second operand.
VVector PermutationSlide

Instruction Behavior

VSLIDEDOWN.VX moves vs2 elements by offset x[rs1] toward lower indexes into vd. A source index outside VLMAX writes zero to the destination element.

Quick Understanding & Search Notes

VSLIDEDOWN.VX moves element positions within a vector register, useful for windows, shift-register patterns, and boundary insertion.

VSLIDEDOWN reads from higher-numbered source elements: vd[i] = vs2[i+OFFSET].
A source index beyond VLMAX produces zero.
The instruction may be masked; inactive and tail elements follow current policies.

Common Usage Scenarios

Data Shift

Understand this scenario with real code like «vslidedown.vx v8, v12, x5, v0.t».

Convolution

Understand this scenario with real code like «vslidedown.vx v8, v12, x5, v0.t».

Shift Register

Understand this scenario with real code like «vslidedown.vx v8, v12, x5, 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

OFFSET comes from x[rs1]; when XLEN>SEW it is not truncated to SEW.
When i+OFFSET >= VLMAX, the result element is zero.
Unlike vslideup, vslidedown has no destination/source non-overlap restriction.

FAQ

Is VSLIDEDOWN.VX a memory move?

No. It moves data among vector-register elements and does not access memory.