binius_field/arch/x86_64/
packed_aes_128.rs1use cfg_if::cfg_if;
4
5use super::{m128::M128, packed_macros::*};
6use crate::{
7 arch::portable::{packed::PackedPrimitiveType, packed_macros::*},
8 arithmetic_traits::{
9 impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with,
10 impl_transformation_with_strategy,
11 },
12};
13
14define_packed_binary_fields!(
15 underlier: M128,
16 packed_fields: [
17 packed_field {
18 name: PackedAESBinaryField16x8b,
19 scalar: AESTowerField8b,
20 alpha_idx: _,
21 mul: (if gfni GfniStrategy else PairwiseTableStrategy),
22 square: (if gfni ReuseMultiplyStrategy else PairwiseTableStrategy),
23 invert: (if gfni GfniStrategy else PairwiseTableStrategy),
24 mul_alpha: (if gfni ReuseMultiplyStrategy else PairwiseTableStrategy),
25 transform: (if gfni GfniStrategy else SimdStrategy),
26 },
27 ]
28);