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

Xiaohong Gong xgong at openjdk.org
Tue Sep 27 02:15:26 UTC 2022


On Mon, 26 Sep 2022 20:04:32 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
>
> src/hotspot/cpu/x86/x86.ad line 8429:
> 
>> 8427: 
>> 8428: instruct vmaskcast_avx1_32B_expand(vec dst, vec src, vec xtmp1, vec xtmp2) %{
>> 8429:   predicate(UseAVX == 1 && Matcher::vector_length_in_bytes(n) == 32 &&
> 
> Limitation related to VectorLoadMask https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L1852 will prevent exercising this pattern.

Thanks for pointing out this limitation! So the original `VectorCast` pattern also has the similar issue, right? Further thinking about this limitation, since almost all the mask generation/using API will check the `VectorLoadMask`, this rule may not be useful. But keeping it is fine to me in case `VectorMaskCast` is used for other cases or the limitation is relaxed in future. WDYT?

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

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


More information about the hotspot-compiler-dev mailing list