RFR: 8339910: RISC-V: crc32 intrinsic with carry-less multiplication [v3]

Robbin Ehn rehn at openjdk.org
Thu Dec 5 07:20:44 UTC 2024


On Mon, 2 Dec 2024 13:54:18 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> Hi,
>> Can you review this patch to implement CRC32 with `vclmul` (Zvbc)?
>> Thanks!
>> 
>> For more details of the algorithm, please check the paper: "Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction - Intel", please also refer to the corresponding code in aarch64 or x86 ones.
>> As the riscv carry-less multiplication instructions are a bit different from the other platforms, so the implementation itself is also a bit different from others.
>> 
>> 
>> ## Test
>> test/hotspot/jtreg/compiler/intrinsics/zip/TestCRC32.java, 
>> test/jdk/java/util/zip/TestCRC32.java
>
> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
> 
>   add some background description

src/hotspot/cpu/riscv/stubRoutines_riscv.cpp line 494:

> 492:     0x5a546366UL, 0x00000001UL,
> 493:     0x751997d0UL, 0x00000001UL,
> 494:     0xccaa009eUL, 0x00000000UL,

Did you calculate these yourself, or where do they come from?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22475#discussion_r1870781890


More information about the hotspot-dev mailing list