common.h 454 B

123456789101112131415161718
  1. #pragma once
  2. #include <util/system/defaults.h>
  3. namespace NArgonish {
  4. /**
  5. * Instruction sets for which Argon2 is optimized
  6. */
  7. enum class EInstructionSet : ui32 {
  8. REF = 0, /// Reference implementation
  9. #if !defined(_arm64_)
  10. SSE2 = 1, /// SSE2 optimized version
  11. SSSE3 = 2, /// SSSE3 optimized version
  12. SSE41 = 3, /// SSE4.1 optimized version
  13. AVX2 = 4 /// AVX2 optimized version
  14. #endif
  15. };
  16. }