Detect NVIDIA Vera CPUs in absl::base_internal::GetCpuType(). Add `CpuType::kNvidiaVera` (`implementer == 0x4e`, `part_number == 0x010` on aarch64 Linux) and route it to the accelerated ARM CRC32C and CRC memcpy engines alongside `CpuType::kNvidiaGrace`. PiperOrigin-RevId: 1006572770
diff --git a/absl/base/internal/cpu_detect.cc b/absl/base/internal/cpu_detect.cc index 43b6c4b..e6858e3 100644 --- a/absl/base/internal/cpu_detect.cc +++ b/absl/base/internal/cpu_detect.cc
@@ -316,6 +316,14 @@ return CpuType::kUnknown; } break; + case 0x4e: + switch (part_number) { + case 0x010: + return CpuType::kNvidiaVera; + default: + return CpuType::kUnknown; + } + break; case 0xc0: switch (part_number) { case 0xac3:
diff --git a/absl/base/internal/cpu_detect.h b/absl/base/internal/cpu_detect.h index 06eb72a..1ce3eba 100644 --- a/absl/base/internal/cpu_detect.h +++ b/absl/base/internal/cpu_detect.h
@@ -54,6 +54,7 @@ kArmNeoverseN3, kArmNeoverseN4, kNvidiaGrace, + kNvidiaVera, }; // Returns the type of host CPU this code is running on. Returns kUnknown if
diff --git a/absl/crc/internal/crc_memcpy_x86_arm_combined.cc b/absl/crc/internal/crc_memcpy_x86_arm_combined.cc index dac0446..f2fdb4b 100644 --- a/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +++ b/absl/crc/internal/crc_memcpy_x86_arm_combined.cc
@@ -423,6 +423,7 @@ case CpuType::kArmNeoverseV1: case CpuType::kArmNeoverseV2: case CpuType::kNvidiaGrace: + case CpuType::kNvidiaVera: return { /*.temporal=*/new AcceleratedCrcMemcpyEngine<3, 0>(), /*.non_temporal=*/new CrcNonTemporalMemcpyEngine(),
diff --git a/absl/crc/internal/crc_x86_arm_combined.cc b/absl/crc/internal/crc_x86_arm_combined.cc index c62fa0c..6a3d373 100644 --- a/absl/crc/internal/crc_x86_arm_combined.cc +++ b/absl/crc/internal/crc_x86_arm_combined.cc
@@ -1183,6 +1183,7 @@ case CpuType::kArmNeoverseN3: case CpuType::kArmNeoverseN4: case CpuType::kNvidiaGrace: + case CpuType::kNvidiaVera: return new CRC32AcceleratedX86ARMCombinedMultipleStreams< 1, 1, PclmulStreamType::NEON_PCLMUL_EOR3>(); case CpuType::kAmpereSiryn: