1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Port (__NOT__ bindings) of Agner Fog's [Vector Class Library](https://github.com/vectorclass/version2) to Rust.
//! `vrl` stands for **V**ector **R**ust **L**ibrary.
//!
//! This is a library for using SIMD instructions on modern x86, x86-64 and ARM CPUs.

mod common;
mod macros;

mod vec4f;
mod vec8f;

mod intrinsics {
    #[cfg(target_arch = "x86_64")]
    pub use core::arch::x86_64::*;

    #[cfg(target_arch = "x86")]
    pub use core::arch::x86::*;

    #[cfg(target_arch = "aarch64")]
    pub use core::arch::aarch64::*;
}

pub use {
    common::*,
    vec4f::{Vec4f, Vec4fBase},
    vec8f::{Vec8f, Vec8fBase},
};

/// The VRL prelude.
///
/// Includes important traits and types to be imported with a glob:
/// ```
/// use vrl::prelude::*;
/// ```
pub mod prelude {
    pub use super::*;
}