|
|
|
|
@@ -212,9 +212,6 @@ static AARCH64_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("flagm2", Unstable(sym::aarch64_unstable_target_feature), &[]),
|
|
|
|
|
// We forbid directly toggling just `fp-armv8`; it must be toggled with `neon`.
|
|
|
|
|
("fp-armv8", Stability::Forbidden { reason: "Rust ties `fp-armv8` to `neon`" }, &[]),
|
|
|
|
|
// FEAT_FP16
|
|
|
|
|
// Rust ties FP and Neon: https://github.com/rust-lang/rust/pull/91608
|
|
|
|
|
("fp16", Stable, &["neon"]),
|
|
|
|
|
// FEAT_FP8
|
|
|
|
|
("fp8", Unstable(sym::aarch64_unstable_target_feature), &["faminmax", "lut", "bf16"]),
|
|
|
|
|
// FEAT_FP8DOT2
|
|
|
|
|
@@ -223,6 +220,9 @@ static AARCH64_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("fp8dot4", Unstable(sym::aarch64_unstable_target_feature), &["fp8fma"]),
|
|
|
|
|
// FEAT_FP8FMA
|
|
|
|
|
("fp8fma", Unstable(sym::aarch64_unstable_target_feature), &["fp8"]),
|
|
|
|
|
// FEAT_FP16
|
|
|
|
|
// Rust ties FP and Neon: https://github.com/rust-lang/rust/pull/91608
|
|
|
|
|
("fp16", Stable, &["neon"]),
|
|
|
|
|
// FEAT_FRINTTS
|
|
|
|
|
("frintts", Stable, &[]),
|
|
|
|
|
// FEAT_HBC
|
|
|
|
|
@@ -236,10 +236,10 @@ static AARCH64_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("lor", Stable, &[]),
|
|
|
|
|
// FEAT_LSE
|
|
|
|
|
("lse", Stable, &[]),
|
|
|
|
|
// FEAT_LSE128
|
|
|
|
|
("lse128", Unstable(sym::aarch64_unstable_target_feature), &["lse"]),
|
|
|
|
|
// FEAT_LSE2
|
|
|
|
|
("lse2", Unstable(sym::aarch64_unstable_target_feature), &[]),
|
|
|
|
|
// FEAT_LSE128
|
|
|
|
|
("lse128", Unstable(sym::aarch64_unstable_target_feature), &["lse"]),
|
|
|
|
|
// FEAT_LUT
|
|
|
|
|
("lut", Unstable(sym::aarch64_unstable_target_feature), &[]),
|
|
|
|
|
// FEAT_MOPS
|
|
|
|
|
@@ -283,14 +283,14 @@ static AARCH64_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("sme", Unstable(sym::aarch64_unstable_target_feature), &["bf16"]),
|
|
|
|
|
// FEAT_SME_B16B16
|
|
|
|
|
("sme-b16b16", Unstable(sym::aarch64_unstable_target_feature), &["bf16", "sme2", "sve-b16b16"]),
|
|
|
|
|
// FEAT_SME_F16F16
|
|
|
|
|
("sme-f16f16", Unstable(sym::aarch64_unstable_target_feature), &["sme2"]),
|
|
|
|
|
// FEAT_SME_F64F64
|
|
|
|
|
("sme-f64f64", Unstable(sym::aarch64_unstable_target_feature), &["sme"]),
|
|
|
|
|
// FEAT_SME_F8F16
|
|
|
|
|
("sme-f8f16", Unstable(sym::aarch64_unstable_target_feature), &["sme-f8f32"]),
|
|
|
|
|
// FEAT_SME_F8F32
|
|
|
|
|
("sme-f8f32", Unstable(sym::aarch64_unstable_target_feature), &["sme2", "fp8"]),
|
|
|
|
|
// FEAT_SME_F16F16
|
|
|
|
|
("sme-f16f16", Unstable(sym::aarch64_unstable_target_feature), &["sme2"]),
|
|
|
|
|
// FEAT_SME_F64F64
|
|
|
|
|
("sme-f64f64", Unstable(sym::aarch64_unstable_target_feature), &["sme"]),
|
|
|
|
|
// FEAT_SME_FA64
|
|
|
|
|
("sme-fa64", Unstable(sym::aarch64_unstable_target_feature), &["sme", "sve2"]),
|
|
|
|
|
// FEAT_SME_I16I64
|
|
|
|
|
@@ -376,8 +376,8 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("amx-avx512", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-bf16", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-complex", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-fp16", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-fp8", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-fp16", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-int8", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-movrs", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("amx-tf32", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
@@ -385,6 +385,7 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("amx-transpose", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
|
|
|
|
("apxf", Unstable(sym::apx_target_feature), &[]),
|
|
|
|
|
("avx", Stable, &["sse4.2"]),
|
|
|
|
|
("avx2", Stable, &["avx"]),
|
|
|
|
|
(
|
|
|
|
|
"avx10.1",
|
|
|
|
|
Unstable(sym::avx10_target_feature),
|
|
|
|
|
@@ -405,7 +406,6 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
("avx10.2", Unstable(sym::avx10_target_feature), &["avx10.1"]),
|
|
|
|
|
("avx2", Stable, &["avx"]),
|
|
|
|
|
("avx512bf16", Stable, &["avx512bw"]),
|
|
|
|
|
("avx512bitalg", Stable, &["avx512bw"]),
|
|
|
|
|
("avx512bw", Stable, &["avx512f"]),
|
|
|
|
|
@@ -423,8 +423,8 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("avxifma", Stable, &["avx2"]),
|
|
|
|
|
("avxneconvert", Stable, &["avx2"]),
|
|
|
|
|
("avxvnni", Stable, &["avx2"]),
|
|
|
|
|
("avxvnniint16", Stable, &["avx2"]),
|
|
|
|
|
("avxvnniint8", Stable, &["avx2"]),
|
|
|
|
|
("avxvnniint16", Stable, &["avx2"]),
|
|
|
|
|
("bmi1", Stable, &[]),
|
|
|
|
|
("bmi2", Stable, &[]),
|
|
|
|
|
("cmpxchg16b", Stable, &[]),
|
|
|
|
|
@@ -498,12 +498,12 @@ static POWERPC_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("altivec", Unstable(sym::powerpc_target_feature), &[]),
|
|
|
|
|
("msync", Unstable(sym::powerpc_target_feature), &[]),
|
|
|
|
|
("partword-atomics", Unstable(sym::powerpc_target_feature), &[]),
|
|
|
|
|
("power10-vector", Unstable(sym::powerpc_target_feature), &["power9-vector"]),
|
|
|
|
|
("power8-altivec", Unstable(sym::powerpc_target_feature), &["altivec"]),
|
|
|
|
|
("power8-crypto", Unstable(sym::powerpc_target_feature), &["power8-altivec"]),
|
|
|
|
|
("power8-vector", Unstable(sym::powerpc_target_feature), &["vsx", "power8-altivec"]),
|
|
|
|
|
("power9-altivec", Unstable(sym::powerpc_target_feature), &["power8-altivec"]),
|
|
|
|
|
("power9-vector", Unstable(sym::powerpc_target_feature), &["power8-vector", "power9-altivec"]),
|
|
|
|
|
("power10-vector", Unstable(sym::powerpc_target_feature), &["power9-vector"]),
|
|
|
|
|
("quadword-atomics", Unstable(sym::powerpc_target_feature), &[]),
|
|
|
|
|
("vsx", Unstable(sym::powerpc_target_feature), &["altivec"]),
|
|
|
|
|
// tidy-alphabetical-end
|
|
|
|
|
@@ -535,8 +535,8 @@ static RISCV_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("unaligned-scalar-mem", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("unaligned-vector-mem", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("v", Unstable(sym::riscv_target_feature), &["zvl128b", "zve64d"]),
|
|
|
|
|
("za128rs", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("za64rs", Unstable(sym::riscv_target_feature), &["za128rs"]), // Za64rs ⊃ Za128rs
|
|
|
|
|
("za128rs", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("zaamo", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("zabha", Unstable(sym::riscv_target_feature), &["zaamo"]),
|
|
|
|
|
("zacas", Unstable(sym::riscv_target_feature), &["zaamo"]),
|
|
|
|
|
@@ -613,18 +613,18 @@ static RISCV_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("zvksg", Unstable(sym::riscv_target_feature), &["zvks", "zvkg"]),
|
|
|
|
|
("zvksh", Unstable(sym::riscv_target_feature), &["zve32x"]),
|
|
|
|
|
("zvkt", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("zvl1024b", Unstable(sym::riscv_target_feature), &["zvl512b"]),
|
|
|
|
|
("zvl128b", Unstable(sym::riscv_target_feature), &["zvl64b"]),
|
|
|
|
|
("zvl16384b", Unstable(sym::riscv_target_feature), &["zvl8192b"]),
|
|
|
|
|
("zvl2048b", Unstable(sym::riscv_target_feature), &["zvl1024b"]),
|
|
|
|
|
("zvl256b", Unstable(sym::riscv_target_feature), &["zvl128b"]),
|
|
|
|
|
("zvl32768b", Unstable(sym::riscv_target_feature), &["zvl16384b"]),
|
|
|
|
|
("zvl32b", Unstable(sym::riscv_target_feature), &[]),
|
|
|
|
|
("zvl4096b", Unstable(sym::riscv_target_feature), &["zvl2048b"]),
|
|
|
|
|
("zvl512b", Unstable(sym::riscv_target_feature), &["zvl256b"]),
|
|
|
|
|
("zvl64b", Unstable(sym::riscv_target_feature), &["zvl32b"]),
|
|
|
|
|
("zvl65536b", Unstable(sym::riscv_target_feature), &["zvl32768b"]),
|
|
|
|
|
("zvl128b", Unstable(sym::riscv_target_feature), &["zvl64b"]),
|
|
|
|
|
("zvl256b", Unstable(sym::riscv_target_feature), &["zvl128b"]),
|
|
|
|
|
("zvl512b", Unstable(sym::riscv_target_feature), &["zvl256b"]),
|
|
|
|
|
("zvl1024b", Unstable(sym::riscv_target_feature), &["zvl512b"]),
|
|
|
|
|
("zvl2048b", Unstable(sym::riscv_target_feature), &["zvl1024b"]),
|
|
|
|
|
("zvl4096b", Unstable(sym::riscv_target_feature), &["zvl2048b"]),
|
|
|
|
|
("zvl8192b", Unstable(sym::riscv_target_feature), &["zvl4096b"]),
|
|
|
|
|
("zvl16384b", Unstable(sym::riscv_target_feature), &["zvl8192b"]),
|
|
|
|
|
("zvl32768b", Unstable(sym::riscv_target_feature), &["zvl16384b"]),
|
|
|
|
|
("zvl65536b", Unstable(sym::riscv_target_feature), &["zvl32768b"]),
|
|
|
|
|
// tidy-alphabetical-end
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
@@ -651,13 +651,13 @@ const BPF_FEATURES: &[(&str, Stability, ImpliedFeatures)] =
|
|
|
|
|
|
|
|
|
|
static CSKY_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
// tidy-alphabetical-start
|
|
|
|
|
("10e60", Unstable(sym::csky_target_feature), &["7e10"]),
|
|
|
|
|
("2e3", Unstable(sym::csky_target_feature), &["e2"]),
|
|
|
|
|
("3e3r1", Unstable(sym::csky_target_feature), &[]),
|
|
|
|
|
("3e3r2", Unstable(sym::csky_target_feature), &["3e3r1", "doloop"]),
|
|
|
|
|
("3e3r3", Unstable(sym::csky_target_feature), &["doloop"]),
|
|
|
|
|
("3e7", Unstable(sym::csky_target_feature), &["2e3"]),
|
|
|
|
|
("7e10", Unstable(sym::csky_target_feature), &["3e7"]),
|
|
|
|
|
("10e60", Unstable(sym::csky_target_feature), &["7e10"]),
|
|
|
|
|
("cache", Unstable(sym::csky_target_feature), &[]),
|
|
|
|
|
("doloop", Unstable(sym::csky_target_feature), &[]),
|
|
|
|
|
("dsp1e2", Unstable(sym::csky_target_feature), &[]),
|
|
|
|
|
@@ -726,12 +726,12 @@ const IBMZ_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|
|
|
|
("guarded-storage", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("high-word", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
// LLVM does not define message-security-assist-extension versions 1, 2, 6, 10 and 11.
|
|
|
|
|
("message-security-assist-extension12", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("message-security-assist-extension3", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("message-security-assist-extension4", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("message-security-assist-extension5", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("message-security-assist-extension8", Unstable(sym::s390x_target_feature), &["message-security-assist-extension3"]),
|
|
|
|
|
("message-security-assist-extension9", Unstable(sym::s390x_target_feature), &["message-security-assist-extension3", "message-security-assist-extension4"]),
|
|
|
|
|
("message-security-assist-extension12", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("miscellaneous-extensions-2", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("miscellaneous-extensions-3", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
("miscellaneous-extensions-4", Unstable(sym::s390x_target_feature), &[]),
|
|
|
|
|
|