binius_field/arch/x86_64/
mod.rs

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
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2023-2025 Irreducible Inc.

use cfg_if::cfg_if;

#[cfg(target_feature = "gfni")]
mod gfni;

#[cfg(target_feature = "pclmulqdq")]
mod pclmul;
mod simd;

cfg_if! {
	if #[cfg(target_feature = "sse2")] {
		pub(super) mod m128;
		pub mod packed_128;
		pub mod packed_polyval_128;
		pub mod packed_aes_128;
	} else {
		pub use super::portable::packed_128;
		pub use super::portable::packed_aes_128;
		pub use super::portable::packed_polyval_128;
	}
}

cfg_if! {
	if #[cfg(target_feature = "avx2")] {
		pub(super) mod m256;
		pub mod  packed_256;
		pub mod packed_polyval_256;
		pub mod packed_aes_256;
	} else {
		pub use super::portable::packed_256;
		pub use super::portable::packed_aes_256;
		pub use super::portable::packed_polyval_256;
	}
}

cfg_if! {
	if #[cfg(target_feature = "avx512f")] {
		pub(super) mod m512;
		pub mod packed_512;
		pub mod packed_polyval_512;
		pub mod packed_aes_512;
	} else {
		pub use super::portable::packed_512;
		pub use super::portable::packed_aes_512;
		pub use super::portable::packed_polyval_512;
	}
}