https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117997
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Verified on current trunk. Seems the crc pass matched: crc_36 = .CRC (crc_16, 0, 7); crc_93 = .CRC (crc_32, 0, 7); crc_83 = .CRC (crc_52, 0, 32773); and they are expanded using some table lookup or what: crc_table_for_crc_8_polynomial_0x7 and crc_table_for_crc_16_polynomial_0x8005 But that is the same thing as on x86_64 and the tables between x86_64 and aarch64 have the same content.