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