Skip to content

Commit a760b5c

Browse files
committed
Auto merge of #121516 - RalfJung:platform-intrinsics-begone, r=oli-obk
remove platform-intrinsics ABI; make SIMD intrinsics be regular intrinsics `@Amanieu` `@workingjubilee` I don't think there is any reason these need to be "special"? The [original RFC](https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html) indicated eventually making them stable, but I think that is no longer the plan, so seems to me like we can clean this up a bit. Blocked on rust-lang/stdarch#1538, rust-lang/rust#121542.
2 parents 849b5b2 + b489c04 commit a760b5c

12 files changed

+21
-49
lines changed

tests/fail/intrinsics/simd-div-by-zero.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_div<T>(x: T, y: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_div;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-div-overflow.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_div<T>(x: T, y: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_div;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-reduce-invalid-bool.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_reduce_any<T>(x: T) -> bool;
5-
}
3+
use std::intrinsics::simd::simd_reduce_any;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-rem-by-zero.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_rem<T>(x: T, y: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_rem;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-select-bitmask-invalid.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
fn simd_select_bitmask<M, T>(m: M, yes: T, no: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_select_bitmask;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-select-invalid-bool.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
fn simd_select<M, T>(m: M, yes: T, no: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_select;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-shl-too-far.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_shl<T>(x: T, y: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_shl;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/fail/intrinsics/simd-shr-too-far.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#![feature(platform_intrinsics, repr_simd)]
1+
#![feature(core_intrinsics, repr_simd)]
22

3-
extern "platform-intrinsic" {
4-
pub(crate) fn simd_shr<T>(x: T, y: T) -> T;
5-
}
3+
use std::intrinsics::simd::simd_shr;
64

75
#[repr(simd)]
86
#[allow(non_camel_case_types)]

tests/pass/float_nan.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(float_gamma, portable_simd, core_intrinsics, platform_intrinsics)]
1+
#![feature(float_gamma, portable_simd, core_intrinsics)]
22
use std::collections::HashSet;
33
use std::fmt;
44
use std::hash::Hash;
@@ -525,12 +525,6 @@ fn test_simd() {
525525
use std::intrinsics::simd::*;
526526
use std::simd::*;
527527

528-
extern "platform-intrinsic" {
529-
fn simd_fsqrt<T>(x: T) -> T;
530-
fn simd_ceil<T>(x: T) -> T;
531-
fn simd_fma<T>(x: T, y: T, z: T) -> T;
532-
}
533-
534528
let nan = F32::nan(Neg, Quiet, 0).as_f32();
535529
check_all_outcomes(
536530
HashSet::from_iter([F32::nan(Pos, Quiet, 0), F32::nan(Neg, Quiet, 0)]),

tests/pass/portable-simd-ptrs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Separate test without strict provenance
22
//@compile-flags: -Zmiri-permissive-provenance
3-
#![feature(portable_simd, platform_intrinsics)]
3+
#![feature(portable_simd)]
44
use std::ptr;
55
use std::simd::prelude::*;
66

0 commit comments

Comments
 (0)