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

Fei Yang fyang at openjdk.org
Mon Dec 9 02:57:44 UTC 2024


On Thu, 5 Dec 2024 17:07:32 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
>> also run tests found by: `grep -lRi crc32 test/* | grep -v bench`
>
> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix flag warning

src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp line 182:

> 180:   }
> 181:   if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZVBC)) {
> 182:     VM_Version::ext_Zvbc.enable_feature();

Are we auto-enabling this experimental feature?

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

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


More information about the hotspot-dev mailing list