1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::rv_core::instruction::executor::prelude::*;

pub fn vf(Opfvf { vd, rs1, vs2, vm }: Opfvf, v: &mut VectorContext<'_>, f: &FloatRegisters) {
    let vreg = v
        .get(vs2)
        .iter_fp()
        .masked_map(v.default_mask(vm), v.get(vd).iter_eew(), |vs2| {
            if vs2 >= ArbitraryFloat::copy_type(&vs2, f[rs1]) {
                1
            } else {
                0
            }
        })
        .collect_with_eew(v.vec_engine.sew);

    v.apply(vd, vreg);
}