vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
// primitive.math.abs — unary u32 operation.
// Expected values are hand-computed from the operation definition.
test_unary_op!(
    test_abs,
    "primitive.math.abs",
    [
        (0x00000000, 0x00000000, "zero"),
        (0x00000001, 0x00000001, "one"),
        (0xFFFFFFFF, 0x00000001, "max / all-bits-set"),
        (0xAAAAAAAA, 0x55555556, "alternating-bits (1010...)"),
        (0x55555555, 0x55555555, "alternating-bits inverse (0101...)"),
        (0x80000000, 0x80000000, "sign-bit (MSB only)"),
        (0x00000007, 0x00000007, "prime (7)"),
        (0x0000000C, 0x0000000C, "composite (12)"),
    ]
);

// primitive.math.negate — unary u32 operation.
// Expected values are hand-computed from the operation definition.
test_unary_op!(
    test_negate,
    "primitive.math.negate",
    [
        (0x00000000, 0x00000000, "zero"),
        (0x00000001, 0xFFFFFFFF, "one"),
        (0xFFFFFFFF, 0x00000001, "max / all-bits-set"),
        (0xAAAAAAAA, 0x55555556, "alternating-bits (1010...)"),
        (0x55555555, 0xAAAAAAAB, "alternating-bits inverse (0101...)"),
        (0x80000000, 0x80000000, "sign-bit (MSB only)"),
        (0x00000007, 0xFFFFFFF9, "prime (7)"),
        (0x0000000C, 0xFFFFFFF4, "composite (12)"),
    ]
);