Do these floating-point instructions use vxrm?
No. Ordinary RVV floating-point operations and FP conversions use floating-point frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.
Combine vs2 magnitude with negated sign of vs1: vd[i] = -|vs2[i]| * sign(vs1[i]).
VFSGNJN.VV performs floating-point sign injection: it combines sign bits without numerical arithmetic. The magnitude bits come from vs2, and the sign comes from vs1 inverted. Vector FP32/FP64 operation requires the corresponding scalar F/D support; FP16 is controlled by the relevant vector half-precision extensions; do not assume the base V extension includes half-precision arithmetic.
VFSGNJN.VV is a bit-level sign operation, commonly used for copy-sign, negate, or sign-XOR vector work.
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfsgnjn.vv v1, v2, v3».
No. Ordinary RVV floating-point operations and FP conversions use floating-point frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.