|
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