How is FMV.X.W different from FCVT?
FMV copies the bit pattern; FCVT performs numeric conversion, can round, and can set exception flags.
Bit-copy a single-precision floating-point encoding to an integer register.
FMV.X.W bit-copies the single-precision floating-point encoding in f[rs1] into x[rd]; on RV64, bit 31 is copied into the upper 32 bits of the integer register. This is a bit move, not a floating-point-to-integer numeric conversion; it does not round and sets no floating-point exception flags.
FMV.X.W's core idea is bit-pattern movement. Use FCVT for numeric conversion and rounding; use FMV forms when preserving NaN payloads or inspecting raw encodings.
Understand this scenario with real code like «fmv.x.w x10, f0 # x10[31:0] = f0 bits; RV64: x10[63:32]=sign».
Understand this scenario with real code like «fmv.x.w x10, f0 # x10[31:0] = f0 bits; RV64: x10[63:32]=sign».
FMV copies the bit pattern; FCVT performs numeric conversion, can round, and can set exception flags.
No. It is neither arithmetic nor numeric conversion.