eeric/rv_core/instruction/executor/v/
vfrec7.rs

1use crate::rv_core::instruction::executor::prelude::*;
2
3pub fn v(
4    Vfunary1 {
5        dest: vd, vs2, vm, ..
6    }: Vfunary1,
7    v: &mut VectorContext<'_>,
8) -> Result<(), String> {
9    let vreg = v
10        .get(vs2)
11        .iter_fp()?
12        .masked_map(v.default_mask(vm), v.get(vd).iter_fp()?, |vs2| {
13            ArbitraryFloat::copy_type(&vs2, 1.0) / vs2
14        })
15        .collect_fp();
16
17    v.apply(vd, vreg);
18
19    Ok(())
20}