RFR: 8365772: RISC-V: correctly prereserve NaN payload when converting from float to float16 in vector way [v2]
Fei Yang
fyang at openjdk.org
Mon Aug 25 01:58:01 UTC 2025
On Fri, 22 Aug 2025 12:35:12 GMT, Hamlin Li <mli at openjdk.org> wrote:
>> Hi,
>> Can you help to review this patch?
>>
>> This is a follow-up of https://github.com/openjdk/jdk/pull/26838, fixes the vector version in a similar way.
>>
>> Thanks!
>
> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
>
> comments & readability
Overall looks fine to me. I have a question about the test change.
src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp line 2495:
> 2493: __ bind(stub.entry());
> 2494:
> 2495: // mul is already set to mf2 in float_to_float16_v.
Although not directly related, can you rename `tmp` to `vtmp` and add an assertion about the three vector regiters (just like we do in `C2_MacroAssembler::float_to_float16_v`)? And it would help if we add some extra code comment about `v0` mask register which indicates which elements are NaNs. Or maybe better to pass `v0` as well?
What I mean is something like:
assert_different_registers(dst, src, vtmp);
// Active elements (NaNs) are marked in v0 mask register
// and mul is already set to mf2 in float_to_float16_v.
src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp line 2517:
> 2515: const int fp16_mantissa_bits = 10;
> 2516:
> 2517: // preserve the sign bit and exponent.
Suggestion: `// preserve the sign bit and exponent, clear mantissa.`
test/hotspot/jtreg/compiler/vectorization/TestFloatConversionsVectorNaN.java line 92:
> 90: // Setup
> 91: for (int i = 0; i < ARRLEN; i++) {
> 92: if (i%3 == 0) {
Question: What is this change for? Do you have more details?
-------------
PR Review: https://git.openjdk.org/jdk/pull/26883#pullrequestreview-3149218656
PR Review Comment: https://git.openjdk.org/jdk/pull/26883#discussion_r2296547748
PR Review Comment: https://git.openjdk.org/jdk/pull/26883#discussion_r2296550895
PR Review Comment: https://git.openjdk.org/jdk/pull/26883#discussion_r2296660079
More information about the hotspot-compiler-dev
mailing list