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