Converts a floating-point number in floating-point register `fs1` to an unsigned 32-bit integer in integer register `xd`. For XLEN >32, `fcvt.wu.s` sign-extends the 32-bit result to the destination register width. If the rounded result is not representable as a 32-bit unsigned integer, it is clipped to the nearest value and the invalid flag is set. The range of valid inputs and behavior for invalid inputs are: [separator="!"] !=== ! ! Value h! Minimum valid input (after rounding) ! `0` h! Maximum valid input (after rounding) ! `2^32 - 1` h! Output for out-of-range negative input ! `0` h! Output for `-∞` ! `0` h! Output for out-of-range positive input ! `2^32 - 1` h! Output for `+∞` for `NaN` ! `2^32 - 1` !=== All floating-point to integer and integer to floating-point conversion instructions round according to the `rm` field. A floating-point register can be initialized to floating-point positive zero using `fcvt.s.w xd, x0`, which will never set any exception flags. All floating-point conversion instructions set the Inexact exception flag if the rounded result differs from the operand value and the Invalid exception flag is not set.
fcvt.wu.s xd, fs1, rm
Type: