binius_field/arch/portable/
packed_aes_64.rs

1// Copyright 2024-2025 Irreducible Inc.
2
3use cfg_if::cfg_if;
4
5use crate::{
6	arch::portable::packed_macros::{portable_macros::*, *},
7	arithmetic_traits::{impl_invert_with, impl_mul_with, impl_square_with},
8};
9
10define_packed_binary_fields!(
11	underlier: u64,
12	packed_fields: [
13		packed_field {
14			name: PackedAESBinaryField8x8b,
15			scalar: AESTowerField8b,
16			mul:       (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
17			square:    (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
18			invert:    (if gfni_x86 PackedAESBinaryField16x8b else PairwiseTableStrategy),
19			transform: (PackedStrategy),
20		},
21	]
22);