binius_field/arch/portable/
packed_aes_64.rs1use cfg_if::cfg_if;
4
5use super::{packed::PackedPrimitiveType, packed_macros::impl_broadcast};
6use crate::{
7 arch::portable::packed_macros::{portable_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: u64,
13 packed_fields: [
14 packed_field {
15 name: PackedAESBinaryField8x8b,
16 scalar: AESTowerField8b,
17 alpha_idx: _,
18 mul: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
19 square: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
20 invert: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
21 mul_alpha: (PairwiseTableStrategy),
22 transform: (PackedStrategy),
23 },
24 ]
25);