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

Ludovic Henry luhenry at openjdk.org
Tue Dec 3 12:38:42 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!
>> 
>> 
>> ## 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/macroAssembler_riscv.cpp line 1795:

> 1793:   vle64_v(v7, buf); addi(buf, buf, STEP);
> 1794: 
> 1795:   vmv_v_x(v31, zr);

Why the `vmv_v_x`? Where is `v31` used here? Same for https://github.com/openjdk/jdk/pull/22475/files#diff-7a5c3ed05b6f3f06ed1c59f5fc2a14ec566a6a5bd1d09606115767daa99115bdR1797

src/hotspot/cpu/riscv/macroAssembler_riscv.cpp line 1805:

> 1803: 
> 1804:   Label L_16_bytes_loop;
> 1805:   j(L_16_bytes_loop);

Why this unconditional jump which will go to the next instruction?

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

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


More information about the hotspot-dev mailing list