vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
/// Map a defender-centric class to the spec mutation class used by the engine.
#[must_use]
pub const fn defender_class_to_spec(class: DefenderClass) -> crate::spec::types::MutationClass {
    use crate::spec::types::MutationClass as C;
    match class {
        DefenderClass::Backdoor => C::ControlFlowMutations,
        DefenderClass::DropLsb => C::BitwiseMutations,
        DefenderClass::DropMsb => C::BitwiseMutations,
        DefenderClass::HardcodedInput => C::BufferAccessMutations,
        DefenderClass::HardcodedZero => C::ConstantMutations,
        DefenderClass::ModMask => C::LoweringMutations,
        DefenderClass::Nondeterministic => C::OrderingMutations,
        DefenderClass::OffByOne => C::BufferAccessMutations,
        DefenderClass::PseudoCorrect => C::LawMutations,
        DefenderClass::SignFlip => C::ArithmeticMutations,
        DefenderClass::SwappedOperand => C::ComparisonMutations,
        DefenderClass::Unsupported => C::IrStructuralMutations,
    }
}