about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan DPC <99973273+Dylan-DPC@users.noreply.github.com>2022-03-04 22:58:34 +0100
committerGitHub <noreply@github.com>2022-03-04 22:58:34 +0100
commit18a07a78a52d9678c3b00ff675c94865a835d8cb (patch)
treea24c9303359498be1bdc6a33b68edbf39f1c9228
parentafa85f08410aaa874f628c2704818ef2fb126f00 (diff)
parent50e7450bac9fd9faafb7adb7540ab07ddea896d1 (diff)
downloadrust-18a07a78a52d9678c3b00ff675c94865a835d8cb.tar.gz
rust-18a07a78a52d9678c3b00ff675c94865a835d8cb.zip
Rollup merge of #94577 - RalfJung:simd-miri, r=scottmcm
only disable SIMD for doctests in Miri (not for the stdlib build itself)

Also we can enable library/core/tests/simd.rs now, Miri supports enough SIMD for that.
-rw-r--r--library/core/src/lib.rs4
-rw-r--r--library/core/src/slice/mod.rs6
-rw-r--r--library/core/tests/simd.rs2
-rw-r--r--library/core/tests/slice.rs2
4 files changed, 7 insertions, 7 deletions
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index e7896b2cb66..45fbcf44b35 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -408,12 +408,12 @@ pub mod arch {
 #[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(all(miri, doctest)))] // Miri does not support all SIMD intrinsics
+#[cfg(not(all(miri, doctest)))] // Skip SIMD doctests in Miri
 mod core_simd;
 
 #[doc = include_str!("../../portable-simd/crates/core_simd/src/core_simd_docs.md")]
 #[unstable(feature = "portable_simd", issue = "86656")]
-#[cfg(not(all(miri, doctest)))] // Miri does not support all SIMD intrinsics
+#[cfg(not(all(miri, doctest)))] // Skip SIMD doctests in Miri
 pub mod simd {
     #[unstable(feature = "portable_simd", issue = "86656")]
     pub use crate::core_simd::simd::*;
diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs
index 08b95d791a3..9467c7f54ba 100644
--- a/library/core/src/slice/mod.rs
+++ b/library/core/src/slice/mod.rs
@@ -16,7 +16,7 @@ use crate::option::Option::{None, Some};
 use crate::ptr;
 use crate::result::Result;
 use crate::result::Result::{Err, Ok};
-#[cfg(not(miri))] // Miri does not support all SIMD intrinsics
+#[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
 use crate::simd::{self, Simd};
 use crate::slice;
 
@@ -3540,7 +3540,7 @@ impl<T> [T] {
     /// assert_eq!(basic_simd_sum(&numbers[1..99]), 4949.0);
     /// ```
     #[unstable(feature = "portable_simd", issue = "86656")]
-    #[cfg(not(miri))] // Miri does not support all SIMD intrinsics
+    #[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
     pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])
     where
         Simd<T, LANES>: AsRef<[T; LANES]>,
@@ -3584,7 +3584,7 @@ impl<T> [T] {
     /// be lifted in a way that would make it possible to see panics from this
     /// method for something like `LANES == 3`.
     #[unstable(feature = "portable_simd", issue = "86656")]
-    #[cfg(not(miri))] // Miri does not support all SIMD intrinsics
+    #[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
     pub fn as_simd_mut<const LANES: usize>(&mut self) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])
     where
         Simd<T, LANES>: AsMut<[T; LANES]>,
diff --git a/library/core/tests/simd.rs b/library/core/tests/simd.rs
index b84f3228e78..5b516a72360 100644
--- a/library/core/tests/simd.rs
+++ b/library/core/tests/simd.rs
@@ -1,5 +1,3 @@
-#![cfg(not(miri))] // Miri does not support all SIMD intrinsics
-
 use core::simd::f32x4;
 
 #[test]
diff --git a/library/core/tests/slice.rs b/library/core/tests/slice.rs
index 06a30d7096c..7c4d2f266f9 100644
--- a/library/core/tests/slice.rs
+++ b/library/core/tests/slice.rs
@@ -2457,9 +2457,11 @@ take_tests! {
     (take_last_mut_empty, (), None, &mut []),
 }
 
+#[cfg(not(miri))] // unused in Miri
 const EMPTY_MAX: &'static [()] = &[(); usize::MAX];
 
 // can't be a constant due to const mutability rules
+#[cfg(not(miri))] // unused in Miri
 macro_rules! empty_max_mut {
     () => {
         &mut [(); usize::MAX] as _