Does VCOMPRESS.VM use v0 as an execution mask?
No. It is an unmasked instruction; the explicit vs1 operand is the selection mask.
Compress vs2 elements selected by mask vs1 into contiguous elements at vd start.
VCOMPRESS.VM selects active elements from vs2 according to mask vs1 and packs the selected elements contiguously starting at vd. It is an unmasked instruction and cannot be combined with an execution mask; the spec restricts source/destination register-group overlap to avoid overwriting unread source elements.
VCOMPRESS.VM uses vs1 as a selection mask to pack selected vs2 elements, preserving order and writing contiguously from vd[0].
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vmsgt.vi v0, v8, 10 vcompress.vm v12, v8, v0».
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vmsgt.vi v0, v8, 10 vcompress.vm v12, v8, v0».
No. It is an unmasked instruction; the explicit vs1 operand is the selection mask.