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::{impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with},
9};
10
11define_packed_binary_fields!(
12 underlier: M128,
13 packed_fields: [
14 packed_field {
15 name: PackedAESBinaryField16x8b,
16 scalar: AESTowerField8b,
17 alpha_idx: _,
18 mul: (if gfni GfniStrategy else PairwiseTableStrategy),
19 square: (if gfni ReuseMultiplyStrategy else PairwiseTableStrategy),
20 invert: (if gfni GfniStrategy else PairwiseTableStrategy),
21 mul_alpha: (if gfni ReuseMultiplyStrategy else PairwiseTableStrategy),
22 transform: (if gfni GfniStrategy else SimdStrategy),
23 },
24 ]
25);