RFR: 8329032: C2 compiler register allocation support for APX EGPRs [v7]

Sandhya Viswanathan sviswanathan at openjdk.org
Wed Jun 19 21:02:17 UTC 2024


On Wed, 19 Jun 2024 17:11:27 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/hotspot/cpu/x86/assembler_x86.cpp line 11080:
>> 
>>> 11078: void Assembler::vpgatherdd(XMMRegister dst, Address src, XMMRegister mask, int vector_len) {
>>> 11079:   assert(VM_Version::supports_avx2(), "");
>>> 11080:   assert(!needs_eevex(src.base(), src.index()), "does not support extended gprs as BASE or INDEX of address operand");
>> 
>> Why this new assert in vpgatherdd?
>
> These are not promotable to extended EVEX encoding, BASE and INDEX registers of address operand must not be EGPRs. APX support is anyways enabled for AVX512 targets currently, but still it's good to add safety assertions for completeness.

But the index here is xmm register which could be xmm16 to xmm31 so the assert needs to be corrected. Also good to have the similar assert in vpgatherdq.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19042#discussion_r1646684706


More information about the hotspot-dev mailing list