RFR: 8351994: Enable Extended EVEX to REX2/REX demotion when src and dst are the same [v14]
Srinivas Vamsi Parasa
sparasa at openjdk.org
Tue Apr 29 18:58:49 UTC 2025
On Tue, 29 Apr 2025 18:23:30 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:
>> Srinivas Vamsi Parasa has updated the pull request incrementally with one additional commit since the last revision:
>>
>> cleanup ecmov, eorw and other refactoring
>
> src/hotspot/cpu/x86/assembler_x86.cpp line 1819:
>
>> 1817: void Assembler::ecmovl(Condition cc, Register dst, Register src1, Register src2) {
>> 1818: InstructionAttr attributes(AVX_128bit, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
>> 1819: evex_opcode_and_int16_ndd(dst->encoding(), src1->encoding(), src2->encoding(), VEX_SIMD_NONE, VEX_OPCODE_0F_3C, &attributes, 0x40 | cc, 0xC0, false);
>
> This could be instead call to:
> evex_opcode_int16_ndd(dst->encoding(), src2->encoding(), src1->encoding(), ..)
> We can remove the separate method evex_opcode_and_int16_ndd() method altogether.
Actually, I tried implementing using only one function but due to the argument ordering changes in the inner functions, it was not possible to do it using one high level function like `evex_opcode_int16_ndd`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24431#discussion_r2067156847
More information about the hotspot-compiler-dev
mailing list