|
native 0.0.1
Vectors, masks and wide register packs for C++26
|
Functions | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32 (std::uint32_t accumulator, std::uint8_t value) noexcept |
| Update the CRC32 accumulator with exactly 8 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32 (std::uint32_t accumulator, std::uint16_t value) noexcept |
| Update the CRC32 accumulator with exactly 16 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32 (std::uint32_t accumulator, std::uint32_t value) noexcept |
| Update the CRC32 accumulator with exactly 32 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32 (std::uint32_t accumulator, std::uint64_t value) noexcept |
| Update the CRC32 accumulator with exactly 64 input bits. | |
| template<isa< arm > Arch, class A, class B> | |
| void | native::crc32 (A, B)=delete |
| Reject implicit narrowing or conversion to a different operand width. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32c (std::uint32_t accumulator, std::uint8_t value) noexcept |
| Update the CRC32C accumulator with exactly 8 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32c (std::uint32_t accumulator, std::uint16_t value) noexcept |
| Update the CRC32C accumulator with exactly 16 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32c (std::uint32_t accumulator, std::uint32_t value) noexcept |
| Update the CRC32C accumulator with exactly 32 input bits. | |
|
template<isa< arm > Arch> requires (Arch.has(arm_feature::crc)) | |
| constexpr std::uint32_t | native::crc32c (std::uint32_t accumulator, std::uint64_t value) noexcept |
| Update the CRC32C accumulator with exactly 64 input bits. | |
| template<isa< arm > Arch, class A, class B> | |
| void | native::crc32c (A, B)=delete |
| Reject implicit narrowing or conversion to a different operand width. | |
Raw CRC32 and CRC32C updates, consuming operand bits from least to most significant. CRC32 uses reflected polynomial 0xedb88320; CRC32C uses 0x82f63b78. Neither applies an initial or final complement. Runtime calls require arm_feature::crc and an enabled, admitted crc target. Constant evaluation also accepts ISA tags without CRC; it supplies no runtime fallback. The accumulator and result are always 32 bits, including 64-bit operands. These integer operations do not change floating-point state.