RFR: 8319577: x86_64 AVX2 intrinsics for Arrays.sort methods (int, float arrays) [v8]
Srinivas Vamsi Parasa
duke at openjdk.org
Wed Dec 6 17:23:13 UTC 2023
On Tue, 5 Dec 2023 19:37:34 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Srinivas Vamsi Parasa has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 17 additional commits since the last revision:
>>
>> - Merge branch 'master' of https://git.openjdk.java.net/jdk into simdsort
>> - add GCC version guards
>> - Merge branch 'master' of https://git.openjdk.java.net/jdk into simdsort
>> - Remove C++17 from C flags
>> - add avoid masked stores operation
>> - update the code to check for supported simd sort cpus
>> - Disable AVX2 sort for 64-bit types
>> - Merge branch 'master' of https://git.openjdk.java.net/jdk into simdsort
>> - fix jcheck failures due to windows encoding
>> - fix carriage return and change insertion sort thresholds
>> - ... and 7 more: https://git.openjdk.org/jdk/compare/d4151e5b...bc590d9f
>
> src/java.base/linux/native/libsimdsort/avx2-emu-funcs.hpp line 64:
>
>> 62: }
>> 63: return lut;
>> 64: }();
>
> Lut64 is needed for compress64 emulation, can be removed.
Removed in the latest commit...
> src/java.base/linux/native/libsimdsort/avx2-emu-funcs.hpp line 234:
>
>> 232:
>> 233: vtype::mask_storeu(leftStore, left, temp);
>> 234: }
>
> Can be removed if not being used.
Removed in the latest commit...
> src/java.base/linux/native/libsimdsort/avx2-emu-funcs.hpp line 277:
>
>> 275:
>> 276: return _mm_popcnt_u32(shortMask);
>> 277: }
>
> Can be removed if not being used.
Removed in the latest commit...
> src/java.base/linux/native/libsimdsort/avx2-linux-qsort.cpp line 44:
>
>> 42: break;
>> 43: case JVM_T_FLOAT:
>> 44: avx2_fast_sort((float*)array, from_index, to_index, INSERTION_SORT_THRESHOLD_32BIT);
>
> Assertions for unsupported types.
Added in the latest commit...
> src/java.base/linux/native/libsimdsort/avx2-linux-qsort.cpp line 56:
>
>> 54: case JVM_T_FLOAT:
>> 55: avx2_fast_partition((float*)array, from_index, to_index, pivot_indices, index_pivot1, index_pivot2);
>> 56: break;
>
> Please add assertion for unsupported types.
Added in the latest commit...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16534#discussion_r1417701182
PR Review Comment: https://git.openjdk.org/jdk/pull/16534#discussion_r1417702999
PR Review Comment: https://git.openjdk.org/jdk/pull/16534#discussion_r1417702251
PR Review Comment: https://git.openjdk.org/jdk/pull/16534#discussion_r1417701469
PR Review Comment: https://git.openjdk.org/jdk/pull/16534#discussion_r1417701705
More information about the hotspot-compiler-dev
mailing list