aboutsummaryrefslogtreecommitdiff
path: root/absl/crc/internal/crc_memcpy_fallback.cc
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2023-09-05 08:23:20 -0700
committerCopybara-Service <copybara-worker@google.com>2023-09-05 08:24:39 -0700
commit1a882833c0e81309d0d72d46c768820744d053df (patch)
tree8f322708542c0bdb317f034f8259d9e7501bc356 /absl/crc/internal/crc_memcpy_fallback.cc
parentfc44fa053cc91193d2bb60fb9356bcecb301242e (diff)
downloadabseil-1a882833c0e81309d0d72d46c768820744d053df.tar.gz
abseil-1a882833c0e81309d0d72d46c768820744d053df.tar.bz2
abseil-1a882833c0e81309d0d72d46c768820744d053df.zip
Add support for ARM intrinsics in crc_memcpy
This change replaces inline x86 intrinsics with generic versions that compile for both x86 and ARM depending on the target arch. This change does not enable the accelerated crc memcpy engine on ARM. That will be done in a subsequent change after the optimal number of vector and integer regions for different CPUs is determined. PiperOrigin-RevId: 562785420 Change-Id: I8ba4aa8de17587cedd92532f03767059a481f159
Diffstat (limited to 'absl/crc/internal/crc_memcpy_fallback.cc')
-rw-r--r--absl/crc/internal/crc_memcpy_fallback.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/absl/crc/internal/crc_memcpy_fallback.cc b/absl/crc/internal/crc_memcpy_fallback.cc
index 15b4b055..07795504 100644
--- a/absl/crc/internal/crc_memcpy_fallback.cc
+++ b/absl/crc/internal/crc_memcpy_fallback.cc
@@ -54,7 +54,8 @@ absl::crc32c_t FallbackCrcMemcpyEngine::Compute(void* __restrict dst,
}
// Compile the following only if we don't have
-#ifndef ABSL_INTERNAL_HAVE_X86_64_ACCELERATED_CRC_MEMCPY_ENGINE
+#if !defined(ABSL_INTERNAL_HAVE_X86_64_ACCELERATED_CRC_MEMCPY_ENGINE) && \
+ !defined(ABSL_INTERNAL_HAVE_ARM_ACCELERATED_CRC_MEMCPY_ENGINE)
CrcMemcpy::ArchSpecificEngines CrcMemcpy::GetArchSpecificEngines() {
CrcMemcpy::ArchSpecificEngines engines;
@@ -68,7 +69,8 @@ std::unique_ptr<CrcMemcpyEngine> CrcMemcpy::GetTestEngine(int /*vector*/,
return std::make_unique<FallbackCrcMemcpyEngine>();
}
-#endif // ABSL_INTERNAL_HAVE_X86_64_ACCELERATED_CRC_MEMCPY_ENGINE
+#endif // !ABSL_INTERNAL_HAVE_X86_64_ACCELERATED_CRC_MEMCPY_ENGINE &&
+ // !ABSL_INTERNAL_HAVE_ARM_ACCELERATED_CRC_MEMCPY_ENGINE
} // namespace crc_internal
ABSL_NAMESPACE_END