首页/指令库/FCVT-LU-D
FCVT.LU.D

RISC-V FCVT.LU.D 指令详解

指令手册R-type

RV64 浮点转整数转换,无符号 64 位整数与双精度之间按 rm/frm 规则处理。

指令语法

fcvt.lu.d rd, rs1, rm
操作数说明
目标寄存器 rd:存放运算结果的通用寄存器。
源寄存器 rs1:第一个操作数寄存器。
源寄存器 rs2:第二个操作数寄存器。
D浮点转换

指令行为说明

FCVT.LU.D 是 RV64 浮点转整数转换指令。它把 f[rs1] 中的双精度值按 rm 舍入为 无符号 64 位整数并写入 x[rd]。不精确结果设置 NX;浮点到整数超出可表示范围或 NaN 按官方 FCVT.int 规则产生裁剪结果并设置 NV。

快速理解与检索要点

FCVT.LU.D 属于 RV64 的 L/LU FCVT 形式;重点是 64 位整数宽度、rm 舍入字段和异常标志规则。

D 扩展的双精度转换规则与 F 扩展单精度转换规则类似,但源/目标浮点格式不同。
NX 只表示舍入后结果与原值不同;NV 用于无效浮点到整数转换。

常见使用场景

RV64专用操作

结合 «fcvt.lu.d x10, f0, rtz # x10 = (ulong)f0 (RV64)» 等实际代码理解该场景。

使用前检查清单

语法检查
  • 确认当前指令格式为 R-type。
  • 确认操作数排列顺序与示例一致。
语义检查
  • 确认目标寄存器用途和调用约定兼容。
  • 确认该指令不是伪指令展开后的底层形式。

容易混淆 / 常见误区

这些 L/LU 形式是 RV64 指令;RV32 不提供 64 位整数目的/源寄存器形式。
所有 FCVT 整数/浮点转换都按 rm 字段选择舍入模式,DYN 使用 frm。
浮点到整数溢出、无穷或 NaN 不按普通整数溢出回绕;按官方裁剪/无效转换规则处理。

常见问题

FCVT.LU.D 是否 RV32 可用?

不可用。L/LU 是 64 位整数转换形式,官方定义为 RV64-only。

FCVT.LU.D 会忽略 rm 吗?

不会。官方规则说明整数/浮点转换按 rm 字段舍入,DYN 使用 frm。