RFR: 8262355: Support for AVX-512 opmask register allocation. [v3]

Xiaohong Gong xgong at openjdk.java.net
Tue Mar 16 02:48:08 UTC 2021


On Mon, 15 Mar 2021 11:25:41 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/hotspot/share/opto/type.cpp line 2417:
>> 
>>> 2415: const TypeVect *TypeVect::makemask(const BasicType elem_bt, uint length) {
>>> 2416:   if (Matcher::has_predicated_vectors()) {
>>> 2417:     return (TypeVect*)(new TypeVectMask(get_const_basic_type(T_BOOLEAN), MaxVectorSize))->hashcons();
>> 
>> Do you mean the `TypeVectMask` only saves the `T_BOOLEAN` as the basic type for all the mask type?
>
> Yes,  that is correct for targets which do not support predicate registers flow differs and a TypeVect matches with type of vector register.

Thanks! Actually that's correct for AVX-512. However, unlike AVX-512 K registers, SVE predicate needs the real basic type as a reference when controlling the vector operations. I'm worried that this is not friendly for SVE.

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

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


More information about the hotspot-compiler-dev mailing list