binius_field/arch/
arch_optimal.rs1use cfg_if::cfg_if;
4
5use crate::{BinaryField1b, PackedSubfield};
6
7cfg_if! {
8 if #[cfg(target_arch = "x86_64")] {
9 cfg_if! {
10 if #[cfg(target_feature = "avx512f")] {
11 pub type OptimalPackedB128 = crate::PackedBinaryGhash4x128b;
12
13 } else if #[cfg(target_feature = "avx2")] {
14 pub type OptimalPackedB128 = crate::PackedBinaryGhash2x128b;
15
16 } else if #[cfg(target_feature = "sse2")] {
17 pub type OptimalPackedB128 = crate::PackedBinaryGhash1x128b;
18 }
19 }
20 } else if #[cfg(all(target_arch = "aarch64", target_feature = "neon", target_feature = "aes"))] {
21 pub type OptimalPackedB128 = crate::PackedBinaryGhash1x128b;
22
23 } else {
24 pub type OptimalPackedB128 = crate::PackedBinaryGhash1x128b;
25 }
26}
27
28pub type OptimalB128 = crate::BinaryField128bGhash;
29pub type OptimalPackedB1 = PackedSubfield<OptimalPackedB128, BinaryField1b>;