1#if defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32)
2[[gnu::always_inline]] nce uint32_t crc32(uint32_t a, uint8_t b) {
return __crc32b(a, b); }
3[[gnu::always_inline]] nce uint32_t crc32(uint32_t a, uint16_t b) {
return __crc32h(a, b); }
4[[gnu::always_inline]] nce uint32_t crc32(uint32_t a, uint32_t b) {
return __crc32w(a, b); }
5[[gnu::always_inline]] nce uint32_t crc32(uint32_t a, uint64_t b) {
return __crc32d(a, b); }
6[[gnu::always_inline]] nce uint32_t crc32_castagnoli(uint32_t a, uint8_t b) {
return __crc32cb(a, b); }
7[[gnu::always_inline]] nce uint32_t crc32_castagnoli(uint32_t a, uint16_t b) {
return __crc32ch(a, b); }
8[[gnu::always_inline]] nce uint32_t crc32_castagnoli(uint32_t a, uint32_t b) {
return __crc32cw(a, b); }
9[[gnu::always_inline]] nce uint32_t crc32_castagnoli(uint32_t a, uint64_t b) {
return __crc32cd(a, b); }