Skip to content

Split the stdsimd feature into separate features #1486

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Oct 29, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6fb2ab0
Add tracking issue for AVX-512
Amanieu May 3, 2023
d944d8f
Add tracking issue for RTM
Amanieu May 3, 2023
981b44e
Add stability attributes on x86 re-exports
Amanieu May 3, 2023
80016b6
Add tracking issue on `has_cpuid`
Amanieu May 3, 2023
7c90f9c
Revert accidental stabilization of `_mm512_storeu_ps`
Amanieu May 3, 2023
15c59a6
Add tracking issue for RISC-V intrinsics
Amanieu May 3, 2023
ba272a3
Add tracking issue for PowerPC intrinsics
Amanieu May 3, 2023
41cc0f1
Check for missing stability attributes when building outside core
Amanieu May 3, 2023
ba9fbfa
Add tracking issue for `_MM_SHUFFLE`
Amanieu May 3, 2023
4ea3fe3
Add tracking issues for WebAssembly
Amanieu May 4, 2023
63a19fd
Add tracking issue for MIPS intrinsics
Amanieu May 4, 2023
0121a7d
Add tracking issues for feature detection
Amanieu May 4, 2023
9e839f6
Add tracking issue for NVPTX intrinsics
Amanieu May 4, 2023
771cfa0
Add tracking issue for ARM NEON instructions
Amanieu May 8, 2023
c297556
Fix stability attributes for ARM crypto intrinsics
Amanieu Oct 26, 2023
47ef0a2
Fix 'since' in simd_avx512_types stability attribute
Amanieu Oct 26, 2023
c08c928
Add stability attributes for re-exports of AArch64 NEON intrinsics
Amanieu Oct 26, 2023
02d3d32
Add tracking issue for ARM CRC32 intrinsics
Amanieu Oct 26, 2023
ddd9df8
Add tracking issue for AArch64 TME intrinsics
Amanieu Oct 26, 2023
7b7046b
Add tracking issue for AArch64 prefetch intrinsic
Amanieu Oct 26, 2023
257fea9
Add tracking issue for ARM hint intrinsics
Amanieu Oct 26, 2023
23ccc91
Add tracking issue for ARM barrier intrinsics
Amanieu Oct 26, 2023
623305c
Add tracking issue for all remaining unstable NEON intrinsics
Amanieu Oct 26, 2023
60ea44f
Remove ARM udf and dbg intrinsics
Amanieu Oct 26, 2023
0708bdf
Add tracking issue for 32-bit ARM DSP instrinsics
Amanieu Oct 26, 2023
ff24118
Cleanup last uses of the stdsimd feature
Amanieu Oct 26, 2023
35681a9
Fix more missing/incorrect feature specifications
Amanieu Oct 26, 2023
d68e621
Fix various compilation errors
Amanieu Oct 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add stability attributes on x86 re-exports
  • Loading branch information
Amanieu committed Oct 26, 2023
commit 981b44e1ca73cfe6cae755cd0644b85608f47282
53 changes: 41 additions & 12 deletions crates/core_arch/src/x86/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,6 @@ mod test;
pub use self::test::*;

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m128iExt: Sized {
fn as_m128i(self) -> __m128i;

Expand Down Expand Up @@ -434,7 +433,6 @@ impl m128iExt for __m128i {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m256iExt: Sized {
fn as_m256i(self) -> __m256i;

Expand Down Expand Up @@ -487,7 +485,6 @@ impl m256iExt for __m256i {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m128Ext: Sized {
fn as_m128(self) -> __m128;

Expand All @@ -505,7 +502,6 @@ impl m128Ext for __m128 {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m128dExt: Sized {
fn as_m128d(self) -> __m128d;

Expand All @@ -523,7 +519,6 @@ impl m128dExt for __m128d {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m256Ext: Sized {
fn as_m256(self) -> __m256;

Expand All @@ -541,7 +536,6 @@ impl m256Ext for __m256 {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m256dExt: Sized {
fn as_m256d(self) -> __m256d;

Expand All @@ -559,7 +553,6 @@ impl m256dExt for __m256d {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m512iExt: Sized {
fn as_m512i(self) -> __m512i;

Expand Down Expand Up @@ -612,7 +605,6 @@ impl m512iExt for __m512i {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m512Ext: Sized {
fn as_m512(self) -> __m512;

Expand All @@ -630,7 +622,6 @@ impl m512Ext for __m512 {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m512dExt: Sized {
fn as_m512d(self) -> __m512d;

Expand All @@ -648,7 +639,6 @@ impl m512dExt for __m512d {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m128bhExt: Sized {
fn as_m128bh(self) -> __m128bh;

Expand Down Expand Up @@ -681,7 +671,6 @@ impl m128bhExt for __m128bh {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m256bhExt: Sized {
fn as_m256bh(self) -> __m256bh;

Expand Down Expand Up @@ -714,7 +703,6 @@ impl m256bhExt for __m256bh {
}

#[allow(non_camel_case_types)]
#[unstable(feature = "stdsimd_internal", issue = "none")]
pub(crate) trait m512bhExt: Sized {
fn as_m512bh(self) -> __m512bh;

Expand Down Expand Up @@ -747,121 +735,162 @@ impl m512bhExt for __m512bh {
}

mod eflags;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::eflags::*;

mod fxsr;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::fxsr::*;

mod bswap;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bswap::*;

mod rdtsc;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::rdtsc::*;

mod cpuid;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::cpuid::*;
mod xsave;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::xsave::*;

mod sse;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse::*;
mod sse2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse2::*;
mod sse3;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse3::*;
mod ssse3;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::ssse3::*;
mod sse41;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse41::*;
mod sse42;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse42::*;
mod avx;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::avx::*;
mod avx2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::avx2::*;
mod fma;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::fma::*;

mod abm;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::abm::*;
mod bmi1;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bmi1::*;

mod bmi2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bmi2::*;

#[cfg(not(stdarch_intel_sde))]
mod sse4a;
#[cfg(not(stdarch_intel_sde))]
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse4a::*;

#[cfg(not(stdarch_intel_sde))]
mod tbm;
#[cfg(not(stdarch_intel_sde))]
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::tbm::*;

mod pclmulqdq;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::pclmulqdq::*;

mod aes;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::aes::*;

mod rdrand;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::rdrand::*;

mod sha;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sha::*;

mod adx;
#[stable(feature = "simd_x86_adx", since = "1.33.0")]
pub use self::adx::*;

#[cfg(test)]
use stdarch_test::assert_instr;

mod avx512f;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512f::*;

mod avx512bw;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512bw::*;

mod avx512cd;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512cd::*;

mod avx512ifma;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512ifma::*;

mod avx512vbmi;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512vbmi::*;

mod avx512vbmi2;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512vbmi2::*;

mod avx512vnni;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512vnni::*;

mod avx512bitalg;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512bitalg::*;

mod gfni;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::gfni::*;

mod avx512vpopcntdq;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512vpopcntdq::*;

mod vaes;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::vaes::*;

mod vpclmulqdq;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::vpclmulqdq::*;

mod bt;
#[stable(feature = "simd_x86_bittest", since = "1.55.0")]
pub use self::bt::*;

mod rtm;
#[unstable(feature = "stdarch_x86_rtm", issue = "111138")]
pub use self::rtm::*;

mod f16c;
#[stable(feature = "x86_f16c_intrinsics", since = "1.68.0")]
pub use self::f16c::*;

mod avx512bf16;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512bf16::*;
18 changes: 17 additions & 1 deletion crates/core_arch/src/x86_64/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,68 @@
mod macros;

mod fxsr;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::fxsr::*;

mod sse;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse::*;

mod sse2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse2::*;

mod sse41;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse41::*;

mod sse42;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::sse42::*;

mod xsave;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::xsave::*;

mod abm;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::abm::*;

mod avx;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::avx::*;

mod bmi;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bmi::*;

mod bmi2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bmi2::*;

mod avx2;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::avx2::*;

mod avx512f;
#[unstable(feature = "stdarch_x86_avx512", issue = "111137")]
pub use self::avx512f::*;

mod bswap;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::bswap::*;

mod rdrand;
#[stable(feature = "simd_x86", since = "1.27.0")]
pub use self::rdrand::*;

mod cmpxchg16b;
#[stable(feature = "cmpxchg16b_intrinsic", since = "1.67.0")]
pub use self::cmpxchg16b::*;

mod adx;
#[stable(feature = "simd_x86_adx", since = "1.33.0")]
pub use self::adx::*;

mod bt;
#[stable(feature = "simd_x86_bittest", since = "1.55.0")]
pub use self::bt::*;