Fabcoin Core  0.16.2
P2P Digital Currency
blake2-config.h
Go to the documentation of this file.
1 /*
2  BLAKE2 reference source code package - optimized C implementations
3 
4  Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
5 
6  To the extent possible under law, the author(s) have dedicated all copyright
7  and related and neighboring rights to this software to the public domain
8  worldwide. This software is distributed without any warranty.
9 
10  You should have received a copy of the CC0 Public Domain Dedication along with
11  this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
12 */
13 #pragma once
14 #ifndef __BLAKE2_CONFIG_H__
15 #define __BLAKE2_CONFIG_H__
16 
17 // These don't work everywhere
18 #if (defined(__SSE2__) || defined(_M_AMD_64) || defined(_M_X64))
19 #define HAVE_SSE2
20 #endif
21 
22 #if defined(__SSSE3__)
23 #define HAVE_SSSE3
24 #endif
25 
26 #if defined(__SSE4_1__)
27 #define HAVE_SSE41
28 #endif
29 
30 #if defined(__AVX__)
31 #define HAVE_AVX
32 #endif
33 
34 #if defined(__XOP__)
35 #define HAVE_XOP
36 #endif
37 
38 
39 #ifdef HAVE_AVX2
40 #ifndef HAVE_AVX
41 #define HAVE_AVX
42 #endif
43 #endif
44 
45 #ifdef HAVE_XOP
46 #ifndef HAVE_AVX
47 #define HAVE_AVX
48 #endif
49 #endif
50 
51 #ifdef HAVE_AVX
52 #ifndef HAVE_SSE41
53 #define HAVE_SSE41
54 #endif
55 #endif
56 
57 #ifdef HAVE_SSE41
58 #ifndef HAVE_SSSE3
59 #define HAVE_SSSE3
60 #endif
61 #endif
62 
63 #ifdef HAVE_SSSE3
64 #define HAVE_SSE2
65 #endif
66 
67 #if !defined(HAVE_SSE2)
68 
69 #ifdef _MSC_VER
70 // enforce required stuff for now
71 #define HAVE_SSE2
72 //#define HAVE_SSSE3
73 #define HAVE_SSE41
74 #else
75 # error "This code requires at least SSE 4.1"
76 #endif
77 
78 #endif
79 
80 #endif
81