RFR: 8292898: [vectorapi] Unify vector mask cast operation [v4]

Xiaohong Gong xgong at openjdk.org
Wed Sep 28 03:35:32 UTC 2022


On Mon, 26 Sep 2022 20:21:05 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Xiaohong Gong has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Add assertion to the elem num for mast cast
>
> common IR changes looks good to me, few more comments related to x86 backend implementation

Hi @jatin-bhateja , the new commit addresses all the comments from your side. Please help to take a look whether it's ok for you. Thanks a lot!

> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 4642:
> 
>> 4640:       case 2: {
>> 4641:         if (vlen_enc == AVX_512bit) {
>> 4642:           if (VM_Version::supports_avx512bw()) {
> 
> Please elaborate for which mask cast src/dst species do you expect this code to be executed. AVX512 masks are propagated using opmask registers.

The new change removed this code path.

> src/hotspot/cpu/x86/x86.ad line 8439:
> 
>> 8437:     BasicType src_bt = Matcher::vector_element_basic_type(this, $src);
>> 8438:     BasicType dst_bt = Matcher::vector_element_basic_type(this);
>> 8439:     __ vector_mask_cast($dst$$XMMRegister, $src$$XMMRegister, $xtmp1$$XMMRegister,
> 
> renaming macro-assembly routine will make the intent more clear vector_mask_cast32B, same goes for below shrink casting pattern.

The new commit has removed this changes.

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

PR: https://git.openjdk.org/jdk/pull/10192


More information about the hotspot-compiler-dev mailing list