跳转至

比特位操作指令

比特位操作类指令用于在每个执行通道(Lane)内,对8/16/32/64位标量元素进行高效的局部位域处理与统计。该类指令以位为基本单位,覆盖端序翻转位计数位段提取与扩展、以及位段清零/置位等常见操作,适用于加速编解码、密码学、图像/信号处理与位级协议解析等场景。

指令列表

微指令 汇编格式 支持寄存器位宽 描述
V.BXU v.bxu SrcL.{T}, M, N, ->Dst.{W} 从源操作数第M位开始连续截取N位并无符号扩展
V.BXS v.bxs SrcL.{T}, M, N, ->Dst.{W} 从源操作数第M位开始连续截取N位并有符号扩展
V.BIC v.bic SrcL.{T}, M, N, ->Dst.{W} 将源操作数第M位开始连续N位置位为0
V.BIS v.bis SrcL.{T}, M, N, ->Dst.{W} 将源操作数第M位开始连续N位置位为1
V.CTZ v.ctz SrcL.{T}, M, N, ->Dst.{W} 计数源操作数第M位开始连续N位第一个1后的0的个数
V.CLZ v.clz SrcL.{T}, M, N, ->Dst.{W} 计数源操作数第M位开始连续N位第一个1前的0的个数
V.BCNT v.bcnt SrcL.{T}, M, N, ->Dst.{W} 计数源操作数第M位开始连续N位比特位为1的位数
V.REV v.rev SrcL.{T}, M, N, ->Dst.{W} 在源操作数的M位的范围内以N位为单位进行翻转

指令编码

BitOperation

使用与边界注意

  • 调用方应确保 M 与 N 的取值不越界;越界行为未定义。
  • 对于计数类指令(CLZ/CTZ/BCNT),统计仅在指定的 N 位窗口内进行,与窗口外位无关。
  • 对于修改位段的指令(BIC/BIS),仅影响指定位段,其余位按原值保留。
  • 不涉及跨通道数据依赖与同步。