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_SSE4_1 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 72