VFWCVT.RTZ.XU.F.V 和 VFCVT 有什么区别?
VFWCVT.RTZ.XU.F.V 是 VFWCVT 扩宽形式,源为 SEW、目标为 2*SEW;VFCVT 单宽形式的源和目标都使用当前 SEW。
VFWCVT.RTZ.XU.F.V 将活动 vs2[i] 从 SEW 宽浮点值扩宽转换为 2*SEW 宽无符号整数结果并写入 vd[i]。
VFWCVT.RTZ.XU.F.V 是 RISC-V V 扩展的 VFWCVT 扩宽浮点/整数转换指令,语法为 vfwcvt.rtz.xu.f.v vd, vs2, vm。它只对 vl 范围内的活动元素执行,源元素宽度为当前 SEW,目标元素宽度为 2*SEW;在基础 V 的 FP32/FP64 路径中,本页动画演示 SEW=32 输入生成 64-bit 目标结果。编码使用 OP-V、funct6=010010、funct3=001,VFUNARY0 的 vs1 选择字段为 01110。该 RTZ 形式固定向零舍入;但所有向量浮点指令仍要求 frm 为有效值,使用无效 frm 是保留行为。vm=0 使用 v0.t 作为执行掩码,vm=1 表示不使用掩码。
从 OP-V 编码解码到 VFUNARY0 宽化类型转换:每个活动元素把 vs2[i] 浮点值转换为双倍宽度无符号整数。
lane 0: widen_trunc_unsigned(0.25) -> 0
显示的 lane 与当前步骤高亮同步;其余逐元素结果位于下方。
V 扩展浮点指令使用 OP-V 主操作码,字段包含 funct6、源寄存器、vm、funct3、vd 和 opcode。
VFWCVT.RTZ.XU.F.V 的关键是 VFUNARY0 扩宽转换:解码 vs1=01110 后,只对活动元素把 vs2[i] 从 SEW 宽浮点值转换为 2*SEW 宽无符号整数结果。
语法 vfwcvt.rtz.xu.f.v vd, vs2[, v0.t];32 位 OP-V:opcode=1010111、funct3=001、funct6=010010。vs1=01110 是固定 VFUNARY0 选择字段,不读取第二向量源。
窄向量源 EEW=SEW、EMUL=LMUL;vd 的 EEW=2×SEW、EMUL=2×LMUL。EMUL=2/4/8 的组起点按组大小对齐,EMUL>8 保留。窄源与宽目标重叠仅在源 EMUL≥1 且最高编号寄存器相同时合法;不同 EEW 的合法重叠强制 mask/tail agnostic。
浮点源转换为双宽无符号整数,固定向零舍入,按舍入后结果检查整数范围。NaN、无穷或越界按标量转换规则置 NV 并裁剪;不精确且未置 NV 时置 NX。
省略 v0.t 为 vm=1;写出为 vm=0。活动元素满足 vstart≤i<vl 且掩码允许,仅活动元素异常累积到 fflags。masked 目标不得含 v0;同一寄存器不能同时作为不同 EEW 的数据源和掩码源读取。
prestart 不更新也不产生异常;vl=0 或 vstart≥vl 时所有目标元素包括 tail 均不更新。其余 inactive/tail 按 vma/vta 处理,ta/ma 不保证清零;成功执行复位 vstart=0。
V 1.0 可用于 RV32/RV64,依赖 F/D;须支持所需格式、合法 vtype、VS/FS 已启用。H 且虚拟化 V=1 时 vsstatus.VS/FS 也须启用。所有向量浮点指令要求有效 frm,即使不按其舍入或 vl=0;无效 frm 使用保留,vxrm 不参与。动画固定 SEW=32、LMUL=m1、VLEN=4096、vstart=0、ta/ma 和有限输入,非完整浮点模拟器。
假定 V/VS/FS 已启用、合法 e32,m1、所需格式受支持、frm=RNE、VLMAX≥4、a0=4;vsetvli 后 vl=4、vstart=0。省略 v0.t,未掩码:v4(binary32)=[2.5,3.5,0,1.75] → v2/v3(uint64)=[2,3,0,1]。tail 按 ta 处理,不保证清零。
假定 V/VS/FS 已启用、合法 e32,m1、所需格式受支持、frm=RNE、VLMAX≥4、a0=4;vsetvli 后 vl=4、vstart=0。省略 v0.t,未掩码:v4(binary32)=[2.5,3.5,0,1.75] → v2/v3(uint64)=[2,3,0,1]。tail 按 ta 处理,不保证清零。
VFWCVT.RTZ.XU.F.V 是 VFWCVT 扩宽形式,源为 SEW、目标为 2*SEW;VFCVT 单宽形式的源和目标都使用当前 SEW。
RTZ 形式固定向零舍入;但所有向量浮点指令仍要求 frm 为有效值,使用无效 frm 是保留行为。
vm=0 时只转换活动且 v0[i]=1 的元素;vm=1 不使用执行掩码。非活动/尾部遵循 vma/vta;合法不同 EEW 重叠强制 agnostic。vl=0 或 vstart≥vl 时所有目标元素均不更新。
本模型固定 SEW=32,展示 binary32 浮点到 64 位整数的扩宽转换;不模拟所有可选浮点格式。