Do these instructions use vxrm?
No. FP arithmetic and conversions use frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.
Floating-point fused multiply-add/subtract: vd[i] = +(vs1[i] * vd[i]) + vs2[i].
VFMADD.VV follows the official RVV FMA formula: vd[i] = +(vs1[i] * vd[i]) + vs2[i]. The multiply and add/subtract are fused with one rounding and no intermediate rounded product; the old vd value is also a multiplicand, and vs2 is the addend or subtrahend. Vector FP32/FP64 operation requires the corresponding scalar F/D support; FP16 is controlled by the relevant vector half-precision extensions, and the base V extension does not automatically include half-precision arithmetic.
The key facts for VFMADD.VV are the official FMA formula vd[i] = +(vs1[i] * vd[i]) + vs2[i] and single-rounding semantics.
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfmadd.vv v1, v2, v3 # vd[i] = +(vs1[i] * vd[i]) + vs2[i]».
No. FP arithmetic and conversions use frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.