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