Expose portable-simd as core::simd
This enables programmers to use a safe alternative to the current `extern "platform-intrinsics"` API for writing portable SIMD code. This is `#![feature(portable_simd)]` as tracked in #86656
This commit is contained in:
parent
fdee059c90
commit
39cb863253
5 changed files with 30 additions and 0 deletions
|
@ -386,4 +386,25 @@ pub mod arch {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pull in the `core_simd` crate directly into libcore. The contents of
|
||||||
|
// `core_simd` are in a different repository: rust-lang/portable-simd.
|
||||||
|
//
|
||||||
|
// `core_simd` depends on libcore, but the contents of this module are
|
||||||
|
// set up in such a way that directly pulling it here works such that the
|
||||||
|
// crate uses this crate as its libcore.
|
||||||
|
#[path = "../../portable-simd/crates/core_simd/src/mod.rs"]
|
||||||
|
#[allow(missing_debug_implementations, dead_code, unsafe_op_in_unsafe_fn, unused_unsafe)]
|
||||||
|
#[allow(rustdoc::bare_urls)]
|
||||||
|
#[unstable(feature = "portable_simd", issue = "86656")]
|
||||||
|
#[cfg(not(bootstrap))]
|
||||||
|
mod core_simd;
|
||||||
|
|
||||||
|
#[doc = include_str!("../../portable-simd/crates/core_simd/src/core_simd_docs.md")]
|
||||||
|
#[unstable(feature = "portable_simd", issue = "86656")]
|
||||||
|
#[cfg(not(bootstrap))]
|
||||||
|
pub mod simd {
|
||||||
|
#[unstable(feature = "portable_simd", issue = "86656")]
|
||||||
|
pub use crate::core_simd::simd::*;
|
||||||
|
}
|
||||||
|
|
||||||
include!("primitive_docs.rs");
|
include!("primitive_docs.rs");
|
||||||
|
|
|
@ -320,6 +320,7 @@
|
||||||
#![feature(panic_internals)]
|
#![feature(panic_internals)]
|
||||||
#![feature(panic_unwind)]
|
#![feature(panic_unwind)]
|
||||||
#![feature(pin_static_ref)]
|
#![feature(pin_static_ref)]
|
||||||
|
#![cfg_attr(not(bootstrap), feature(portable_simd))]
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![feature(ptr_internals)]
|
#![feature(ptr_internals)]
|
||||||
#![feature(rustc_attrs)]
|
#![feature(rustc_attrs)]
|
||||||
|
@ -472,6 +473,9 @@ pub use core::pin;
|
||||||
pub use core::ptr;
|
pub use core::ptr;
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub use core::result;
|
pub use core::result;
|
||||||
|
#[unstable(feature = "portable_simd", issue = "86656")]
|
||||||
|
#[cfg(not(bootstrap))]
|
||||||
|
pub use core::simd;
|
||||||
#[unstable(feature = "async_stream", issue = "79024")]
|
#[unstable(feature = "async_stream", issue = "79024")]
|
||||||
pub use core::stream;
|
pub use core::stream;
|
||||||
#[stable(feature = "i128", since = "1.26.0")]
|
#[stable(feature = "i128", since = "1.26.0")]
|
||||||
|
|
|
@ -17,6 +17,7 @@ ignore = [
|
||||||
|
|
||||||
# do not format submodules
|
# do not format submodules
|
||||||
"library/backtrace",
|
"library/backtrace",
|
||||||
|
"library/portable-simd",
|
||||||
"library/stdarch",
|
"library/stdarch",
|
||||||
"compiler/rustc_codegen_cranelift",
|
"compiler/rustc_codegen_cranelift",
|
||||||
"compiler/rustc_codegen_gcc",
|
"compiler/rustc_codegen_gcc",
|
||||||
|
|
|
@ -4,6 +4,9 @@ error[E0277]: the trait bound `&[i8]: From<&[u8]>` is not satisfied
|
||||||
LL | let _: &[i8] = data.into();
|
LL | let _: &[i8] = data.into();
|
||||||
| ^^^^ the trait `From<&[u8]>` is not implemented for `&[i8]`
|
| ^^^^ the trait `From<&[u8]>` is not implemented for `&[i8]`
|
||||||
|
|
|
|
||||||
|
= help: the following implementations were found:
|
||||||
|
<[T; LANES] as From<Simd<T, LANES>>>
|
||||||
|
<[bool; LANES] as From<Mask<T, LANES>>>
|
||||||
= note: required because of the requirements on the impl of `Into<&[i8]>` for `&[u8]`
|
= note: required because of the requirements on the impl of `Into<&[i8]>` for `&[u8]`
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
|
@ -60,6 +60,7 @@ fn filter_dirs(path: &Path) -> bool {
|
||||||
"compiler/rustc_codegen_gcc",
|
"compiler/rustc_codegen_gcc",
|
||||||
"src/llvm-project",
|
"src/llvm-project",
|
||||||
"library/backtrace",
|
"library/backtrace",
|
||||||
|
"library/portable-simd",
|
||||||
"library/stdarch",
|
"library/stdarch",
|
||||||
"src/tools/cargo",
|
"src/tools/cargo",
|
||||||
"src/tools/clippy",
|
"src/tools/clippy",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue