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