|
68 | 68 | #![feature(allow_internal_unstable)] |
69 | 69 | #![feature(asm)] |
70 | 70 | #![feature(associated_type_defaults)] |
| 71 | +#![feature(attr_literals)] |
71 | 72 | #![feature(cfg_target_feature)] |
72 | 73 | #![feature(cfg_target_has_atomic)] |
73 | 74 | #![feature(concat_idents)] |
74 | 75 | #![feature(const_fn)] |
75 | 76 | #![feature(custom_attribute)] |
| 77 | +#![feature(doc_spotlight)] |
76 | 78 | #![feature(fundamental)] |
77 | 79 | #![feature(i128_type)] |
78 | 80 | #![feature(inclusive_range_syntax)] |
79 | 81 | #![feature(intrinsics)] |
| 82 | +#![feature(iterator_flatten)] |
| 83 | +#![feature(iterator_repeat_with)] |
80 | 84 | #![feature(lang_items)] |
| 85 | +#![feature(link_llvm_intrinsics)] |
81 | 86 | #![feature(never_type)] |
82 | 87 | #![feature(no_core)] |
83 | 88 | #![feature(on_unimplemented)] |
84 | 89 | #![feature(optin_builtin_traits)] |
85 | 90 | #![feature(prelude_import)] |
86 | 91 | #![feature(repr_simd, platform_intrinsics)] |
87 | 92 | #![feature(rustc_attrs)] |
| 93 | +#![feature(rustc_const_unstable)] |
| 94 | +#![feature(simd_ffi)] |
88 | 95 | #![feature(specialization)] |
89 | 96 | #![feature(staged_api)] |
| 97 | +#![feature(stmt_expr_attributes)] |
| 98 | +#![feature(target_feature)] |
90 | 99 | #![feature(unboxed_closures)] |
91 | 100 | #![feature(untagged_unions)] |
92 | 101 | #![feature(unwind_attributes)] |
93 | | -#![feature(doc_spotlight)] |
94 | | -#![feature(rustc_const_unstable)] |
95 | | -#![feature(iterator_repeat_with)] |
96 | | -#![feature(iterator_flatten)] |
| 102 | + |
| 103 | +#![cfg_attr(stage0, allow(unused_attributes))] |
97 | 104 |
|
98 | 105 | #[prelude_import] |
99 | 106 | #[allow(unused)] |
@@ -179,3 +186,21 @@ mod char_private; |
179 | 186 | mod iter_private; |
180 | 187 | mod tuple; |
181 | 188 | mod unit; |
| 189 | + |
| 190 | +// Pull in the the `coresimd` crate directly into libcore. This is where all the |
| 191 | +// architecture-specific (and vendor-specific) intrinsics are defined. AKA |
| 192 | +// things like SIMD and such. Note that the actual source for all this lies in a |
| 193 | +// different repository, rust-lang-nursery/stdsimd. That's why the setup here is |
| 194 | +// a bit wonky. |
| 195 | +#[path = "../stdsimd/coresimd/mod.rs"] |
| 196 | +#[allow(missing_docs, missing_debug_implementations, dead_code)] |
| 197 | +#[unstable(feature = "stdsimd", issue = "48556")] |
| 198 | +#[cfg(not(stage0))] // allow changes to how stdsimd works in stage0 |
| 199 | +mod coresimd; |
| 200 | + |
| 201 | +#[unstable(feature = "stdsimd", issue = "48556")] |
| 202 | +#[cfg(not(stage0))] |
| 203 | +pub use coresimd::simd; |
| 204 | +#[unstable(feature = "stdsimd", issue = "48556")] |
| 205 | +#[cfg(not(stage0))] |
| 206 | +pub use coresimd::arch; |
0 commit comments