# TPU v4 TC 指令索引

当前登记 **573 个非 Noop descriptor 形式、798 条展开签名、598 个槽与助记符组合**。这些数字含不同槽、编码变体与别名，不等于独立助记符数量，也不是设备执行覆盖率。

## 如何阅读

表内操作数按源码顺序排列，用法为 `{ 槽: [@pN 或 @!pN] 助记符 操作数 }`。`s[0..31]` 等表示可选寄存器编号，`/` 表示类型或拼写的选择；这些记号是索引表示法，不是可直接粘贴的源码。多目的元组如 `(gmr0, gsfn0, mrf0)` 则是实际语法。

`iN/uN` 表示 N 位有符号/无符号数值类型，`f32` 表示 float32；非负十六进制数还可以表示该位宽的原始位型，`f32bits(...)` 直接给出 float32 位型。数值类型限定输入位宽，并不保证范围内每个值都满足某条指令的选择器、立即数拆分和整个指令包的资源条件。表中合并了同类型的编码候选，最终可编码性由汇编器检查。

`label` 表示源码标签；直接分支与 call 的 `.rel` 数值是相对当前指令包的位移，`.abs` 数值是 bundle PC。

地址的外层方括号、冒号和空间名是实际语法，内部圆括号用来分组类型，`[+ …]`、`[, sm=…]`、`[, ss=…]` 表示可选部分。允许零基址的向量存取可直接写数值偏移，如 `[vmem:0x40]`。操作数的数值单位沿用 ISA，不统一解释为字节。`vmem` 指 TC VMEM，`cmem` 指 Megacore Shared CMEM。

相同槽与助记符下不同签名分行显示；相同操作数类型的编码变体合并。所有具名参数都必须提供，允许换序。谓词前缀的范围为 `p0..p14`，不由表内其他谓词寄存器字段的位宽推导。`vm[0..31]` 只是 5-bit 目的字段的编码范围，真机只有 `vm0..vm7`；实际执行写入 `vm8..vm31` 的指令会使 TensorCore halt。共享通路、跨操作数字段相等关系以及 `.encoding` 约束仍按[格式参考](tpu_v4_tc.md)处理。

未登记的形式会被拒绝；尚不支持的 9 个形式见[未登记的形式](../design/assembly.md#未登记的形式)。

## 按槽查找

[s0](#s0) · [s1](#s1) · [va0](#va0) · [va1](#va1) · [vst](#vst) · [vld](#vld) · [cld](#cld) · [vx0](#vx0) · [vx1](#vx1) · [vr0](#vr0) · [vr1](#vr1) · [misc](#misc)

## s0

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `dma.general` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), stride_descriptor=([smem:(s[0..31] / u32)]), stride_count=(u2), src_flag=([sflag:(s[0..31])]), dst_flag=([sflag:(s[0..31])]), ici_dest=(s[0..31])` |
| `dma.general.trace` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), stride_descriptor=([smem:(s[0..31] / u32)]), stride_count=(u2), src_flag=([sflag:(s[0..31])]), dst_flag=([sflag:(s[0..31])]), ici_dest=(s[0..31])` |
| `dma.simple` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), dst_flag=([sflag:(s[0..31] / u32)])` |
| `dma.simple.trace` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), dst_flag=([sflag:(s[0..31] / u32)])` |
| `dma.strided` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), dst_stride=(s[0..31]), src_stride=(s[0..31]), elements_per_stride=(s[0..31]), dst_flag=([sflag:(s[0..31] / u32)])` |
| `dma.strided.trace` | `[(vmem / smem / imem / hbm / cmem / oq[0..31]):s[0..31]], [(vmem / smem / imem / hbm / cmem / memseti / memsetd):s[0..31]], length=(s[0..31] / u32), dst_stride=(s[0..31]), src_stride=(s[0..31]), elements_per_stride=(s[0..31]), dst_flag=([sflag:(s[0..31] / u32)])` |
| `por` | `p[0..31], p[0..14] / !p[0..14] / 1 / 0, p[0..14] / !p[0..14] / 1 / 0` |
| `sadd.s32` | `s[0..31], s[0..31] / i32, s[0..31]` |
| `sand.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |
| `sbr.abs` | `label / u16` |
| `sbr.ind` | `s[0..31]` |
| `sbr.rel` | `label / i16` |
| `sc.u32` | `p[0..31], s[0..31], s[0..31] / u32` |
| `scall.abs` | `s[0..31], label / u16` |
| `scall.ind` | `s[0..31], s[0..31]` |
| `scall.rel` | `s[0..31], label / i16` |
| `sclz.u32` | `s[0..31], s[0..31] / u32` |
| `scvt.f32.s32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `scvt.s32.f32` | `s[0..31], s[0..31] / i32` |
| `sdelay` | `u11` |
| `seq.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `seq.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sfence` | `无操作数` |
| `sge.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sge.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sgt.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sgt.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `shalt` | `无操作数` |
| `simm.s32` | `s[0..31], i32` |
| `sle.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sle.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `slt.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `slt.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `smax.f32` | `s[0..31], s[0..31], s[0..31] / f32` |
| `smin.f32` | `s[0..31], s[0..31], s[0..31] / f32` |
| `smov` | `s[0..31], s[0..31]` |
| `smul.f32` | `s[0..31], s[0..31] / f32, s[0..31]` |
| `smul.u32` | `s[0..31], s[0..31] / i32, s[0..31]` |
| `sne.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sne.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sor.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |
| `spop` | `s[0..31], v2sf` |
| `srdreg.gtchi` | `s[0..31]` |
| `srdreg.gtclo` | `s[0..31]` |
| `srdreg.lcchi` | `s[0..31]` |
| `srdreg.lcclo` | `s[0..31]` |
| `ssettag` | `s[0..31] / u32` |
| `sshll.u32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `sshra.s32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `sshrl.u32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `ssub.s32` | `s[0..31], s[0..31] / i32, s[0..31]` |
| `sweird.f32` | `p[0..31], s[0..31]` |
| `sxor.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |

## s1

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `dma.desc` | `[smem:(s[0..31] / u32)]` |
| `por` | `p[0..31], p[0..14] / !p[0..14] / 1 / 0, p[0..14] / !p[0..14] / 1 / 0` |
| `sadd.f32` | `s[0..31], s[0..31] / f32, s[0..31]` |
| `sadd.s32` | `s[0..31], s[0..31] / i32, s[0..31]` |
| `sand.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |
| `sc.u32` | `p[0..31], s[0..31], s[0..31] / u32` |
| `sclz.u32` | `s[0..31], s[0..31] / u32` |
| `scvt.f32.s32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `scvt.s32.f32` | `s[0..31], s[0..31] / i32` |
| `sdelay` | `u11` |
| `seq.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `seq.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sfence` | `无操作数` |
| `sge.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sge.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sgt.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sgt.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `shalt` | `无操作数` |
| `simm.s32` | `s[0..31], i32` |
| `sld` | `s[0..31], [smem:(s[0..31] / u32)]`<br>`s[0..31], [smem:(s[0..31] + (s[0..31] / u32))]` |
| `sle.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sle.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `slt.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `slt.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `smax.f32` | `s[0..31], s[0..31], s[0..31] / f32` |
| `smin.f32` | `s[0..31], s[0..31], s[0..31] / f32` |
| `smov` | `s[0..31], s[0..31]` |
| `sne.f32` | `p[0..31], s[0..31], s[0..31] / f32` |
| `sne.s32` | `p[0..31], s[0..31], s[0..31] / i32` |
| `sor.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |
| `spop` | `s[0..31], v2sf` |
| `srdreg.gtchi` | `s[0..31]` |
| `srdreg.gtclo` | `s[0..31]` |
| `srdreg.lcchi` | `s[0..31]` |
| `srdreg.lcclo` | `s[0..31]` |
| `ssettag` | `s[0..31] / u32` |
| `sshll.u32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `sshra.s32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `sshrl.u32` | `s[0..31], s[0..31], s[0..31] / u32` |
| `sst` | `[smem:(s[0..31] / u32)], s[0..31]` |
| `ssub.f32` | `s[0..31], s[0..31] / f32, s[0..31]` |
| `ssub.s32` | `s[0..31], s[0..31] / i32, s[0..31]` |
| `sweird.f32` | `p[0..31], s[0..31]` |
| `sxor.u32` | `s[0..31], s[0..31] / u32, s[0..31]` |

## va0

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `getrngseed` | `v[0..31]` |
| `setrngseed` | `v[0..31]` |
| `vadd.8x128.s32` | `v[0..31], v[0..31] / s[0..31] / i32, v[0..31]` |
| `vand.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vc.8x128.u32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vclamp.gez.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vclamps.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vclz` | `v[0..31], v[0..31]` |
| `vcvt.8x128.f32.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vcvt.8x128.s32.f32` | `v[0..31], v[0..31]` |
| `veq.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `veq.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vf32.e.s32` | `v[0..31], v[0..31]` |
| `vf32.f32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vf32.s.s32` | `v[0..31], v[0..31]` |
| `vge.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vge.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vgt.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vgt.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vimm.8x128.s32` | `v[0..31], i32` |
| `vlaneseq.8x128.u32` | `v[0..31]` |
| `vle.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vle.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vlmask` | `vm[0..31], v[0..31] / s[0..31] / u32` |
| `vlog2.8x128.f32` | `erf, v[0..31]` |
| `vlt.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vlt.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vmax.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vmin.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vmov.8x128` | `v[0..31], v[0..31] / s[0..31]` |
| `vmul.8x128.f32` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vne.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vne.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vor.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vpack.8x128.f32.f16` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vpackc.8x128.f32.f16` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vpcnt` | `v[0..31], v[0..31]` |
| `vpow2.8x128.f32` | `erf, v[0..31]` |
| `vpush.8x128` | `erf, v[0..31]` |
| `vrcp.8x128.f32` | `erf, v[0..31]` |
| `vrng.8x128.u32` | `v[0..31]` |
| `vrot.slane.down.8x128.u32` | `v[0..31], v[0..31]` |
| `vrsqrt.8x128.f32` | `erf, v[0..31]` |
| `vsel.8x128` | `v[0..31], vm0, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm1, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm2, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm3, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm4, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm5, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm6, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm7, v[0..31] / s[0..31] / u32, v[0..31]` |
| `vsmask` | `vm[0..31], v[0..31] / s[0..31] / u32` |
| `vsub.8x128.s32` | `v[0..31], v[0..31] / s[0..31] / i32, v[0..31]` |
| `vtanh.8x128.f32` | `erf, v[0..31]` |
| `vunpackl.8x128.f16.f32` | `v[0..31], v[0..31]` |
| `vunpacku.8x128.f16.f32` | `v[0..31], v[0..31]` |
| `vweird.8x128.f32` | `vm[0..31], v[0..31]` |
| `vxor.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |

## va1

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `getrngseed` | `v[0..31]` |
| `setrngseed` | `v[0..31]` |
| `vadd.8x128.f32` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vadd.8x128.s32` | `v[0..31], v[0..31] / s[0..31] / i32, v[0..31]` |
| `vand.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vc.8x128.u32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vclamp.gez.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vclamps.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vclz` | `v[0..31], v[0..31]` |
| `vcvt.8x128.f32.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vcvt.8x128.s32.f32` | `v[0..31], v[0..31]` |
| `veq.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `veq.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vf32.e.s32` | `v[0..31], v[0..31]` |
| `vf32.f32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vf32.s.s32` | `v[0..31], v[0..31]` |
| `vge.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vge.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vgt.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vgt.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vimm.8x128.s32` | `v[0..31], i32` |
| `vlaneseq.8x128.u32` | `v[0..31]` |
| `vle.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vle.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vlmask` | `vm[0..31], v[0..31] / s[0..31] / u32` |
| `vlog2.8x128.f32` | `erf, v[0..31]` |
| `vlt.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vlt.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vmax.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vmin.8x128.f32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vmov.8x128` | `v[0..31], v[0..31] / s[0..31]` |
| `vne.8x128.f32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / f32` |
| `vne.8x128.s32` | `vm[0..31], v[0..31], v[0..31] / s[0..31] / i32` |
| `vor.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |
| `vpack.8x128.f32.f16` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vpackc.8x128.f32.f16` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vpcnt` | `v[0..31], v[0..31]` |
| `vpow2.8x128.f32` | `erf, v[0..31]` |
| `vpush.8x128` | `erf, v[0..31]` |
| `vrcp.8x128.f32` | `erf, v[0..31]` |
| `vrng.8x128.u32` | `v[0..31]` |
| `vrot.slane.down.8x128.u32` | `v[0..31], v[0..31]` |
| `vrshra.8x128.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vrsqrt.8x128.f32` | `erf, v[0..31]` |
| `vsel.8x128` | `v[0..31], vm0, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm1, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm2, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm3, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm4, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm5, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm6, v[0..31] / s[0..31] / u32, v[0..31]`<br>`v[0..31], vm7, v[0..31] / s[0..31] / u32, v[0..31]` |
| `vshll.8x128.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vshra.8x128.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vshrl.8x128.s32` | `v[0..31], v[0..31], v[0..31] / s[0..31] / u32` |
| `vsmask` | `vm[0..31], v[0..31] / s[0..31] / u32` |
| `vsub.8x128.f32` | `v[0..31], v[0..31] / s[0..31] / f32, v[0..31]` |
| `vsub.8x128.s32` | `v[0..31], v[0..31] / s[0..31] / i32, v[0..31]` |
| `vtanh.8x128.f32` | `erf, v[0..31]` |
| `vunpackl.8x128.f16.f32` | `v[0..31], v[0..31]` |
| `vunpacku.8x128.f16.f32` | `v[0..31], v[0..31]` |
| `vweird.8x128.f32` | `vm[0..31], v[0..31]` |
| `vxor.8x128.u32` | `v[0..31], v[0..31] / s[0..31] / u32, v[0..31]` |

## vst

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `cst.8x128` | `[cmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], v[0..31]`<br>`[cmem:(0 / s[0..31] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], v[0..31]` |
| `vpush` | `v2sf, v[0..31]` |
| `vsetiar.lane` | `iar[0..1], v[0..31]` |
| `vsetiar.raw` | `iar[0..1], v[0..31]` |
| `vsetiar.sublane` | `iar[0..1], v[0..31]` |
| `vst.8x128` | `[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], v[0..31]`<br>`[vmem:(0 / s[0..31] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], v[0..31]` |
| `vst.iar.8x128` | `[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], v[0..31]` |
| `vst.iar.msk.8x128` | `[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm0, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm1, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm2, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm3, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm4, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm5, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm6, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], iar[0..1], vm7, v[0..31]` |
| `vst.msk.8x128` | `[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm0, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm1, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm2, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm3, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm4, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm5, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm6, v[0..31]`<br>`[vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])], vm7, v[0..31]` |

## vld

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `vld.8x128` | `v[0..31], [vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])]` |
| `vld.iar0.8x128` | `v[0..31], [vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])]` |
| `vld.iar1.8x128` | `v[0..31], [vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])]` |
| `vld.sshfl.8x128` | `v[0..31], [vmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)])], s[0..31] / u32` |

## cld

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `cld.8x128` | `crf, [cmem:(0 / s[0..31] [+ (u16)] [, sm=(s[0..31] / u16)] [, ss=(s[0..31] / u16)])]` |

## vx0

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `vadd.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vdwg.128x128.f16` | `gmr[0..3], gsfn[0..3]`<br>`gmr[0..3], gsft[0..3]` |
| `vmatmul.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.hi.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.hi.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.hi.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.hi.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.low.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.low.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.low.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.low.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.packed.8x128.f16` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.packed.dwg.8x128.f16` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.packed.msk.8x128.f16` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.packed.msk.dwg.8x128.f16` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatpush.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.byte.8x128.s8` | `gsfn[0..3], v[0..31]` |
| `vmatpush.byte.msk.8x128.s8` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.byte.xpose.8x128.s8` | `gsft[0..3], v[0..31]` |
| `vmatpush.byte.xpose.msk.8x128.s8` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.hi.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.hi.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.hi.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.hi.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.low.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.low.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.low.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.low.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.packed.8x128.f16` | `gsfn[0..3], v[0..31]` |
| `vmatpush.packed.msk.8x128.f16` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.packed.xpose.8x128.f16` | `gsft[0..3], v[0..31]` |
| `vmatpush.packed.xpose.msk.8x128.f16` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmax.index.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vperm.0.8x128` | `trf0, v[0..31]` |
| `vperm.0.packed.8x128` | `trf0, v[0..31]` |
| `vperm.1.8x128` | `trf1, v[0..31]` |
| `vperm.1.packed.8x128` | `trf1, v[0..31]` |
| `vperm.2.8x128` | `trf0, v[0..31]` |
| `vperm.2.packed.8x128` | `trf0, v[0..31]` |
| `vperm.3.8x128` | `trf1, v[0..31]` |
| `vperm.3.packed.8x128` | `trf1, v[0..31]` |
| `vrot.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsetperm.0.all.bytes.u32` | `pcr0, v[0..31]` |
| `vsetperm.0.all.u8` | `pcr0, v[0..31]` |
| `vsetperm.0.u8` | `pcr0, v[0..31]` |
| `vsetperm.1.all.bytes.u32` | `pcr1, v[0..31]` |
| `vsetperm.1.all.u8` | `pcr1, v[0..31]` |
| `vsetperm.1.u8` | `pcr1, v[0..31]` |
| `vsetperm.2.all.bytes.u32` | `pcr0, v[0..31]` |
| `vsetperm.2.all.u8` | `pcr0, v[0..31]` |
| `vsetperm.2.u8` | `pcr0, v[0..31]` |
| `vsetperm.3.all.bytes.u32` | `pcr1, v[0..31]` |
| `vsetperm.3.all.u8` | `pcr1, v[0..31]` |
| `vsetperm.3.u8` | `pcr1, v[0..31]` |
| `vsetspr.0.u1` | `spr0, v[0..31]` |
| `vsetspr.1.u1` | `spr1, v[0..31]` |
| `vsetspr.2.u1` | `spr0, v[0..31]` |
| `vsetspr.3.u1` | `spr1, v[0..31]` |
| `vsupp.0.8x128` | `trf0, v[0..31]` |
| `vsupp.1.8x128` | `trf1, v[0..31]` |
| `vsupp.2.8x128` | `trf0, v[0..31]` |
| `vsupp.3.8x128` | `trf1, v[0..31]` |
| `vsxpose.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |

## vx1

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `vadd.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vadd.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vadd.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vdwg.128x128.f16` | `gmr[0..3], gsfn[0..3]`<br>`gmr[0..3], gsft[0..3]` |
| `vmatmul.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.hi.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.hi.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.hi.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.hi.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.low.8x128.f32` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.low.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.low.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.low.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.msk.8x128.f32` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.msk.dwg.8x128.f32` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatmul.packed.8x128.f16` | `mrf0, v[0..31]`<br>`mrf1, v[0..31]`<br>`mrf2, v[0..31]`<br>`mrf3, v[0..31]` |
| `vmatmul.packed.dwg.8x128.f16` | `(gmr0, gsfn0, mrf0), v[0..31]`<br>`(gmr1, gsfn1, mrf1), v[0..31]`<br>`(gmr2, gsfn2, mrf2), v[0..31]`<br>`(gmr3, gsfn3, mrf3), v[0..31]`<br>`(gmr0, gsft0, mrf0), v[0..31]`<br>`(gmr1, gsft1, mrf1), v[0..31]`<br>`(gmr2, gsft2, mrf2), v[0..31]`<br>`(gmr3, gsft3, mrf3), v[0..31]` |
| `vmatmul.packed.msk.8x128.f16` | `mrf0, vm[0..7], v[0..31]`<br>`mrf1, vm[0..7], v[0..31]`<br>`mrf2, vm[0..7], v[0..31]`<br>`mrf3, vm[0..7], v[0..31]` |
| `vmatmul.packed.msk.dwg.8x128.f16` | `(gmr0, gsfn0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsfn1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsfn2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsfn3, mrf3), vm[0..7], v[0..31]`<br>`(gmr0, gsft0, mrf0), vm[0..7], v[0..31]`<br>`(gmr1, gsft1, mrf1), vm[0..7], v[0..31]`<br>`(gmr2, gsft2, mrf2), vm[0..7], v[0..31]`<br>`(gmr3, gsft3, mrf3), vm[0..7], v[0..31]` |
| `vmatpush.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.byte.8x128.s8` | `gsfn[0..3], v[0..31]` |
| `vmatpush.byte.msk.8x128.s8` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.byte.xpose.8x128.s8` | `gsft[0..3], v[0..31]` |
| `vmatpush.byte.xpose.msk.8x128.s8` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.hi.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.hi.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.hi.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.hi.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.low.8x128.f32` | `gsfn[0..3], v[0..31]` |
| `vmatpush.low.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.low.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.low.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.msk.8x128.f32` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.packed.8x128.f16` | `gsfn[0..3], v[0..31]` |
| `vmatpush.packed.msk.8x128.f16` | `gsfn[0..3], vm[0..7], v[0..31]` |
| `vmatpush.packed.xpose.8x128.f16` | `gsft[0..3], v[0..31]` |
| `vmatpush.packed.xpose.msk.8x128.f16` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmatpush.xpose.8x128.f32` | `gsft[0..3], v[0..31]` |
| `vmatpush.xpose.msk.8x128.f32` | `gsft[0..3], vm[0..7], v[0..31]` |
| `vmax.index.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.index.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmax.index.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmax.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmax.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.index.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmin.index.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.0.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.0.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.1.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.1.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.2.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.2.seg.perm.8x128.f32` | `trf0, v[0..31]` |
| `vmin.xlane.3.8x128.f32` | `trf1, v[0..31]` |
| `vmin.xlane.3.seg.perm.8x128.f32` | `trf1, v[0..31]` |
| `vperm.0.8x128` | `trf0, v[0..31]` |
| `vperm.0.packed.8x128` | `trf0, v[0..31]` |
| `vperm.1.8x128` | `trf1, v[0..31]` |
| `vperm.1.packed.8x128` | `trf1, v[0..31]` |
| `vperm.2.8x128` | `trf0, v[0..31]` |
| `vperm.2.packed.8x128` | `trf0, v[0..31]` |
| `vperm.3.8x128` | `trf1, v[0..31]` |
| `vperm.3.packed.8x128` | `trf1, v[0..31]` |
| `vrot.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vrot.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vrot.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsetperm.0.all.bytes.u32` | `pcr0, v[0..31]` |
| `vsetperm.0.all.u8` | `pcr0, v[0..31]` |
| `vsetperm.0.u8` | `pcr0, v[0..31]` |
| `vsetperm.1.all.bytes.u32` | `pcr1, v[0..31]` |
| `vsetperm.1.all.u8` | `pcr1, v[0..31]` |
| `vsetperm.1.u8` | `pcr1, v[0..31]` |
| `vsetperm.2.all.bytes.u32` | `pcr0, v[0..31]` |
| `vsetperm.2.all.u8` | `pcr0, v[0..31]` |
| `vsetperm.2.u8` | `pcr0, v[0..31]` |
| `vsetperm.3.all.bytes.u32` | `pcr1, v[0..31]` |
| `vsetperm.3.all.u8` | `pcr1, v[0..31]` |
| `vsetperm.3.u8` | `pcr1, v[0..31]` |
| `vsetspr.0.u1` | `spr0, v[0..31]` |
| `vsetspr.1.u1` | `spr1, v[0..31]` |
| `vsetspr.2.u1` | `spr0, v[0..31]` |
| `vsetspr.3.u1` | `spr1, v[0..31]` |
| `vsxpose.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.0.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.1.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.2.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vsxpose.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vsxpose.3.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.0.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.0.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.1.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.1.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.2.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.packed.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.start.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.2.start.end.8x128` | `trf0, v[0..31], s[0..31] / u16` |
| `vxpose.3.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.packed.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.start.8x128` | `trf1, v[0..31], s[0..31] / u16` |
| `vxpose.3.start.end.8x128` | `trf1, v[0..31], s[0..31] / u16` |

## vr0

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `vpop.8x128` | `v[0..31], erf`<br>`v[0..31], mrf[0..3]`<br>`v[0..31], trf[0..1]`<br>`v[0..31], crf` |

## vr1

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `vpop.8x128` | `v[0..31], erf`<br>`v[0..31], mrf[0..3]`<br>`v[0..31], trf[0..1]`<br>`v[0..31], crf` |

## misc

| 助记符 | 按顺序排列的操作数类型 |
|---|---|
| `cfence` | `无操作数` |
| `vdelay` | `u4(>= 1)`<br>`s[0..31] / u16` |
| `vint` | `s[0..31] / u16` |
| `vmand.8x128.u1` | `vm[0..7], vm[0..7], vm[0..7]` |
| `vmmov.8x128.u1` | `vm[0..7], vm[0..7]` |
| `vmneg.8x128.u1` | `vm[0..7], vm[0..7]` |
| `vmor.8x128.u1` | `vm[0..7], vm[0..7], vm[0..7]` |
| `vmxor.8x128.u1` | `vm[0..7], vm[0..7], vm[0..7]` |
| `vnop` | `无操作数` |
| `vsettm` | `s[0..31] / u16` |
| `vsyncadd.done.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncadd.notdone.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncadd.remote.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncadd.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncdonemov` | `v2sf, [sflag:(s[0..31] / u16)]` |
| `vsyncmov` | `v2sf, [sflag:(s[0..31] / u16)]` |
| `vsyncpa.u1` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncset.done.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncset.notdone.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncset.remote.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vsyncset.s32` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vtrace` | `s[0..31] / u32` |
| `vwait.done` | `[sflag:(s[0..31] / u16)]` |
| `vwait.eq` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vwait.ge` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vwait.gt` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vwait.lt` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
| `vwait.ne` | `[sflag:(s[0..31] / u16)], s[0..31] / i16` |
