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.
Narrow wide float (2×SEW) elements of vs2 to SEW floats in vd. Rounding per frm.
VFNCVT.F.F.W performs RVV narrowing floating-point/integer conversion. Conversions that require rounding use frm. The source is 2*SEW wide and the result is SEW wide. 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.
VFNCVT.F.F.W converts element types; first check whether the form is single-width, widening, or narrowing, then check where rounding comes from.
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfncvt.f.f.w v1, v2 # v1[i]=float(v2[i]), 64b→32b».
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfncvt.f.f.w v1, v2 # v1[i]=float(v2[i]), 64b→32b».
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.