binius_field/arch/portable/
packed_aes_32.rs

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