RFR: 8304450: [vectorapi] Refactor VectorShuffle implementation [v5]

Quan Anh Mai qamai at openjdk.org
Fri Mar 31 12:25:24 UTC 2023


On Fri, 31 Mar 2023 00:18:21 GMT, Paul Sandoz <psandoz at openjdk.org> wrote:

>> Quan Anh Mai has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>> 
>>  - move implementations up
>>  - Merge branch 'master' into shufflerefactor
>>  - Merge branch 'master' into shufflerefactor
>>  - reviews
>>  - missing casts
>>  - clean up
>>  - fix Matcher::vector_needs_load_shuffle
>>  - fix internal types, clean up
>>  - optimise laneIsValid
>>  - Merge branch 'master' into shufflerefactor
>>  - ... and 4 more: https://git.openjdk.org/jdk/compare/d063b896...a4835c00
>
> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template line 1106:
> 
>> 1104:         @Override
>> 1105:         @ForceInline
>> 1106:         public int laneSource(int i) {
> 
> Can this method be moved to `AbstractShuffle`?

No because `T lane(int)` is a method of the typed vector classes which is not available in `AbstractVector`

> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template line 1158:
> 
>> 1156:         }
>> 1157: 
>> 1158:         private static $bitstype$[] prepare(int[] indices, int offset) {
> 
> If we want to reduce code duplication further I suspect we could move these static methods to IntVector etc. Up to you.

I think duplication of generated code is less of a concern so it may be more desirable to keep them in the shuffle classes and near their usages.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13093#discussion_r1154405710
PR Review Comment: https://git.openjdk.org/jdk/pull/13093#discussion_r1154407372


More information about the hotspot-compiler-dev mailing list