use super::cpu::HaveAvx2;
#[inline]
pub(crate) fn bignum_copy_row_from_table(
z: &mut [u64],
table: &[u64],
height: u64,
width: u64,
index: u64,
) {
match (HaveAvx2::check(), width) {
(Some(token), 16) => {
super::bignum_copy_row_from_table_16_avx2::bignum_copy_row_from_table_16_avx2(
z, table, height, index, token,
)
}
(Some(token), width) if width.is_multiple_of(8) => {
super::bignum_copy_row_from_table_8n_avx2::bignum_copy_row_from_table_8n_avx2(
z, table, height, width, index, token,
)
}
(None, width) if width.is_multiple_of(2) => {
super::bignum_copy_row_from_table_sse2::bignum_copy_row_from_table_sse2(
z, table, height, width, index,
)
}
(_, width) => super::bignum_copy_row_from_table::bignum_copy_row_from_table(
z, table, height, width, index,
),
}
}