//@ revisions: aarch64 x86-64
//@ [aarch64] compile-flags: -Ctarget-feature=+neon,+fp16,+fhm --target=aarch64-unknown-linux-gnu
//@ [aarch64] needs-llvm-components: aarch64
//@ [x86-64] compile-flags: -Ctarget-feature=+sse4.2,+rdrand --target=x86_64-unknown-linux-gnu
//@ [x86-64] needs-llvm-components: x86
//@ build-pass
#![no_core]
#![crate_type = "rlib"]
#![feature(intrinsics, rustc_attrs, no_core, lang_items, staged_api)]
#![stable(feature = "test", since = "1.0.0")]

// Supporting minimal rust core code
#[lang = "sized"]
trait Sized {}
#[lang = "copy"]
trait Copy {}
impl Copy for bool {}

extern "rust-intrinsic" {
    #[rustc_const_stable(feature = "test", since = "1.0.0")]
    fn unreachable() -> !;
}

#[rustc_builtin_macro]
macro_rules! cfg {
    ($($cfg:tt)*) => {};
}

// Test code
const fn do_or_die(cond: bool) {
    if cond {
    } else {
        unsafe { unreachable() }
    }
}

macro_rules! assert {
    ($x:expr $(,)?) => {
        const _: () = do_or_die($x);
    };
}


#[cfg(target_arch = "aarch64")]
fn check_aarch64() {
    // These checks that the rustc feature name is used, not the LLVM feature.

    assert!(cfg!(target_feature = "neon"));
    // #[expect(unexpected_cfgs)] except that 32-bit arm actually use fp-armv8
    { assert!(cfg!(not(target_feature = "fp-armv8"))); }

    assert!(cfg!(target_feature = "fhm"));
    #[expect(unexpected_cfgs)]
    { assert!(cfg!(not(target_feature = "fp16fml"))); }

    assert!(cfg!(target_feature = "fp16"));
    #[expect(unexpected_cfgs)]
    { assert!(cfg!(not(target_feature = "fullfp16"))); }
}

#[cfg(target_arch = "x86_64")]
fn check_x86_64() {
    // This checks that the rustc feature name is used, not the LLVM feature.
    assert!(cfg!(target_feature = "rdrand"));
    #[expect(unexpected_cfgs)]
    { assert!(cfg!(not(target_feature = "rdrnd"))); }

    // Likewise: We enable LLVM's crc32 feature with SSE4.2, but Rust says it's just SSE4.2
    assert!(cfg!(target_feature = "sse4.2"));
    #[expect(unexpected_cfgs)]
    { assert!(cfg!(not(target_feature = "crc32"))); }
}
