RFR: 8338023: Support two vector selectFrom API [v10]

Paul Sandoz psandoz at openjdk.org
Tue Sep 17 17:07:16 UTC 2024


On Tue, 17 Sep 2024 07:02:12 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template line 2974:
>> 
>>> 2972:     final $abstractvectortype$ selectFromTemplate(Class<? extends Vector<$Boxbitstype$>> indexVecClass,
>>> 2973:                                                   $abstractvectortype$ v1, $abstractvectortype$ v2) {
>>> 2974:         int twoVectorLen = length() * 2;
>> 
>> We should assert that the length is a power of two.
>
> API only accepts vector parameters and there is no means though public facing API to create a vector of NPOT sizes. https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Vector.java#L842C58-L843C27

You missed the first bit of the sentence linked to "With the possible exception of the {@linkplain VectorShape#S_Max_BIT maximum shape}".

In generally the specification avoids assuming POT where it is not explicitly stated (i.e., the constant shapes). In this case we align with the specification of `VectorShuffle::wrapIndex`. We don't need to implement NPOT but we need a reminder in the implementation where we make that assumption.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20508#discussion_r1763587293


More information about the hotspot-compiler-dev mailing list