Is rd a floating-point register for FEQ.D?
No. rd is an integer register holding the Boolean result 0 or 1.
double-precision floating-point equality compare; writes the 0/1 Boolean result to integer register rd.
FEQ.D compares the double-precision floating-point values in f[rs1] and f[rs2], then writes the Boolean result to integer register rd. FEQ is a quiet comparison: a quiet NaN makes the result 0 without setting NV, while a signaling NaN sets NV. The comparison result is not a floating-point value and the instruction has no rm operand.
Shows the D-extension double-precision OP-FP flow: decode fields, read FP operands, perform FEQ 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.
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.
FEQ.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 «feq.d x10, f0, f1 # x10 = (f0==f1)».
Understand this scenario with real code like «feq.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; FEQ sets NV only for signaling NaN.
No. FP comparisons do not round; the encoded funct3 selects the compare kind.