Does FSGNJ.Q change a NaN payload?
It does not canonicalize a NaN payload. Apart from the sign bit generated by the current instruction rule, the result exponent and significand fields come from rs1.
FSGNJ.Q preserves the quad-precision non-sign bits from rs1 and forms the result sign from the rs2 sign.
FSGNJ.Q is a floating-point sign-injection instruction in the Q format. The result exponent and significand fields come from rs1, while the sign bit is formed from the rs2 sign; it performs no numeric conversion, does not round, sets no fflags, and does not canonicalize NaN payloads.
Shows the Q-extension quad-precision OP-FP flow: decode fields, read FP operands, perform FSGNJ semantics, then write rd.
The word is split as an R-type OP-FP instruction; quad-precision OP-FP instructions use opcode 1010011.
Sign injection only recombines the floating-point sign bit: exponent and significand fields come from rs1, while the sign bit follows the current instruction rule from rs2 or the rs1/rs2 sign relation; it does not round or canonicalize NaNs.
Sign injection only recombines the floating-point sign bit: exponent and significand fields come from rs1, while the sign bit follows the current instruction rule from rs2 or the rs1/rs2 sign relation; it does not round or canonicalize NaNs.
This animation shows only Q-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.
FSGNJ.Q is mainly about where the sign bit comes from. It only changes the result-sign rule while keeping rs1 exponent and significand as the non-sign result fields, so it does not round or set exception flags.
Understand this scenario with real code like «fsgnj.q f0, f1, f2 # f0 = f1 with sign of f2».
Understand this scenario with real code like «fsgnj.q f0, f1, f2 # f0 = f1 with sign of f2».
It does not canonicalize a NaN payload. Apart from the sign bit generated by the current instruction rule, the result exponent and significand fields come from rs1.
No. The FSGNJ family performs sign injection, does not use rm, does not round, and does not set floating-point exception flags.