| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |    BLAKE2 reference source code package - optimized C implementations | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  |    Written in 2012 by Samuel Neves <sneves@dei.uc.pt> | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  |    To the extent possible under law, the author(s) have dedicated all copyright | 
					
						
							|  |  |  |    and related and neighboring rights to this software to the public domain | 
					
						
							|  |  |  |    worldwide. This software is distributed without any warranty. | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  |    You should have received a copy of the CC0 Public Domain Dedication along with | 
					
						
							|  |  |  |    this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
 | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | #ifndef __BLAKE2_CONFIG_H__
 | 
					
						
							|  |  |  | #define __BLAKE2_CONFIG_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  | #if defined(__SSE2__)
 | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | #define HAVE_SSE2
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(__SSSE3__)
 | 
					
						
							|  |  |  | #define HAVE_SSSE3
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(__SSE4_1__)
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  | #define HAVE_SSE4_1
 | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(__AVX__)
 | 
					
						
							|  |  |  | #define HAVE_AVX
 | 
					
						
							|  |  |  | #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
 | 
					
						
							| 
									
										
										
										
											2019-05-23 04:32:44 +00:00
										 |  |  | #ifndef HAVE_SSE4_1
 | 
					
						
							|  |  |  | #define HAVE_SSE4_1
 | 
					
						
							| 
									
										
										
										
											2016-09-06 22:03:25 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef HAVE_SSE41
 | 
					
						
							|  |  |  | #ifndef HAVE_SSSE3
 | 
					
						
							|  |  |  | #define HAVE_SSSE3
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef HAVE_SSSE3
 | 
					
						
							|  |  |  | #define HAVE_SSE2
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if !defined(HAVE_SSE2)
 | 
					
						
							|  |  |  | #error "This code requires at least SSE2."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 |