Chris@102
|
1 /*
|
Chris@102
|
2 * Copyright Andrey Semashev 2013.
|
Chris@102
|
3 * Distributed under the Boost Software License, Version 1.0.
|
Chris@102
|
4 * (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@102
|
5 * http://www.boost.org/LICENSE_1_0.txt)
|
Chris@102
|
6 */
|
Chris@102
|
7 /*!
|
Chris@102
|
8 * \file uuid/detail/config.hpp
|
Chris@102
|
9 *
|
Chris@102
|
10 * \brief This header defines configuration macros for Boost.UUID.
|
Chris@102
|
11 */
|
Chris@102
|
12
|
Chris@102
|
13 #ifndef BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
|
Chris@102
|
14 #define BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
|
Chris@102
|
15
|
Chris@102
|
16 #include <boost/config.hpp>
|
Chris@102
|
17
|
Chris@102
|
18 #ifdef BOOST_HAS_PRAGMA_ONCE
|
Chris@102
|
19 #pragma once
|
Chris@102
|
20 #endif
|
Chris@102
|
21
|
Chris@102
|
22 #if !defined(BOOST_UUID_NO_SIMD)
|
Chris@102
|
23
|
Chris@102
|
24 #if defined(__GNUC__) && defined(__SSE2__)
|
Chris@102
|
25
|
Chris@102
|
26 // GCC and its pretenders go here
|
Chris@102
|
27 #ifndef BOOST_UUID_USE_SSE2
|
Chris@102
|
28 #define BOOST_UUID_USE_SSE2
|
Chris@102
|
29 #endif
|
Chris@102
|
30
|
Chris@102
|
31 #if defined(__SSE3__) && !defined(BOOST_UUID_USE_SSE3)
|
Chris@102
|
32 #define BOOST_UUID_USE_SSE3
|
Chris@102
|
33 #endif
|
Chris@102
|
34
|
Chris@102
|
35 #if defined(__SSE4_1__) && !defined(BOOST_UUID_USE_SSE41)
|
Chris@102
|
36 #define BOOST_UUID_USE_SSE41
|
Chris@102
|
37 #endif
|
Chris@102
|
38
|
Chris@102
|
39 #elif defined(_MSC_VER) && (defined(_M_X64) || (defined(_M_IX86) && defined(_M_IX86_FP) && _M_IX86_FP >= 2))
|
Chris@102
|
40
|
Chris@102
|
41 #ifndef BOOST_UUID_USE_SSE2
|
Chris@102
|
42 #define BOOST_UUID_USE_SSE2
|
Chris@102
|
43 #endif
|
Chris@102
|
44
|
Chris@102
|
45 #elif !defined(BOOST_UUID_USE_SSE41) && !defined(BOOST_UUID_USE_SSE3) && !defined(BOOST_UUID_USE_SSE2)
|
Chris@102
|
46
|
Chris@102
|
47 #define BOOST_UUID_NO_SIMD
|
Chris@102
|
48
|
Chris@102
|
49 #endif
|
Chris@102
|
50
|
Chris@102
|
51 // More advanced ISA extensions imply less advanced are also available
|
Chris@102
|
52 #if !defined(BOOST_UUID_USE_SSE3) && defined(BOOST_UUID_USE_SSE41)
|
Chris@102
|
53 #define BOOST_UUID_USE_SSE3
|
Chris@102
|
54 #endif
|
Chris@102
|
55
|
Chris@102
|
56 #if !defined(BOOST_UUID_USE_SSE2) && defined(BOOST_UUID_USE_SSE3)
|
Chris@102
|
57 #define BOOST_UUID_USE_SSE2
|
Chris@102
|
58 #endif
|
Chris@102
|
59
|
Chris@102
|
60 #endif // !defined(BOOST_UUID_NO_SIMD)
|
Chris@102
|
61
|
Chris@102
|
62 #endif // BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
|