mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
synced 2024-11-27 14:14:30 +08:00
23cb9771bc
Copy AVX2 implementation from https://github.com/sneves/blake2-avx2 . Though this is marked experimental, libsodium uses this version. Signed-off-by: David Sterba <dsterba@suse.com>
73 lines
1.3 KiB
C
73 lines
1.3 KiB
C
/*
|
|
BLAKE2 reference source code package - optimized C implementations
|
|
|
|
Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
|
|
terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
|
|
your option. The terms of these licenses can be found at:
|
|
|
|
- CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
|
|
- OpenSSL license : https://www.openssl.org/source/license.html
|
|
- Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
More information about the BLAKE2 hash function can be found at
|
|
https://blake2.net.
|
|
*/
|
|
#ifndef BLAKE2_CONFIG_H
|
|
#define BLAKE2_CONFIG_H
|
|
|
|
/* These don't work everywhere */
|
|
#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__)
|
|
#define HAVE_SSE2
|
|
#endif
|
|
|
|
#if defined(__SSSE3__)
|
|
#define HAVE_SSSE3
|
|
#endif
|
|
|
|
#if defined(__SSE4_1__)
|
|
#define HAVE_SSE41
|
|
#endif
|
|
|
|
#if defined(__AVX__)
|
|
#define HAVE_AVX
|
|
#endif
|
|
|
|
#if defined(__AVX2__)
|
|
#define HAVE_AVX2
|
|
#endif
|
|
|
|
#if defined(__XOP__)
|
|
#define HAVE_XOP
|
|
#endif
|
|
|
|
|
|
#ifdef HAVE_AVX2
|
|
#ifndef HAVE_AVX
|
|
#define HAVE_AVX
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_XOP
|
|
#ifndef HAVE_AVX
|
|
#define HAVE_AVX
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_AVX
|
|
#ifndef HAVE_SSE41
|
|
#define HAVE_SSE41
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_SSE41
|
|
#ifndef HAVE_SSSE3
|
|
#define HAVE_SSSE3
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_SSSE3
|
|
#define HAVE_SSE2
|
|
#endif
|
|
|
|
#endif
|