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

Emanuel Peter epeter at openjdk.org
Fri Oct 24 07:19:18 UTC 2025


On Fri, 24 Oct 2025 06:01:14 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>>> 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.

> Hence, these two APIs are a part of VectorMask.fromArray()/intoArray() relatively. Although they really do not any memory access operation. If we have a better name for these two IRs, I think that would be another topic that we can revisit with a separate thread. WDYT?

Sure, we can do it in a future RFE. It is just that bad naming makes it harder for me to review your PR, and so I'm a bit annoying for you probably. I'm sorry for that. Thanks for your patience and explaining things :)

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

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


More information about the hotspot-compiler-dev mailing list