RFR: 8339738: RISC-V: Vectorize crc32 intrinsic [v4]

Hamlin Li mli at openjdk.org
Wed Sep 11 08:20:06 UTC 2024


On Wed, 11 Sep 2024 08:03:02 GMT, Fei Yang <fyang at openjdk.org> wrote:

>> In a summary, the code paths are went through in following order: vector(optional) -> loop unroll -> other scalar cases, it depens on data size + UseRVV. So in UseRVV case, we need all the code path.
>
> Ah, I see. Regarding the "offset is too large" issue, could the far versions of these branches help? I mean setting the `is_far` parameters to true [1].
> 
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp#L670-L675

I was thinking the similar thing.
But it's bit tedious, as I need to figure out which jump should be far and which not, or I could just simply change any where suspicious, but it's not good either.
So I pick the simplest solution to move it to the end, in other intrinsics I saw the similar code layout, they don't have the comment for it, but I guess they are doing the similar things.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20910#discussion_r1753549238


More information about the hotspot-dev mailing list