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