1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Copyright 2024 Ulvetanna Inc.

use cfg_if::cfg_if;

// We will choose the AVX512 Implementation of Grøstl if our machine supports the various AVX512
// extensions, otherwise defaults to the portable implementation which was found to be fast in most
// machines
cfg_if! {
	if #[cfg(all(target_arch = "x86_64",target_feature = "avx512bw",target_feature = "avx512vbmi",target_feature = "avx512f",target_feature = "gfni",))] {
		mod groestl_avx512;
		pub use groestl_avx512::Groestl256Core;
	} else {
		mod groestl_table;
		mod portable;
		pub use portable::Groestl256Core;
	}
}