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.
Widening FP FMA: wide_product = widen(vs1[i] * vs2[i]), vd[i] = -(wide_product) - vd[i].
VFWNMACC.VV performs widening floating-point fused multiply-add/subtract. Two narrow vector source elements are multiplied. The product is widened to 2*SEW and combined with wide vd using vd[i] = -(wide_product) - vd[i], fused with one rounding. 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.
VFWNMACC.VV forms a wide product from narrow inputs and fuses it with wide vd using vd[i] = -(wide_product) - vd[i].
Understand this scenario with real code like «vsetvli t0, a0, e16, m1, ta, ma vfwnmacc.vv v2, v4, v6».
No. FP arithmetic and conversions use frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.