Add the avx10.1 and avx10.2 target features
This commit is contained in:
parent
d3508a8ad0
commit
163fb854a2
8 changed files with 48 additions and 1 deletions
|
|
@ -294,6 +294,9 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
|
|||
None
|
||||
}
|
||||
("x86", "movrs") if get_version().0 < 20 => None,
|
||||
("x86", "avx10.1") => Some(LLVMFeature::new("avx10.1-512")),
|
||||
("x86", "avx10.2") if get_version().0 < 20 => None,
|
||||
("x86", "avx10.2") if get_version().0 >= 20 => Some(LLVMFeature::new("avx10.2-512")),
|
||||
(_, s) => Some(LLVMFeature::new(s)),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -389,6 +389,8 @@ declare_features! (
|
|||
(unstable, async_for_loop, "1.77.0", Some(118898)),
|
||||
/// Allows `async` trait bound modifier.
|
||||
(unstable, async_trait_bounds, "1.85.0", Some(62290)),
|
||||
/// Allows using Intel AVX10 target features and intrinsics
|
||||
(unstable, avx10_target_feature, "CURRENT_RUSTC_VERSION", Some(138843)),
|
||||
/// Allows using C-variadics.
|
||||
(unstable, c_variadic, "1.34.0", Some(44930)),
|
||||
/// Allows the use of `#[cfg(contract_checks)` to check if contract checks are enabled.
|
||||
|
|
|
|||
|
|
@ -540,6 +540,7 @@ symbols! {
|
|||
autodiff,
|
||||
automatically_derived,
|
||||
avx,
|
||||
avx10_target_feature,
|
||||
avx512_target_feature,
|
||||
avx512bw,
|
||||
avx512f,
|
||||
|
|
|
|||
|
|
@ -391,6 +391,26 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||
("amx-tile", Unstable(sym::x86_amx_intrinsics), &[]),
|
||||
("amx-transpose", Unstable(sym::x86_amx_intrinsics), &["amx-tile"]),
|
||||
("avx", Stable, &["sse4.2"]),
|
||||
(
|
||||
"avx10.1",
|
||||
Unstable(sym::avx10_target_feature),
|
||||
&[
|
||||
"avx512bf16",
|
||||
"avx512bitalg",
|
||||
"avx512bw",
|
||||
"avx512cd",
|
||||
"avx512dq",
|
||||
"avx512f",
|
||||
"avx512fp16",
|
||||
"avx512ifma",
|
||||
"avx512vbmi",
|
||||
"avx512vbmi2",
|
||||
"avx512vl",
|
||||
"avx512vnni",
|
||||
"avx512vpopcntdq",
|
||||
],
|
||||
),
|
||||
("avx10.2", Unstable(sym::avx10_target_feature), &["avx10.1"]),
|
||||
("avx2", Stable, &["avx"]),
|
||||
("avx512bf16", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
||||
("avx512bitalg", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
//@ no-auto-check-cfg
|
||||
//@ compile-flags: --check-cfg=cfg()
|
||||
//@ normalize-stderr: "and \d+ more" -> "and X more"
|
||||
//@ normalize-stderr: "`[a-zA-Z0-9_-]+`" -> "`xxx`"
|
||||
//@ normalize-stderr: "`[a-zA-Z0-9_\.-]+`" -> "`xxx`"
|
||||
|
||||
fn main() {
|
||||
cfg!(target_feature = "zebra");
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
|
|||
`amx-transpose`
|
||||
`atomics`
|
||||
`avx`
|
||||
`avx10.1`
|
||||
`avx10.2`
|
||||
`avx2`
|
||||
`avx512bf16`
|
||||
`avx512bitalg`
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
//@ only-x86_64
|
||||
#[target_feature(enable = "avx10.1")]
|
||||
//~^ ERROR: currently unstable
|
||||
unsafe fn foo() {}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
error[E0658]: the target feature `avx10.1` is currently unstable
|
||||
--> $DIR/feature-gate-avx10_target_feature.rs:2:18
|
||||
|
|
||||
LL | #[target_feature(enable = "avx10.1")]
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #138843 <https://github.com/rust-lang/rust/issues/138843> for more information
|
||||
= help: add `#![feature(avx10_target_feature)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue