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}