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.

Reply via email to