Does vslideup.vi write zero below OFFSET?
No. The official slideup rule keeps those active destination elements unchanged from old vd; zero fill belongs to slidedown when the source index is greater than or equal to VLMAX.
Slide vector elements toward higher indexes.
VSLIDEUP.VI uses a zero-extended 5-bit uimm as OFFSET. Destinations below min(vl,max(vstart,OFFSET)) are unchanged; remaining active vd[i] take vs2[i-OFFSET]. Tails follow vta.
Starts from OP-V encoding fields, then shows how VSLIDEUP reads lower-numbered source elements by OFFSET; destination elements below OFFSET keep old vd values.
Require V 1.0, enabled vector state, and valid supported vtype/SEW. Fix LMUL=m1 and vstart=0; this teaching configuration has VLEN=VLMAX×SEW=256, at least 128 bits. Changing SEW/VLMAX switches configurations. Only body is shown; inactive/tail values follow vma/vta without definite values. VL=0 updates no destination elements, including tails. With masking, vd/vs2 cannot be v0. vd must not overlap vs2. Destinations below OFFSET and below vl keep their old values. Steps are teaching stages, not processor cycles.
The teaching model fixes LMUL=m1 and vstart=0 and shows only body elements in the selected VL. 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.
vslideup.vi uses OP-V encoding. The animation places fixed fields, register fields, vm, and the uimm field in one encoding strip.
This animation shows only ISA-visible relationships from the official V extension: OP-V field decode, active-element reads, element-index/packing/select/move rearrangement integer slide up, boundary/selection rules, and vd writeback. It does not model pipelines, caches, or timing.
vslideup.vi uses a 5-bit zero-extended immediate as OFFSET: for active element i, if i < OFFSET then vd[i] keeps its old value; otherwise vd[i] takes vs2[i-OFFSET].
vd/vs2 are SEW/LMUL vector groups with starts aligned to EMUL. The two groups must not overlap; overlap is reserved. uimm is a zero-extended 5-bit element offset, 0–31.
32-bit OP-V: funct6=001110 at bits31:26, vm at bit25, vs2 at bits24:20, uimm at bits19:15, funct3=011 at bits14:12, vd at bits11:7, opcode=1010111 at bits6:0.
Destinations i<min(vl,max(vstart,OFFSET)) remain unchanged; remaining active vd[i]=vs2[i-OFFSET]. This rearranges elements rather than shifting bits within each element.
Optional v0.t means vm=0; omission means vm=1. Masked vd cannot contain v0, which cannot supply both EEW=1 mask and SEW data. Prestart is unchanged; inactive/tail follow vma/vta, with the slideup region below both OFFSET and vl always unchanged.
Require V 1.0, enabled vector state and valid supported vtype/SEW. vstart>=vl (including vl=0) leaves all destination elements unchanged. Examples assume LMUL=m1, SEW=16, vl=8, vstart=0 and initialized sources, scalars and v0; animation stages are for teaching.
Understand this scenario with real code like «vslideup.vi v8, v12, 3, v0.t».
No. The official slideup rule keeps those active destination elements unchanged from old vd; zero fill belongs to slidedown when the source index is greater than or equal to VLMAX.
No. It rearranges elements within vector register groups and performs no memory load or store.