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(f[rs1] * vs2[i]), vd[i] = -(wide_product) - vd[i].
VFWNMACC.VF performs widening floating-point fused multiply-add/subtract. The narrow FP scalar f[rs1] is multiplied by narrow vector element vs2[i]. 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.VF 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.vf v2, ft0, v4».
No. FP arithmetic and conversions use frm or an instruction-specified fixed rounding mode; vxrm is for fixed-point rounding instructions.