Skip to content

Commit 4c03210

Browse files
authored
Rollup merge of rust-lang#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.
2 parents 415180d + 50e7450 commit 4c03210

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

library/core/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,12 @@ pub mod arch {
408408
#[allow(missing_debug_implementations, dead_code, unsafe_op_in_unsafe_fn, unused_unsafe)]
409409
#[allow(rustdoc::bare_urls)]
410410
#[unstable(feature = "portable_simd", issue = "86656")]
411-
#[cfg(not(all(miri, doctest)))] // Miri does not support all SIMD intrinsics
411+
#[cfg(not(all(miri, doctest)))] // Skip SIMD doctests in Miri
412412
mod core_simd;
413413

414414
#[doc = include_str!("../../portable-simd/crates/core_simd/src/core_simd_docs.md")]
415415
#[unstable(feature = "portable_simd", issue = "86656")]
416-
#[cfg(not(all(miri, doctest)))] // Miri does not support all SIMD intrinsics
416+
#[cfg(not(all(miri, doctest)))] // Skip SIMD doctests in Miri
417417
pub mod simd {
418418
#[unstable(feature = "portable_simd", issue = "86656")]
419419
pub use crate::core_simd::simd::*;

library/core/src/slice/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::option::Option::{None, Some};
1616
use crate::ptr;
1717
use crate::result::Result;
1818
use crate::result::Result::{Err, Ok};
19-
#[cfg(not(miri))] // Miri does not support all SIMD intrinsics
19+
#[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
2020
use crate::simd::{self, Simd};
2121
use crate::slice;
2222

@@ -3540,7 +3540,7 @@ impl<T> [T] {
35403540
/// assert_eq!(basic_simd_sum(&numbers[1..99]), 4949.0);
35413541
/// ```
35423542
#[unstable(feature = "portable_simd", issue = "86656")]
3543-
#[cfg(not(miri))] // Miri does not support all SIMD intrinsics
3543+
#[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
35443544
pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])
35453545
where
35463546
Simd<T, LANES>: AsRef<[T; LANES]>,
@@ -3584,7 +3584,7 @@ impl<T> [T] {
35843584
/// be lifted in a way that would make it possible to see panics from this
35853585
/// method for something like `LANES == 3`.
35863586
#[unstable(feature = "portable_simd", issue = "86656")]
3587-
#[cfg(not(miri))] // Miri does not support all SIMD intrinsics
3587+
#[cfg(not(all(miri, doctest)))] // Miri skips SIMD doctests
35883588
pub fn as_simd_mut<const LANES: usize>(&mut self) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])
35893589
where
35903590
Simd<T, LANES>: AsMut<[T; LANES]>,

library/core/tests/simd.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![cfg(not(miri))] // Miri does not support all SIMD intrinsics
2-
31
use core::simd::f32x4;
42

53
#[test]

library/core/tests/slice.rs

+2
Original file line numberDiff line numberDiff line change
@@ -2457,9 +2457,11 @@ take_tests! {
24572457
(take_last_mut_empty, (), None, &mut []),
24582458
}
24592459

2460+
#[cfg(not(miri))] // unused in Miri
24602461
const EMPTY_MAX: &'static [()] = &[(); usize::MAX];
24612462

24622463
// can't be a constant due to const mutability rules
2464+
#[cfg(not(miri))] // unused in Miri
24632465
macro_rules! empty_max_mut {
24642466
() => {
24652467
&mut [(); usize::MAX] as _

0 commit comments

Comments
 (0)