RFR: 8357551: RISC-V: support CMoveF/D vectorization [v2]
Hamlin Li
mli at openjdk.org
Mon Nov 17 16:47:05 UTC 2025
On Mon, 17 Nov 2025 13:38:40 GMT, Hamlin Li <mli at openjdk.org> wrote:
>> src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp line 2133:
>>
>>> 2131: break;
>>> 2132: case BoolTest::ge:
>>> 2133: assert(false, "Should go to BoolTest::le case");
>>
>> I am not sure if it's safe to have these assertions for `ge` and `gt`. It seems to me that we should handle all possible condition codes here. Check this bug: https://bugs.openjdk.org/browse/JDK-8358892. We have added handling for `ge` and `gt` in `C2_MacroAssembler::enc_cmove_cmp_fp` to fix it.
>
> Make sense! Thanks!
> I'll add the implementation for these condition codes.
I added some code and tests.
But the code path for `ge`/`gt` can not be triggerred (I added some new test based on previous tests added in https://bugs.openjdk.org/browse/JDK-8358892). So for now, I think it's safer for us to keep the `assert`, in this way, in the future when we get it triggerred by some code we can compse a jtreg test and fix it.
How do you think about it?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28309#discussion_r2534803387
More information about the hotspot-dev
mailing list