RFR: 8287794: Reverse*VNode::Identity problem [v2]

Xiaohong Gong xgong at openjdk.org
Mon Jul 25 06:16:49 UTC 2022


On Mon, 25 Jul 2022 05:24:48 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/hotspot/share/opto/vectornode.cpp line 1857:
>> 
>>> 1855:   if (n->is_predicated_using_blend()) {
>>> 1856:     return n;
>>> 1857:   }
>> 
>> The change in this patch looks fine to me! Just a concern the previous codes, for patterns like:
>> 
>> VectorBlend X (ReverseBytesV (ReverseBytesV Y)) MASK
>> 
>> we will miss the transformation to:
>> 
>> VectorBlend X Y MASK
>> 
>> right? Thanks!
>
> No, since the flag Predicated_with_blend is set over nodes if operation itself is predicated, here both ReverseBytesV nodes are non-predicated ones and this check is part of identity routines of reverse* operations.

Oh, right! What I mean is the case like:

VectorBlend (ReverseBytesV X) (ReverseBytesV (ReverseBytesV X)) MASK   ==> VectorBlend (ReverseBytesV X) X MASK 

which is the same case with `test_reversebytes_long_transform2` for non-predicated systems.

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

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


More information about the hotspot-compiler-dev mailing list