VFSGNJ.VF 的 vm 操作数控制什么?
vm=0 时只执行 v0.t 为 1 的活动元素;vm=1 表示不使用执行掩码。本页公式是 vd[i] = {vs2[i] 的非符号位, sign(f[rs1])}。
VFSGNJ.VF 是 RVV 单宽向量浮点标量符号注入指令,语法为 vfsgnj.vf vd, vs2, rs1, vm;每个活动元素保留 vs2[i] 的非符号位,并用标量 f[rs1] 的符号位生成 vd[i]。
活动元素保留 vs2[i] 的非符号位,符号取自有效浮点标量 f[rs1]。不规范化 NaN,不设置浮点异常标志;vm=0 使用 v0.t,vm=1 未掩码。
从 OP-V 编码解码到逐元素浮点符号注入:保留 vs2 的非符号位,符号来源为 scalar f[rs1]。
lane 0: bits 0x3fa00000 non-sign + sign(0x3fc00000) -> 0x3fa00000 (1.25)
显示的 lane 与当前步骤高亮同步;其余逐元素结果位于下方。
V 扩展浮点指令使用 OP-V 主操作码,字段包含 funct6、源寄存器、vm、funct3、vd 和 opcode。
VFSGNJ.VF 的学习重点是 OP-V 编码、标量浮点寄存器 f[rs1]、v0.t 掩码,以及每个活动元素的 vd[i] = {vs2[i] 的非符号位, sign(f[rs1])}。
32 位 OP-V 编码:funct6=001000、funct3=101、opcode=1010111。rs1 选择浮点 f 寄存器,不是整数寄存器。FLEN>SEW 时有效 NaN-box 取低 SEW 位,无效时使用 canonical NaN;FLEN<SEW 保留。
向量操作数及结果为 SEW 位、EMUL=LMUL。同宽源/目标可重叠,同名源必须有一致的初始位模式。普通 masked 目标不能与 v0 重叠。
可选 vm 操作数写作 v0.t,对应 vm=0;省略为 vm=1。活动元素满足 vstart≤i<vl 且掩码启用。不能把同一源寄存器同时作为 EEW=1 的 mask 和 SEW 数据读取。
prestart 不更新;vstart≥vl 或 vl=0 时所有目标元素包括 tail 均不更新。其他非活动/尾部按 vma/vta 处理,ta/ma 不保证清零。
非符号位来自 vs2[i],符号来自第二源;不规范化 NaN,不设置浮点异常标志,也不按 frm 舍入。
V 1.0 适用于 RV32/RV64,包含 FP32/FP64 并依赖 F/D;SEW=16 算术需 Zvfh。要求合法 vtype、支持的宽度及 VS/FS 已启用;H 且虚拟化 V=1 时 vsstatus.VS/FS 也须启用。所有这些向量浮点指令都要求有效 frm,即使结果不依赖它或 vl=0;vxrm 不控制它们。
动画为教学步骤,不是处理器周期。固定 VLEN=4096、LMUL=m1、vstart=0、合法 vtype 与 VS/FS 已启用;具体输入格式、固定舍入及模型边界见动画说明。VF 标量按 FLEN=64 读取,SEW=32 时假定有效 NaN-boxed。
假定 V/VS/FS 已启用、合法 vtype、有效 frm=RNE、e32,m1 可用、VLMAX≥4、a0=4;vsetvli 后 vl=4、vstart=0。输入为 binary32;ft0 若使用则在 FLEN=64 下有效 NaN-boxed。省略 v0.t,未掩码:ft0=-1, v2=[1,-2,3,+0] → v1=[-1,-2,-3,-0]。尾部按 ta 处理,不假定清零。
假定 V/VS/FS 已启用、合法 vtype、有效 frm=RNE、e32,m1 可用、VLMAX≥4、a0=4;vsetvli 后 vl=4、vstart=0。输入为 binary32;ft0 若使用则在 FLEN=64 下有效 NaN-boxed。省略 v0.t,未掩码:ft0=-1, v2=[1,-2,3,+0] → v1=[-1,-2,-3,-0]。尾部按 ta 处理,不假定清零。
假定 V/VS/FS 已启用、合法 vtype、有效 frm=RNE、e32,m1 可用、VLMAX≥4、a0=4;vsetvli 后 vl=4、vstart=0。输入为 binary32;ft0 若使用则在 FLEN=64 下有效 NaN-boxed。省略 v0.t,未掩码:ft0=-1, v2=[1,-2,3,+0] → v1=[-1,-2,-3,-0]。尾部按 ta 处理,不假定清零。
vm=0 时只执行 v0.t 为 1 的活动元素;vm=1 表示不使用执行掩码。本页公式是 vd[i] = {vs2[i] 的非符号位, sign(f[rs1])}。
不是。它是 FSGNJ 类位模式操作,保留 vs2 的非符号位并组合新的符号位,不设置浮点异常标志。
不会。本指令只使用第二源的符号位信息;f[rs1] 的非符号位不决定结果数值大小。