vyre-reference 0.4.1

Pure-Rust CPU reference interpreter for vyre IR — byte-identical oracle for backend conformance and small-data fallback
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use crate::{dual_impls::common, workgroup::Memory};
use vyre_primitives::ArithAdd;

impl common::ReferenceEvaluator for ArithAdd {
    fn evaluate(&self, inputs: &[Memory]) -> Result<Memory, common::EvalError> {
        let (left, right) = common::two_inputs(inputs, "arith_add")?;
        Ok(common::scalar(
            common::read_u32(left, "arith_add")?
                .wrapping_add(common::read_u32(right, "arith_add")?),
        ))
    }
}