Does it copy the whole vector?
No. It reads only element 0 of vs2 and writes floating-point scalar rd.
Copy element 0 (float) of vs2 to scalar f register rd.
VFMV.F.S copies element 0 of vector source vs2 to floating-point scalar register rd. It is a scalar move, not element-wise FP arithmetic and not FMA.
VFMV.F.S moves vector element 0 to a floating-point scalar register.
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfmv.f.s ft0, v1 # ft0 = v1[0]».
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vfmv.f.s ft0, v1 # ft0 = v1[0]».
No. It reads only element 0 of vs2 and writes floating-point scalar rd.