RFR: 8367292: VectorAPI: Optimize VectorMask.fromLong/toLong() for SVE [v2]

Xiaohong Gong xgong at openjdk.org
Fri Oct 24 06:04:02 UTC 2025


On Thu, 23 Oct 2025 10:49:37 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> @XiaohongGong thanks for all he explanations. From what you say, it seems that `vector_mask_must_be_packed` is good.
>
>> VectorStoreMask is a opposite operation of VectorLoadMask. We can treat it as a layout conversion for a vector mask. It is used to convert a vector mask (either a unpacked vector or a predicate) to a packed vector status (i.e. 8-bit element size). Because, in Java API, elements of a VectorMask is stored into a boolean array.
> 
> Thanks for the explanation! So it really only does the conversion, right? And no loading / storing? If that is true, we may want to rename them to `ConvPredicate2PackedVectorMaskNode`, or alike. What do you think?

Hi @eme64 , I updated a commit with renaming the matcher function to `mask_op_uses_packed_vector`. Is this fine to you? The main concern here is that only the specified vector mask ops [(VectorMaskOpNode)](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/vectornode.hpp#L1343) need the packed vector mask. Name `vector_mask_must_be_packed` might extend the scope to all vector/mask operations.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27481#discussion_r2458988592


More information about the hotspot-compiler-dev mailing list