-- 291f7ef542f73e4801ab5108014bc02344ef31df by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 437835981 Change-Id: I42fd92e74903894533ac9984d7f622e3ba20f468 -- 2e8caf1a57c50b518e05b4bca48e4fe1bb19af82 by Andy Getzendanner <durandal@google.com>: Internal change PiperOrigin-RevId: 437832673 Change-Id: I61b35089418d01a54cecf161b254b68252bebff3 -- b927482ccc399f7e337b60582988b914d9946e4e by Derek Mauro <dmauro@google.com>: Simplify endian intrinsics for modern compilers All modern compilers have either __builtin_bswapN (gcc, clang) or _byteswap_TYPE (MSVC). The other intrinsic definitions are no longer necessary. PiperOrigin-RevId: 437772295 Change-Id: Ifb3d88ba24b9097f87ceb202272b36d2f5e5117f -- b6782a2247a16d5c14706a74ec577c19963d9f97 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 437373174 Change-Id: I0f77e1780dee90d7a3c32a08d96c4aeb624a57b4 -- a53e0c724e37b0b01515a99bd25394b8e21ffdfc by Derek Mauro <dmauro@google.com>: Unify detection of SSE2 and SSSE3 instruction sets and include the proper headers Fix the intrinsic implementation of FastHexToBufferZeroPad16 in numbers.h which only relies on SSSE3, not SSE 4.2. https://godbolt.org/z/Pf5bn1Yv9 Closes #639 PiperOrigin-RevId: 437286940 Change-Id: Ic97948399b61b91e9c0bccd09313b795b904d714 -- f173f597cb2a75ef2a989f45a496334b85e6f40d by Abseil Team <absl-team@google.com>: Change assertion function to enable clearer error messages. PiperOrigin-RevId: 437227057 Change-Id: If420d2f63b51feef6648762f344d5be012cd9c85 GitOrigin-RevId: 291f7ef542f73e4801ab5108014bc02344ef31dfpull/1157/head
parent
0c6302fe42
commit
3204cc0625
12 changed files with 101 additions and 171 deletions
@ -1,50 +0,0 @@ |
||||
// 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
|
||||
//
|
||||
// https://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 ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2 |
||||
#if defined(__SSE2__) || \ |
||||
(defined(_MSC_VER) && \
|
||||
(defined(_M_X64) || (defined(_M_IX86) && _M_IX86_FP >= 2))) |
||||
#define ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2 1 |
||||
#else |
||||
#define ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2 0 |
||||
#endif |
||||
#endif |
||||
|
||||
#ifndef ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSSE3 |
||||
#ifdef __SSSE3__ |
||||
#define ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSSE3 1 |
||||
#else |
||||
#define ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSSE3 0 |
||||
#endif |
||||
#endif |
||||
|
||||
#if ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSSE3 && \ |
||||
!ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2 |
||||
#error "Bad configuration!" |
||||
#endif |
||||
|
||||
#if ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2 |
||||
#include <emmintrin.h> |
||||
#endif |
||||
|
||||
#if ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSSE3 |
||||
#include <tmmintrin.h> |
||||
#endif |
||||
|
||||
#endif // ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_
|
Loading…
Reference in new issue