这些向量 BF16 指令是否支持任意 SEW?
不支持。官方 BF16 向量指令在 SEW 不是 16 时为保留编码;本页动画固定 SEW=16。
将 BF16 向量源精确加宽为 FP32。
语法为 vfwcvtbf16.f.f.v vd, vs2[, v0.t];vd、vs2 选择 v0–v31 向量组的最低编号寄存器;没有浮点标量源或立即数。
32 位 OP-V:funct6=010010、bits19:15=01101(固定 VFUNARY0 选择子)、funct3=001、opcode=1010111;vm=0 使用 v0.t,省略掩码为 vm=1。
需 Zvfbfmin(依赖 Zve32f)、启用向量/浮点状态和合法 vtype;仅 SEW=16 合法。vs2 是 EEW=16、EMUL=LMUL 的 BF16 源;vd 是 EEW=32、EMUL=2*LMUL 的 FP32 目标,转换精确。
组起点按 EMUL 对齐,最大 EMUL≤8;窄化重叠须同最低寄存器,加宽重叠须源 EMUL≥1 且同最高寄存器。masked vd 不含 v0,v0 不可同时供 mask 和数据;不同 EEW 的合法源/目标重叠强制 mask/tail agnostic。
只执行掩码允许的 vstart≤i<vl 元素;非活动/尾部按策略处理,不保证清零。vstart≥vl(含 vl=0)不更新任何目标元素。无效 frm 的使用始终保留,即使转换精确或没有活动元素。
VFWCVTBF16.F.F.V 在 SEW=16 下把 vs2 中 16 位 BF16 源元素精确加宽为 32 位 FP32 结果并写入 vd。普通数和无穷的 BF16 编码左移 16 位,FP32 低 16 位填 0;属于 Zvfbfmin。
从 OP-V 编码解码到向量 BF16 加宽转换:每个活动元素把 BF16 精确加宽为 FP32。
lane 0: fp32(0x3fc0) -> 1.5 / 0x3fc00000
显示的 lane 与当前步骤高亮同步;其余逐元素结果位于下方。
V 扩展浮点指令使用 OP-V 主操作码,字段包含 funct6、源寄存器、vm、funct3、vd 和 opcode。
教学环境固定 SEW=16、LMUL=m1、VLEN=4096、VLMAX=256、vstart=0、合法 vtype、VS/FS 已启用及有效 frm。BF16 源占单寄存器,FP32 目标占偶数 vd..vd+1;合法重叠只能在目标组高端。数值输入先表示为 FP32,再以 RNE 表示为 BF16,最后精确加宽;原始位模式直接作为 BF16 输入。不同 EEW 的合法重叠强制 mask/tail agnostic。非活动及尾元素不显示确定值;VL=0 不更新任何目标元素。NaN、无穷、fflags 和处理器周期不在模型范围。超出有限结果范围只表示演示限制,不表示非法指令。
SEW=16,source EEW=16 / BF16 -> destination EEW=32 / FP32。BF16 到 FP32 是精确加宽;普通数和无穷的 BF16 编码左移 16 位并把低 16 位写 0。这是 RVV BF16 的 BF16 -> FP32 精确加宽转换:语法只有 vd、vs2、vm;SEW 固定为 16,vs1[19:15]=01101 是 VFUNARY0 selector。
body 元素满足 vstart≤i<vl;其中掩码允许的元素才执行转换。vstart≥vl(含 vl=0)时所有目标元素不变。SEW 固定为 16,LMUL 决定寄存器组大小,vta/vma 决定 tail/inactive 策略。
The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture — Version 20260120, Chapter 31启用 Zvfbfmin 与向量/浮点状态,SEW=16、LMUL=m1、VLEN=128、vl=1、vstart=0、frm=RNE,无掩码:v8[0]=BF16 0x3FC0 → v4[0]=1.5 (FP32 0x3FC00000);其余目标元素按 tail policy 处理。
启用 Zvfbfmin 与向量/浮点状态,SEW=16、LMUL=m1、VLEN=128、vl=1、vstart=0、frm=RNE,无掩码:v8[0]=BF16 0x3FC0 → v4[0]=1.5 (FP32 0x3FC00000);其余目标元素按 tail policy 处理。
不支持。官方 BF16 向量指令在 SEW 不是 16 时为保留编码;本页动画固定 SEW=16。
不是。BF16 是 1 位符号、8 位指数、7 位 fraction;它与半精度 binary16 的指数和 fraction 位宽不同。
不影响。BF16 到 FP32 是精确加宽转换,不按 frm 舍入;但向量浮点指令仍要求有效 frm,即使 vl=0 或没有活动元素。