diff options
author | Abseil Team <absl-team@google.com> | 2018-12-16 15:32:37 -0800 |
---|---|---|
committer | Mark Barolak <mbar@google.com> | 2018-12-17 13:22:17 -0500 |
commit | 111ca7060a6ff50115ca85b59f6b5d8c8c5e9105 (patch) | |
tree | 5bf21b8c285a3098d34689efe547d77c387beea8 /absl/container/internal/have_sse.h | |
parent | 389ec3f906f018661a5308458d623d01f96d7b23 (diff) |
Export of internal Abseil changes.
--
a2adbf75201f6b7feba929f77dfc4f87f9c1110b by Abseil Team <absl-team@google.com>:
This change allows for capturing the address of the mutex from which a call to `Block(...)` could be introducing latency. The attribute is a no-op if the application is not being built with XRay instrumentation.
See http://llvm.org/docs/XRay.html for more information about XRay.
PiperOrigin-RevId: 225752598
--
6bc7f25573ddc6711f484dfacab9459f45e0bf42 by Abseil Team <absl-team@google.com>:
Update absl/utility/CMakeLists.txt to use new functions
i.e. absl_cc_(library|test)
PiperOrigin-RevId: 225651883
--
4acde5e72032f31a26a1ffa53a28f35dbb0bd7d3 by Abseil Team <absl-team@google.com>:
Update absl/types/CMakeLists.txt to use new functions
i.e. absl_cc_(library|test)
PiperOrigin-RevId: 225584788
--
fe2c740d64b17cece25eee4e5d2196a7c059d3e9 by Abseil Team <absl-team@google.com>:
Update auto-generated build options files.
PiperOrigin-RevId: 225557283
--
cd779dddceeee191ee82deb6b9030c4db288e758 by Jon Cohen <cohenjon@google.com>:
Internal change.
PiperOrigin-RevId: 225556657
--
3d56dd132d845930c3fb520a39ee77ecb2430bd2 by Matt Kulukundis <kfm@google.com>:
Internal cleanup
PiperOrigin-RevId: 225488946
GitOrigin-RevId: a2adbf75201f6b7feba929f77dfc4f87f9c1110b
Change-Id: I1b2178e053bdebc8cf3dcb017b0e247619b81a0c
Diffstat (limited to 'absl/container/internal/have_sse.h')
-rw-r--r-- | absl/container/internal/have_sse.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/absl/container/internal/have_sse.h b/absl/container/internal/have_sse.h new file mode 100644 index 00000000..29347889 --- /dev/null +++ b/absl/container/internal/have_sse.h @@ -0,0 +1,49 @@ +// Copyright 2018 The Abseil Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Shared config probing for SSE instructions used in Swiss tables. +#ifndef ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_ +#define ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_ + +#ifndef SWISSTABLE_HAVE_SSE2 +#if defined(__SSE2__) || \ + (defined(_MSC_VER) && \ + (defined(_M_X64) || (defined(_M_IX86) && _M_IX86_FP >= 2))) +#define SWISSTABLE_HAVE_SSE2 1 +#else +#define SWISSTABLE_HAVE_SSE2 0 +#endif +#endif + +#ifndef SWISSTABLE_HAVE_SSSE3 +#ifdef __SSSE3__ +#define SWISSTABLE_HAVE_SSSE3 1 +#else +#define SWISSTABLE_HAVE_SSSE3 0 +#endif +#endif + +#if SWISSTABLE_HAVE_SSSE3 && !SWISSTABLE_HAVE_SSE2 +#error "Bad configuration!" +#endif + +#if SWISSTABLE_HAVE_SSE2 +#include <emmintrin.h> +#endif + +#if SWISSTABLE_HAVE_SSSE3 +#include <tmmintrin.h> +#endif + +#endif // ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_ |