npsimd 0.3.0

An ergonomic library for architecture-specific vectorization.
Documentation
//! A non-portable SIMD library for Rust.
//!
//! Unlike [`core::simd`], the goal of this library is to provide an explicitly
//! non-portable but high-level API to platform vectorization instructions.  It
//! focuses on expressiveness and type safety.

#![cfg_attr(not(any(test, feature = "std")), no_std)]

// Nightly Features:

#![allow(internal_features)]
#![allow(incomplete_features)]

// Document the conditional compilation of items.
#![feature(doc_auto_cfg)]

// Allow hiding some 'cfg' items.
#![feature(doc_cfg_hide)]

// Ignore 'cfg(doc)' in conditional compilation documentation.
#![doc(cfg_hide(doc))]

// Allow the use of AVX-512 intrinsics.
#![feature(stdarch_x86_avx512)]

// Allow the use of 'repr(simd)'.
#![feature(repr_simd)]

// Allow the use of compiler intrinsics.
#![feature(core_intrinsics)]

// Allow traits with overlapping impls.
#![feature(marker_trait_attr)]

// Allow directly accessing LLVM intrinsics.
#![feature(link_llvm_intrinsics)]

// Allow passing SIMD types to LLVM intrinsics.
#![feature(simd_ffi)]

// Allow some expressions in `const` parameters.
#![feature(generic_const_exprs)]

// Allow checking for interior mutability.
#![feature(freeze)]

// Architecture Modules:

pub mod intel;

// Macro Imports:

#[doc(hidden)]
pub use core as __core;