Is rd a floating-point register for FLE.D?
No. rd is an integer register holding the Boolean result 0 or 1.
Double-precision floating-point less-or-equal compare; writes the 0/1 Boolean result to integer register rd.
32-bit OP-FP: funct5[31:27]=10100, fmt[26:25]=01, rs2[24:20], rs1[19:15], funct3[14:12]=000, rd[11:7], opcode[6:0]=1010011; no rm.
rd is integer x0–x31 and rs1/rs2 are FP f0–f31; ABI names are accepted. x0 discards the Boolean result while NV still accrues. Integer and FP registers with the same index belong to separate register files.
Applies to RV32/RV64 D (requires F), FLEN≥64; enable required extensions and FP state. Sources narrower than FLEN require valid NaN-boxing, otherwise they are read as canonical qNaN.
Write 1 for less-or-equal, otherwise 0; any NaN writes 0. Both qNaN and sNaN set NV. fflags accrues exceptions; flag setting alone causes no base FP exception trap.
One source register must have one initial value. The animation starts with fflags=0 and accepts only listed exact finite values plus signed zeros, infinities, qNaN, and sNaN. Steps are teaching views.
FLE.D compares the double-precision floating-point values in f[rs1] and f[rs2], then writes the Boolean result to integer register rd. FLE is a signaling comparison: any NaN makes the result 0 and sets NV. It requires D (which depends on F); bits[14:12] are funct3=000 selecting LE, not an rm rounding mode.
Shows the D-extension double-precision OP-FP flow: decode fields, read FP operands, perform FLE semantics, then write rd.
The word is split as an R-type OP-FP instruction; double-precision OP-FP instructions use opcode 1010011.
The comparison result is written to integer register x[rd] and is only 0 or 1; compare instructions do not use rm.
The comparison result is written to integer register x[rd] and is only 0 or 1; compare instructions do not use rm.
Assumes required extensions and FS enabled, valid NaN-boxing, and initial fflags=0. Finite inputs use the exact whitelist; signed zeros, infinities, qNaN, and sNaN are supported. Other inputs stop execution. One source register must have one initial value; rd=x0 discards only the integer write while NV still accrues. Steps are teaching views.
This animation shows only D-extension ISA-visible OP-FP encoding, example numeric results, and fflags relationship; it does not model FPU pipelines, latency, every IEEE 754 corner case, or microarchitecture.
FLE.D bridges FP comparison to an integer Boolean result: it reads two FP registers but writes x[rd]=0/1.
Understand this scenario with real code like «fle.d x10, f0, f1 # x10 = (f0<=f1)».
Understand this scenario with real code like «fle.d x10, f0, f1 # x10 = (f0<=f1)».
No. rd is an integer register holding the Boolean result 0 or 1.
Any NaN produces result 0 and sets NV.
No. FP comparisons do not round; the encoded funct3 selects the compare kind.