Stabilize avx512_target_feature
This commit is contained in:
@@ -82,6 +82,8 @@ declare_features! (
|
|||||||
(accepted, attr_literals, "1.30.0", Some(34981)),
|
(accepted, attr_literals, "1.30.0", Some(34981)),
|
||||||
/// Allows overloading augmented assignment operations like `a += b`.
|
/// Allows overloading augmented assignment operations like `a += b`.
|
||||||
(accepted, augmented_assignments, "1.8.0", Some(28235)),
|
(accepted, augmented_assignments, "1.8.0", Some(28235)),
|
||||||
|
/// Allows using `avx512*` target features.
|
||||||
|
(accepted, avx512_target_feature, "CURRENT_RUSTC_VERSION", Some(44839)),
|
||||||
/// Allows mixing bind-by-move in patterns and references to those identifiers in guards.
|
/// Allows mixing bind-by-move in patterns and references to those identifiers in guards.
|
||||||
(accepted, bind_by_move_pattern_guards, "1.39.0", Some(15287)),
|
(accepted, bind_by_move_pattern_guards, "1.39.0", Some(15287)),
|
||||||
/// Allows bindings in the subpattern of a binding pattern.
|
/// Allows bindings in the subpattern of a binding pattern.
|
||||||
|
|||||||
@@ -318,7 +318,6 @@ declare_features! (
|
|||||||
(unstable, aarch64_ver_target_feature, "1.27.0", Some(44839)),
|
(unstable, aarch64_ver_target_feature, "1.27.0", Some(44839)),
|
||||||
(unstable, apx_target_feature, "1.88.0", Some(139284)),
|
(unstable, apx_target_feature, "1.88.0", Some(139284)),
|
||||||
(unstable, arm_target_feature, "1.27.0", Some(44839)),
|
(unstable, arm_target_feature, "1.27.0", Some(44839)),
|
||||||
(unstable, avx512_target_feature, "1.27.0", Some(44839)),
|
|
||||||
(unstable, bpf_target_feature, "1.54.0", Some(44839)),
|
(unstable, bpf_target_feature, "1.54.0", Some(44839)),
|
||||||
(unstable, csky_target_feature, "1.73.0", Some(44839)),
|
(unstable, csky_target_feature, "1.73.0", Some(44839)),
|
||||||
(unstable, ermsb_target_feature, "1.49.0", Some(44839)),
|
(unstable, ermsb_target_feature, "1.49.0", Some(44839)),
|
||||||
|
|||||||
@@ -416,25 +416,25 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||||||
),
|
),
|
||||||
("avx10.2", Unstable(sym::avx10_target_feature), &["avx10.1"]),
|
("avx10.2", Unstable(sym::avx10_target_feature), &["avx10.1"]),
|
||||||
("avx2", Stable, &["avx"]),
|
("avx2", Stable, &["avx"]),
|
||||||
("avx512bf16", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
("avx512bf16", Stable, &["avx512bw"]),
|
||||||
("avx512bitalg", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
("avx512bitalg", Stable, &["avx512bw"]),
|
||||||
("avx512bw", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512bw", Stable, &["avx512f"]),
|
||||||
("avx512cd", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512cd", Stable, &["avx512f"]),
|
||||||
("avx512dq", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512dq", Stable, &["avx512f"]),
|
||||||
("avx512f", Unstable(sym::avx512_target_feature), &["avx2", "fma", "f16c"]),
|
("avx512f", Stable, &["avx2", "fma", "f16c"]),
|
||||||
("avx512fp16", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
("avx512fp16", Stable, &["avx512bw"]),
|
||||||
("avx512ifma", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512ifma", Stable, &["avx512f"]),
|
||||||
("avx512vbmi", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
("avx512vbmi", Stable, &["avx512bw"]),
|
||||||
("avx512vbmi2", Unstable(sym::avx512_target_feature), &["avx512bw"]),
|
("avx512vbmi2", Stable, &["avx512bw"]),
|
||||||
("avx512vl", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512vl", Stable, &["avx512f"]),
|
||||||
("avx512vnni", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512vnni", Stable, &["avx512f"]),
|
||||||
("avx512vp2intersect", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512vp2intersect", Stable, &["avx512f"]),
|
||||||
("avx512vpopcntdq", Unstable(sym::avx512_target_feature), &["avx512f"]),
|
("avx512vpopcntdq", Stable, &["avx512f"]),
|
||||||
("avxifma", Unstable(sym::avx512_target_feature), &["avx2"]),
|
("avxifma", Stable, &["avx2"]),
|
||||||
("avxneconvert", Unstable(sym::avx512_target_feature), &["avx2"]),
|
("avxneconvert", Stable, &["avx2"]),
|
||||||
("avxvnni", Unstable(sym::avx512_target_feature), &["avx2"]),
|
("avxvnni", Stable, &["avx2"]),
|
||||||
("avxvnniint16", Unstable(sym::avx512_target_feature), &["avx2"]),
|
("avxvnniint16", Stable, &["avx2"]),
|
||||||
("avxvnniint8", Unstable(sym::avx512_target_feature), &["avx2"]),
|
("avxvnniint8", Stable, &["avx2"]),
|
||||||
("bmi1", Stable, &[]),
|
("bmi1", Stable, &[]),
|
||||||
("bmi2", Stable, &[]),
|
("bmi2", Stable, &[]),
|
||||||
("cmpxchg16b", Stable, &[]),
|
("cmpxchg16b", Stable, &[]),
|
||||||
@@ -442,7 +442,7 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||||||
("f16c", Stable, &["avx"]),
|
("f16c", Stable, &["avx"]),
|
||||||
("fma", Stable, &["avx"]),
|
("fma", Stable, &["avx"]),
|
||||||
("fxsr", Stable, &[]),
|
("fxsr", Stable, &[]),
|
||||||
("gfni", Unstable(sym::avx512_target_feature), &["sse2"]),
|
("gfni", Stable, &["sse2"]),
|
||||||
("kl", Unstable(sym::keylocker_x86), &["sse2"]),
|
("kl", Unstable(sym::keylocker_x86), &["sse2"]),
|
||||||
("lahfsahf", Unstable(sym::lahfsahf_target_feature), &[]),
|
("lahfsahf", Unstable(sym::lahfsahf_target_feature), &[]),
|
||||||
("lzcnt", Stable, &[]),
|
("lzcnt", Stable, &[]),
|
||||||
@@ -469,8 +469,8 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||||||
("sse4a", Unstable(sym::sse4a_target_feature), &["sse3"]),
|
("sse4a", Unstable(sym::sse4a_target_feature), &["sse3"]),
|
||||||
("ssse3", Stable, &["sse3"]),
|
("ssse3", Stable, &["sse3"]),
|
||||||
("tbm", Unstable(sym::tbm_target_feature), &[]),
|
("tbm", Unstable(sym::tbm_target_feature), &[]),
|
||||||
("vaes", Unstable(sym::avx512_target_feature), &["avx2", "aes"]),
|
("vaes", Stable, &["avx2", "aes"]),
|
||||||
("vpclmulqdq", Unstable(sym::avx512_target_feature), &["avx", "pclmulqdq"]),
|
("vpclmulqdq", Stable, &["avx", "pclmulqdq"]),
|
||||||
("widekl", Unstable(sym::keylocker_x86), &["kl"]),
|
("widekl", Unstable(sym::keylocker_x86), &["kl"]),
|
||||||
("x87", Unstable(sym::x87_target_feature), &[]),
|
("x87", Unstable(sym::x87_target_feature), &[]),
|
||||||
("xop", Unstable(sym::xop_target_feature), &[/*"fma4", */ "avx", "sse4a"]),
|
("xop", Unstable(sym::xop_target_feature), &[/*"fma4", */ "avx", "sse4a"]),
|
||||||
|
|||||||
@@ -188,9 +188,9 @@
|
|||||||
//
|
//
|
||||||
// Target features:
|
// Target features:
|
||||||
// tidy-alphabetical-start
|
// tidy-alphabetical-start
|
||||||
|
#![cfg_attr(bootstrap, feature(avx512_target_feature))]
|
||||||
#![feature(aarch64_unstable_target_feature)]
|
#![feature(aarch64_unstable_target_feature)]
|
||||||
#![feature(arm_target_feature)]
|
#![feature(arm_target_feature)]
|
||||||
#![feature(avx512_target_feature)]
|
|
||||||
#![feature(hexagon_target_feature)]
|
#![feature(hexagon_target_feature)]
|
||||||
#![feature(keylocker_x86)]
|
#![feature(keylocker_x86)]
|
||||||
#![feature(loongarch_target_feature)]
|
#![feature(loongarch_target_feature)]
|
||||||
|
|||||||
Submodule library/stdarch updated: f1c1839c0d...1dfaa4db24
@@ -1,5 +1,5 @@
|
|||||||
#![feature(avx512_target_feature)]
|
#![feature(x87_target_feature)]
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
#[target_feature(enable = "avx512ifma")]
|
#[target_feature(enable = "x87")]
|
||||||
pub unsafe fn foo() {}
|
pub unsafe fn foo() {}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
//
|
//
|
||||||
// gate-test-sse4a_target_feature
|
// gate-test-sse4a_target_feature
|
||||||
// gate-test-powerpc_target_feature
|
// gate-test-powerpc_target_feature
|
||||||
// gate-test-avx512_target_feature
|
|
||||||
// gate-test-tbm_target_feature
|
// gate-test-tbm_target_feature
|
||||||
// gate-test-arm_target_feature
|
// gate-test-arm_target_feature
|
||||||
// gate-test-hexagon_target_feature
|
// gate-test-hexagon_target_feature
|
||||||
@@ -27,7 +26,7 @@
|
|||||||
// gate-test-x87_target_feature
|
// gate-test-x87_target_feature
|
||||||
// gate-test-m68k_target_feature
|
// gate-test-m68k_target_feature
|
||||||
|
|
||||||
#[target_feature(enable = "avx512bw")]
|
#[target_feature(enable = "x87")]
|
||||||
//~^ ERROR: currently unstable
|
//~^ ERROR: currently unstable
|
||||||
unsafe fn foo() {}
|
unsafe fn foo() {}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
error[E0658]: the target feature `avx512bw` is currently unstable
|
error[E0658]: the target feature `x87` is currently unstable
|
||||||
--> $DIR/gate.rs:30:18
|
--> $DIR/gate.rs:29:18
|
||||||
|
|
|
|
||||||
LL | #[target_feature(enable = "avx512bw")]
|
LL | #[target_feature(enable = "x87")]
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
= note: see issue #44839 <https://github.com/rust-lang/rust/issues/44839> for more information
|
= note: see issue #44839 <https://github.com/rust-lang/rust/issues/44839> for more information
|
||||||
= help: add `#![feature(avx512_target_feature)]` to the crate attributes to enable
|
= help: add `#![feature(x87_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
|
= 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
|
error: aborting due to 1 previous error
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
//@ compile-flags: -Ctarget-feature=+vaes --crate-type=rlib --target=x86_64-unknown-linux-gnu
|
//@ compile-flags: -Ctarget-feature=+x87 --crate-type=rlib --target=x86_64-unknown-linux-gnu
|
||||||
//@ build-pass
|
//@ build-pass
|
||||||
//@ needs-llvm-components: x86
|
//@ needs-llvm-components: x86
|
||||||
|
|
||||||
#![feature(no_core)]
|
#![feature(no_core)]
|
||||||
#![no_core]
|
#![no_core]
|
||||||
|
|
||||||
//~? WARN unstable feature specified for `-Ctarget-feature`: `vaes`
|
//~? WARN unstable feature specified for `-Ctarget-feature`: `x87`
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
warning: unstable feature specified for `-Ctarget-feature`: `vaes`
|
warning: unstable feature specified for `-Ctarget-feature`: `x87`
|
||||||
|
|
|
|
||||||
= note: this feature is not stably supported; its behavior can change in the future
|
= note: this feature is not stably supported; its behavior can change in the future
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user