Chris@102: /* Chris@102: * Copyright Andrey Semashev 2013. Chris@102: * Distributed under the Boost Software License, Version 1.0. Chris@102: * (See accompanying file LICENSE_1_0.txt or copy at Chris@102: * http://www.boost.org/LICENSE_1_0.txt) Chris@102: */ Chris@102: /*! Chris@102: * \file uuid/detail/config.hpp Chris@102: * Chris@102: * \brief This header defines configuration macros for Boost.UUID. Chris@102: */ Chris@102: Chris@102: #ifndef BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_ Chris@102: #define BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_ Chris@102: Chris@102: #include Chris@102: Chris@102: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@102: #pragma once Chris@102: #endif Chris@102: Chris@102: #if !defined(BOOST_UUID_NO_SIMD) Chris@102: Chris@102: #if defined(__GNUC__) && defined(__SSE2__) Chris@102: Chris@102: // GCC and its pretenders go here Chris@102: #ifndef BOOST_UUID_USE_SSE2 Chris@102: #define BOOST_UUID_USE_SSE2 Chris@102: #endif Chris@102: Chris@102: #if defined(__SSE3__) && !defined(BOOST_UUID_USE_SSE3) Chris@102: #define BOOST_UUID_USE_SSE3 Chris@102: #endif Chris@102: Chris@102: #if defined(__SSE4_1__) && !defined(BOOST_UUID_USE_SSE41) Chris@102: #define BOOST_UUID_USE_SSE41 Chris@102: #endif Chris@102: Chris@102: #elif defined(_MSC_VER) && (defined(_M_X64) || (defined(_M_IX86) && defined(_M_IX86_FP) && _M_IX86_FP >= 2)) Chris@102: Chris@102: #ifndef BOOST_UUID_USE_SSE2 Chris@102: #define BOOST_UUID_USE_SSE2 Chris@102: #endif Chris@102: Chris@102: #elif !defined(BOOST_UUID_USE_SSE41) && !defined(BOOST_UUID_USE_SSE3) && !defined(BOOST_UUID_USE_SSE2) Chris@102: Chris@102: #define BOOST_UUID_NO_SIMD Chris@102: Chris@102: #endif Chris@102: Chris@102: // More advanced ISA extensions imply less advanced are also available Chris@102: #if !defined(BOOST_UUID_USE_SSE3) && defined(BOOST_UUID_USE_SSE41) Chris@102: #define BOOST_UUID_USE_SSE3 Chris@102: #endif Chris@102: Chris@102: #if !defined(BOOST_UUID_USE_SSE2) && defined(BOOST_UUID_USE_SSE3) Chris@102: #define BOOST_UUID_USE_SSE2 Chris@102: #endif Chris@102: Chris@102: #endif // !defined(BOOST_UUID_NO_SIMD) Chris@102: Chris@102: #endif // BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_