binius_field/arch/x86_64/
mod.rs

1// Copyright 2023-2025 Irreducible Inc.
2
3use cfg_if::cfg_if;
4
5#[cfg(target_feature = "gfni")]
6mod gfni;
7
8#[cfg(target_feature = "pclmulqdq")]
9mod pclmul;
10mod simd;
11
12cfg_if! {
13	if #[cfg(target_feature = "sse2")] {
14		pub(super) mod m128;
15		pub mod packed_128;
16		pub mod packed_polyval_128;
17		pub mod packed_aes_128;
18	} else {
19		pub use super::portable::packed_128;
20		pub use super::portable::packed_aes_128;
21		pub use super::portable::packed_polyval_128;
22	}
23}
24
25cfg_if! {
26	if #[cfg(target_feature = "avx2")] {
27		pub(super) mod m256;
28		pub mod  packed_256;
29		pub mod packed_polyval_256;
30		pub mod packed_aes_256;
31	} else {
32		pub use super::portable::packed_256;
33		pub use super::portable::packed_aes_256;
34		pub use super::portable::packed_polyval_256;
35	}
36}
37
38cfg_if! {
39	if #[cfg(target_feature = "avx512f")] {
40		pub(super) mod m512;
41		pub mod packed_512;
42		pub mod packed_polyval_512;
43		pub mod packed_aes_512;
44	} else {
45		pub use super::portable::packed_512;
46		pub use super::portable::packed_aes_512;
47		pub use super::portable::packed_polyval_512;
48	}
49}