[vectorIntrinsics+mask] RFR: 8266287: Basic mask IR implementation for the Vector API masking feature support [v3]
Jatin Bhateja
jbhateja at openjdk.java.net
Thu Jun 24 09:42:41 UTC 2021
On Thu, 24 Jun 2021 02:29:11 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
>> Hi @XiaohongGong,
>>
>> There could be a problem during scalarize_vbox_node if vector type of mask VectorBoxNode is made as TypeVectMask
>> https://github.com/jatin-bhateja/panama-vector/blob/628dc716b3f171e1b7b62fd1ec452a3d14a04af9/src/hotspot/share/opto/vector.cpp#L212
>>
>> There is an ideal transformation which re-associates the Phi node having all its inputs as VectorBoxes of same type.
>> https://github.com/openjdk/panama-vector/blob/vectorIntrinsics%2Bmask/src/hotspot/share/opto/cfgnode.cpp#L2413
>>
>> This can lead to a situation where PhiNode is created with TypeVect and inputs are of TypeVectMask, as a workaround I added another transformation which adjusts to bottom type of PhiNode to match with the bottom type of its inputs (TypeVectMask). This change is in my local repo having other masking changes.
>> https://github.com/jatin-bhateja/panama-vector/blob/JDK-8262356_vectorIntrinsics%2Bmask/src/hotspot/share/opto/cfgnode.cpp#L2433
>
>> There could be a problem during scalarize_vbox_node if vector type of mask VectorBoxNode is made as TypeVectMask
> https://github.com/jatin-bhateja/panama-vector/blob/628dc716b3f171e1b7b62fd1ec452a3d14a04af9/src/hotspot/share/opto/vector.cpp#L212
>
> I think the main issues that I met are related to `VectorUnboxNode` while not `VectorBoxNode`. BTW, the bottom type of `VectorBoxNode` is the box type while not the vector type. I'm sorry that I cannot see the influence whether the vector type is a `TypeVect` or `TypeVectMask` for it. Could you please kindly elaborate more about this?
>
> From my side, setting the `TypeVect` to `VectorBoxNode` might be ok, but how about the `VectorUnboxNode` ? I think they should keep the same with each other?
Following changes is also altering the vect_type of mask VectorBoxNode.
https://github.com/openjdk/panama-vector/pull/78/files#diff-33d0866101d899687e04303fb2232574f2cb796ce060528a243ebdc9903b01b1R84
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/78
More information about the panama-dev
mailing list