RISC-V ISA Explorer · Single-Letter Extensions

F: Single-Precision Float (32-bit)

Ratified 2019-12 · version 2.2.0

Single-precision IEEE 754 arithmetic with 32 floating-point registers and a status register for rounding modes.

Typical use: Basic floating-point workloads

Specification

Open F in the explorer

Dependencies

Requires

Required by

Instructions (30)

MnemonicNameEncodingMatchMask
FADD.SFloating-Point Add Single-Precision0000000------------------10100110x530xfe00007f
FCLASS.SFloating-Point Classify Single-Precision111000000000-----001-----10100110xe00010530xfff0707f
FCVT.L.SFloating-Point Convert Single-Precision to Long110000000010-------------10100110xc02000530xfff0007f
FCVT.LU.SFloating-Point Convert Single-Precision to Unsigned Long110000000011-------------10100110xc03000530xfff0007f
FCVT.S.LFloating-Point Convert Long to Single-Precision110100000010-------------10100110xd02000530xfff0007f
FCVT.S.LUFloating-Point Convert Unsigned Long to Single-Precision110100000011-------------10100110xd03000530xfff0007f
FCVT.S.WFloating-Point Convert Word to Single-Precision110100000000-------------10100110xd00000530xfff0007f
FCVT.S.WUFloating-Point Convert Unsigned Word to Single-Precision110100000001-------------10100110xd01000530xfff0007f
FCVT.W.SFloating-Point Convert Single-Precision to Word110000000000-------------10100110xc00000530xfff0007f
FCVT.WU.SFloating-Point Convert Single-Precision to Unsigned Word110000000001-------------10100110xc01000530xfff0007f
FDIV.SFloating-Point Divide Single-Precision0001100------------------10100110x180000530xfe00007f
FEQ.SFloating-Point Equal Single-Precision1010000----------010-----10100110xa00020530xfe00707f
FLE.SFloating-Point Less Than or Equal Single-Precision1010000----------000-----10100110xa00000530xfe00707f
FLT.SFloating-Point Less Than Single-Precision1010000----------001-----10100110xa00010530xfe00707f
FLWFloating-Point Load Single-Precision-----------------010-----00001110x20070x707f
FMADD.SFloating-Point Multiply-Add Single-Precision-----00------------------10000110x430x600007f
FMAX.SFloating-Point Maximum-Number Single-Precision0010100----------001-----10100110x280010530xfe00707f
FMIN.SFloating-Point Minimum-Number Single-Precision0010100----------000-----10100110x280000530xfe00707f
FMSUB.SFloating-Point Multiply-Subtract Single-Precision-----00------------------10001110x470x600007f
FMUL.SFloating-Point Multiply Single-Precision0001000------------------10100110x100000530xfe00007f
FMV.W.XFloating-Point Move Single-Precision Word from Integer Register111100000000-----000-----10100110xf00000530xfff0707f
FMV.X.WFloating-Point Move Single-Precision Word to Integer Register111000000000-----000-----10100110xe00000530xfff0707f
FNMADD.SFloating-Point Negate-Multiply-Add Single-Precision-----00------------------10011110x4f0x600007f
FNMSUB.SFloating-Point Negate-Multiply-Subtract Single-Precision-----00------------------10010110x4b0x600007f
FSGNJ.SFloating-Point Sign-Inject Single-Precision0010000----------000-----10100110x200000530xfe00707f
FSGNJN.SFloating-Point Sign-Inject Negate Single-Precision0010000----------001-----10100110x200010530xfe00707f
FSGNJX.SFloating-Point Sign-Inject XOR Single-Precision0010000----------010-----10100110x200020530xfe00707f
FSQRT.SFloating-Point Square Root Single-Precision010110000000-------------10100110x580000530xfff0007f
FSUB.SFloating-Point Subtract Single-Precision0000100------------------10100110x80000530xfe00007f
FSWFloating-Point Store Single-Precision-----------------010-----01001110x20270x707f

Control and status registers (3)

NameAddressModeDescription
fcsr0x3UFloating-point control and status register (`frm` + `fflags`)
fflags0x1UFloating-Point Accrued Exceptions
frm0x2UFloating-Point Dynamic Rounding Mode