core_detect 1.0.0

A `no_std` version of the `std::is_x86_feature_detected!` macro.
Documentation
#[test]
#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
fn compare_with_cupid() {
    let information = cupid::master().unwrap();
    macro_rules! check_feature {
        ($core_detect_expr:expr, $cupid_expr:expr $(,)?) => {
            if cfg!(allow_false_negative) {
                if $core_detect_expr {
                    assert!($cupid_expr);
                }
            } else {
                assert_eq!(
                    $core_detect_expr,
                    $cupid_expr,
                    "should be equal: {} == {}",
                    stringify!($core_detect_expr),
                    stringify!($cupid_expr),
                );
            }
        };
    }
    check_feature!(
        core_detect::is_x86_feature_detected!("aes"),
        information.aesni()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("pclmulqdq"),
        information.pclmulqdq()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("rdrand"),
        information.rdrand()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("rdseed"),
        information.rdseed()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("tsc"),
        information.tsc()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse"),
        information.sse()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse2"),
        information.sse2()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse3"),
        information.sse3()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("ssse3"),
        information.ssse3()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse4.1"),
        information.sse4_1()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse4.2"),
        information.sse4_2()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sse4a"),
        information.sse4a()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("sha"),
        information.sha()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx"),
        information.avx()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx2"),
        information.avx2()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512f"),
        information.avx512f()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512cd"),
        information.avx512cd()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512er"),
        information.avx512er()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512pf"),
        information.avx512pf()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512bw"),
        information.avx512bw()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512dq"),
        information.avx512dq()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512vl"),
        information.avx512vl()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512ifma"),
        information.avx512_ifma()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512vbmi"),
        information.avx512_vbmi()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("avx512vpopcntdq"),
        information.avx512_vpopcntdq()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("fma"),
        information.fma()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("bmi1"),
        information.bmi1()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("bmi2"),
        information.bmi2()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("popcnt"),
        information.popcnt()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("abm"),
        information.lzcnt()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("tbm"),
        information.tbm()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("lzcnt"),
        information.lzcnt()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("xsave"),
        information.xsave()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("xsaveopt"),
        information.xsaveopt()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("xsavec"),
        information.xsavec_and_xrstor()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("xsaves"),
        information.xsaves_xrstors_and_ia32_xss()
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("cmpxchg16b"),
        information.cmpxchg16b(),
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("adx"),
        information.adx(),
    );
    check_feature!(
        core_detect::is_x86_feature_detected!("rtm"),
        information.rtm(),
    );
}