RFR: 8265128: [REDO] Optimize Vector API slice and unslice operations [v3]
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Mon May 3 16:55:57 UTC 2021
On Fri, 30 Apr 2021 01:58:27 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:
>> All the slice and unslice variants that take more than one argument can benefit from already intrinsic methods on similar lines as slice(origin) and unslice(origin).
>>
>> Changes include:
>> * Rewrite Vector API slice/unslice using already intrinsic methods
>> * Fix in library_call.cpp:inline_preconditions_checkIndex() to not modify control if intrinsification fails
>> * Vector API conversion tests thresholds adjustment
>>
>> Base Performance:
>> Benchmark (size) Mode Cnt Score Error Units
>> TestSlice.vectorSliceOrigin 1024 thrpt 5 11763.372 ± 254.580 ops/ms
>> TestSlice.vectorSliceOriginVector 1024 thrpt 5 599.286 ± 326.770 ops/ms
>> TestSlice.vectorSliceUnsliceOrigin 1024 thrpt 5 6627.601 ± 22.060 ops/ms
>> TestSlice.vectorSliceUnsliceOriginVector 1024 thrpt 5 401.858 ± 220.340 ops/ms
>> TestSlice.vectorSliceUnsliceOriginVectorPart 1024 thrpt 5 421.993 ± 231.703 ops/ms
>>
>> Performance with patch:
>> Benchmark (size) Mode Cnt Score Error Units
>> TestSlice.vectorSliceOrigin 1024 thrpt 5 11792.091 ± 37.296 ops/ms
>> TestSlice.vectorSliceOriginVector 1024 thrpt 5 8388.174 ± 115.886 ops/ms
>> TestSlice.vectorSliceUnsliceOrigin 1024 thrpt 5 6662.159 ± 8.203 ops/ms
>> TestSlice.vectorSliceUnsliceOriginVector 1024 thrpt 5 5206.300 ± 43.637 ops/ms
>> TestSlice.vectorSliceUnsliceOriginVectorPart 1024 thrpt 5 5194.278 ± 13.376 ops/ms
>
> Sandhya Viswanathan has updated the pull request incrementally with one additional commit since the last revision:
>
> Review comments: blendmask etc
@iwanowww Could you please review if the change in library_call.cpp looks ok to you?
-------------
PR: https://git.openjdk.java.net/jdk/pull/3804
More information about the hotspot-compiler-dev
mailing list