Next: AVR Built-in Functions, Previous: ARM NEON Intrinsics, Up: Target Builtins [Contents][Index]

#### 6.56.4 ARM ACLE Intrinsics

These built-in intrinsics for the ARMv8-A CRC32 extension are available when the `-march=armv8-a+crc` switch is used:

#### 6.56.4.1 CRC32 intrinsics

- uint32_t __crc32b (uint32_t, uint8_t)
  Form of expected instruction(s): `crc32b r0, r0, r0`

- uint32_t __crc32h (uint32_t, uint16_t)
  Form of expected instruction(s): `crc32h r0, r0, r0`

- uint32_t __crc32w (uint32_t, uint32_t)
  Form of expected instruction(s): `crc32w r0, r0, r0`

- uint32_t __crc32d (uint32_t, uint64_t)
  Form of expected instruction(s): Two `crc32w r0, r0, r0` instructions for AArch32. One `crc32w w0, w0, x0` instruction for AArch64.

- uint32_t __crc32cb (uint32_t, uint8_t)
  Form of expected instruction(s): `crc32cb r0, r0, r0`

- uint32_t __crc32ch (uint32_t, uint16_t)
  Form of expected instruction(s): `crc32ch r0, r0, r0`

- uint32_t __crc32cw (uint32_t, uint32_t)
  Form of expected instruction(s): `crc32cw r0, r0, r0`

- uint32_t __crc32cd (uint32_t, uint64_t)
  Form of expected instruction(s): Two `crc32cw r0, r0, r0` instructions for AArch32. One `crc32cw w0, w0, x0` instruction for AArch64.