Is rd a floating-point register for FEQ.H?
No. rd is an integer register holding the Boolean result 0 or 1.
Half-precision floating-point equality compare; writes x[rd]=1 when true, otherwise 0.
32-bit OP-FP: opcode=1010011, funct5=10100, fmt=10; funct3=010, no rm.
rd is integer x0–x31; rs1/rs2 are FP f0–f31 or ABI names. x0 discards the result while retaining NV side effects.
RV32/RV64 full Zfh (requires F, not Zfhmin); enable required extensions and FP state. Sources narrower than FLEN require valid NaN-boxing, otherwise use canonical qNaN.
Write 1 for equality, otherwise 0; any NaN writes 0. Only sNaN sets NV; qNaN does not clear old NV. fflags accrues exceptions.
One source register must have one initial value. The animation starts with fflags=0; teaching steps are not hardware cycles.
FEQ.H belongs to Zfh, which depends on F, rather than Zfhmin's transfer/conversion-only subset. It compares the half-precision floating-point values in f[rs1] and f[rs2] and writes the Boolean result to integer register rd. The encoding uses the OP-FP opcode, funct5=10100, fmt=H(10), and funct3=010; it is a quiet comparison that sets NV only for signaling NaN, and any NaN operand makes the result 0.
Shows the Zfh-extension half-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; half-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 Zfh-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.H requires full Zfh, which depends on F, not Zfhmin; it writes the half-precision FP comparison result to integer register x[rd], and the result is only 0 or 1.
Understand this scenario with real code like «feq.h x10, f0, f1 # f0=1.5, f1=1.5 -> x10=1; no new flags».
Understand this scenario with real code like «feq.h x10, f0, f1 # f0=1.5, f1=1.5 -> x10=1; no new flags».
No. rd is an integer register holding the Boolean result 0 or 1.
Any NaN operand makes the result 0; qNaN does not set NV, while sNaN sets NV.
No. The funct3 field selects the comparison type, and the result is an integer Boolean.