https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120719
Bug ID: 120719 Summary: __builtin_rev_crc32_data8() should revert to __builtin_ia32_crc32qi() when available Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sh1.gccbug at tikouka dot nz Target Milestone: --- For some architectures there are families of CRC instructions available to fill the role of __builtin_*_crc*_*() for specific configurations, which would be much more efficient than the code currently generated. For example: https://godbolt.org/z/rn4jozq61 As I recall Arm supports two different polynomials, and I think RISCV has an extension to support one. And these extend to 8, 16, 32, and 64-bit input data types as well. BTW, I'm going to post the same link again regarding the `constexpr` situation.