RFR: 8286941: Add mask IR for partial vector operations for ARM SVE [v3]
Xiaohong Gong
xgong at openjdk.org
Mon Jun 20 01:19:01 UTC 2022
On Thu, 16 Jun 2022 09:54:17 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Xiaohong Gong has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits:
>>
>> - Address review comments, revert changes for gatherL/scatterL rules
>> - Merge branch 'jdk:master' into JDK-8286941
>> - Revert transformation from MaskAll to VectorMaskGen, address review comments
>> - 8286941: Add mask IR for partial vector operations for ARM SVE
>
> src/hotspot/share/opto/vectornode.cpp line 1669:
>
>> 1667: if (Matcher::vector_needs_partial_operations(this, vt)) {
>> 1668: return VectorNode::try_to_gen_masked_vector(phase, this, vt);
>> 1669: }
>
> This is a parent node of TrueCount/FirstTrue/LastTrue and MaskToLong which perform mask querying operation on concrete predicate operands, a transformation here looks redundant to me.
The main reason to add the transformation here is: the FirstTrue needs the reference to the real vector length for SVE, that we need to generate a predicate when the vector length is smaller than the max vector size. Please check the changes of `partial_op_sve_needed` in aarch64_sve.ad.
-------------
PR: https://git.openjdk.org/jdk/pull/9037
More information about the hotspot-compiler-dev
mailing list