fcvtmod.w.d 和 fcvt.w.d 有什么区别?
fcvtmod.w.d 取无界 RTZ 转换结果的低 32 位并模 2^32;fcvt.w.d 对越界整数转换使用官方无效转换结果。
双精度浮点模转换到有符号字(截断后取模2^32)
fcvtmod.w.d 是 Zfa 指令,将双精度浮点数按 RTZ 转换为无界二进制补码整数,取低 32 位后符号扩展到 XLEN;NaN 和正负无穷转换为 0。
fcvtmod.w.d 是 Zfa 指令,将双精度浮点数按 RTZ 转换为无界二进制补码整数,取低 32 位后符号扩展到 XLEN;NaN 和正负无穷转换为 0。
结合 «fcvtmod.w.d x10, f0, rtz # x10 = (int32_t)(f0) mod 2^32, always RTZ» 等实际代码理解该场景。
结合 «fcvtmod.w.d x10, f0, rtz # x10 = (int32_t)(f0) mod 2^32, always RTZ» 等实际代码理解该场景。
结合 «fcvtmod.w.d x10, f0, rtz # x10 = (int32_t)(f0) mod 2^32, always RTZ» 等实际代码理解该场景。
fcvtmod.w.d 取无界 RTZ 转换结果的低 32 位并模 2^32;fcvt.w.d 对越界整数转换使用官方无效转换结果。
Zfa 规定汇编语法必须显式指定 RTZ,其他 rm 编码保留。