]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/libb2/blake2-config.h
Consolidate identical ELF auxargs type defintions.
[FreeBSD/FreeBSD.git] / sys / contrib / libb2 / blake2-config.h
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 #if defined(__SSE2__)
18 #define HAVE_SSE2
19 #endif
20
21 #if defined(__SSSE3__)
22 #define HAVE_SSSE3
23 #endif
24
25 #if defined(__SSE4_1__)
26 #define HAVE_SSE4_1
27 #endif
28
29 #if defined(__AVX__)
30 #define HAVE_AVX
31 #endif
32
33 #if defined(__XOP__)
34 #define HAVE_XOP
35 #endif
36
37
38 #ifdef HAVE_AVX2
39 #ifndef HAVE_AVX
40 #define HAVE_AVX
41 #endif
42 #endif
43
44 #ifdef HAVE_XOP
45 #ifndef HAVE_AVX
46 #define HAVE_AVX
47 #endif
48 #endif
49
50 #ifdef HAVE_AVX
51 #ifndef HAVE_SSE4_1
52 #define HAVE_SSE4_1
53 #endif
54 #endif
55
56 #ifdef HAVE_SSE41
57 #ifndef HAVE_SSSE3
58 #define HAVE_SSSE3
59 #endif
60 #endif
61
62 #ifdef HAVE_SSSE3
63 #define HAVE_SSE2
64 #endif
65
66 #if !defined(HAVE_SSE2)
67 #error "This code requires at least SSE2."
68 #endif
69
70 #endif
71