RFR: 8277793: Support vector F2I and D2L cast operations for X86 [v2]

Jatin Bhateja jbhateja at openjdk.java.net
Sun Nov 28 18:44:08 UTC 2021


On Sat, 27 Nov 2021 03:09:30 GMT, Mai Đặng Quân Anh <duke at openjdk.java.net> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   8277793: Further optimizing instruction sequence.
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 4086:
> 
>> 4084:   evblendmpd(dst, ktmp1, dst, xtmp2, true, vec_enc);
>> 4085: 
>> 4086:   evpcmpeqq(ktmp1, xtmp1, dst, vec_enc);
> 
> Hi, some tiny suggestions here,
> 
> By using an extra `KRegister`, we can xor the previous masks to obtain this, eliminate the need of an `evpcmpeqq` here.

Yes, nice suggestions,  AVX512 is a very powerful instruction set and opmask register allocation and our recent masking support contributions are major infrastructure enhancements which will enable developers to emit optimized AVX512 instruction sequence and harness its true potential.

> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 4101:
> 
>> 4099:   vpcmpeqd(xtmp2, dst, xtmp1, vec_enc);
>> 4100:   vpmovmskb(scratch, xtmp2, vec_enc);
>> 4101:   testl(scratch, scratch);
> 
> Is a single `vptest` sufficient here?

DONE

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

PR: https://git.openjdk.java.net/jdk/pull/6544


More information about the hotspot-compiler-dev mailing list