#pragma once
+#include <folly/Portability.h>
+
+#if FOLLY_SSE_PREREQ(4, 2)
#include <immintrin.h>
+#endif
+
#include <stdint.h>
#include <cstddef>
uint32_t
crc32_hw(const uint8_t* data, size_t nbytes, uint32_t startingChecksum = ~0U);
+#if FOLLY_SSE_PREREQ(4, 2)
uint32_t
crc32_hw_aligned(uint32_t remainder, const __m128i* p, size_t vec_count);
+#endif
/**
* Check whether a hardware-accelerated CRC-32 implementation is