RFR: 8364305: Support AVX10 saturating floating point conversion instructions [v2]
Mohamed Issa
missa at openjdk.org
Thu Aug 28 05:11:58 UTC 2025
On Tue, 26 Aug 2025 18:52:22 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Mohamed Issa has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Add memory variants of the AVX 10.2 floating point conversion instructions
>
> src/hotspot/cpu/x86/assembler_x86.cpp line 2406:
>
>> 2404: }
>> 2405:
>> 2406: void Assembler::evcvttpd2qqs(XMMRegister dst, XMMRegister src, int vector_len) {
>
> Please also add memory operand flavour of these assembler routines.
I added memory variants of the instructions.
> src/hotspot/cpu/x86/x86.ad line 7776:
>
>> 7774: %}
>> 7775:
>> 7776: instruct cast2DtoX_reg_evex(vec dst, vec src, rFlagsReg cr) %{
>
> Vector instruction do not effect EFLAGS register.
I removed the EFLAGS register parameters.
> src/hotspot/cpu/x86/x86.ad line 7776:
>
>> 7774: %}
>> 7775:
>> 7776: instruct cast2DtoX_reg_evex(vec dst, vec src, rFlagsReg cr) %{
>
> How about adding a CICS flavour of these patterns. As now we have a single instruction to cover entire conversion semantics memory operand patterns will be useful.
I'm not familiar with CICS. Could you elaborate? Also, I added memory variants.
> src/hotspot/cpu/x86/x86.ad line 7780:
>
>> 7778: is_integral_type(Matcher::vector_element_basic_type(n)));
>> 7779: match(Set dst (VectorCastD2X src));
>> 7780: effect(KILL cr);
>
> Remove effect.
I removed the effect calls.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2306185634
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2306183884
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2306185433
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2306184151
More information about the hotspot-compiler-dev
mailing list