binius_field/arch/portable/
packed_aes_64.rs1use cfg_if::cfg_if;
4
5use super::packed_macros::impl_broadcast;
6use crate::{
7 arch::{
8 PairwiseTableStrategy,
9 portable::packed_macros::{portable_macros::*, *},
10 },
11 arithmetic_traits::{impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with},
12};
13
14define_packed_binary_fields!(
15 underlier: u64,
16 packed_fields: [
17 packed_field {
18 name: PackedAESBinaryField8x8b,
19 scalar: AESTowerField8b,
20 mul: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
21 square: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
22 invert: (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
23 mul_alpha: (PairwiseTableStrategy),
24 transform: (PackedStrategy),
25 },
26 ]
27);