diff --git a/simd/src/arm/mod.rs b/simd/src/arm/mod.rs index de85a679..deed1b7e 100644 --- a/simd/src/arm/mod.rs +++ b/simd/src/arm/mod.rs @@ -10,6 +10,7 @@ use std::arch::aarch64::{self, float32x2_t, float32x4_t, int32x2_t, int32x4_t}; use std::arch::aarch64::{uint32x2_t, uint32x4_t}; +use std::intrinsics::simd::*; use std::f32; use std::fmt::{self, Debug, Formatter}; use std::mem; @@ -869,33 +870,6 @@ impl Index for U32x4 { } } -// Intrinsics - -extern "platform-intrinsic" { - fn simd_add(x: T, y: T) -> T; - fn simd_div(x: T, y: T) -> T; - fn simd_mul(x: T, y: T) -> T; - fn simd_sub(x: T, y: T) -> T; - - fn simd_shr(x: T, y: T) -> T; - - fn simd_and(x: T, y: T) -> T; - fn simd_or(x: T, y: T) -> T; - fn simd_xor(x: T, y: T) -> T; - - fn simd_fmin(x: T, y: T) -> T; - fn simd_fmax(x: T, y: T) -> T; - - fn simd_eq(x: T, y: T) -> U; - fn simd_gt(x: T, y: T) -> U; - fn simd_le(x: T, y: T) -> U; - fn simd_lt(x: T, y: T) -> U; - - fn simd_shuffle(x: T, y: T, idx: I) -> U; - - fn simd_cast(x: T) -> U; -} - extern "C" { #[link_name = "llvm.fabs.v2f32"] fn fabs_v2f32(a: float32x2_t) -> float32x2_t; diff --git a/simd/src/lib.rs b/simd/src/lib.rs index a05817f2..4759d883 100644 --- a/simd/src/lib.rs +++ b/simd/src/lib.rs @@ -8,7 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![cfg_attr(pf_rustc_nightly, feature(link_llvm_intrinsics, platform_intrinsics))] +#![cfg_attr(pf_rustc_nightly, allow(internal_features))] +#![cfg_attr(pf_rustc_nightly, feature(link_llvm_intrinsics, core_intrinsics))] #![cfg_attr(all(target_arch = "aarch64", pf_rustc_nightly), feature(stdarch_arm_crc32))] #![cfg_attr(pf_rustc_nightly, feature(simd_ffi))]