RFR: JDK-8320448 Accelerate IndexOf using AVX2 [v7]

Jatin Bhateja jbhateja at openjdk.org
Mon Jan 22 07:11:31 UTC 2024


On Mon, 22 Jan 2024 07:05:56 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Scott Gibbons has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 22 commits:
>> 
>>  - Merge branch 'openjdk:master' into indexof
>>  - Merge branch 'openjdk:master' into indexof
>>  - Addressing review comments.
>>  - Fix for JDK-8321599
>>  - Support UU IndexOf
>>  - Only use optimization when EnableX86ECoreOpts is true
>>  - Fix whitespace
>>  - Merge branch 'openjdk:master' into indexof
>>  - Comments; added exhaustive-ish test
>>  - Subtracting 0x10 twice.
>>  - ... and 12 more: https://git.openjdk.org/jdk/compare/8e12053e...3e58d0c2
>
> src/hotspot/cpu/x86/stubGenerator_x86_64_string.cpp line 505:
> 
>> 503:     __ cmpb(Address(rbx, r15, Address::times_1, -0xa), rax);
>> 504:     __ jne(L_top_loop_1);
>> 505:     __ jmp(L_0x406019);
> 
> Instead of having special handling for each tail size (3 - 31 bytes), can we directly use 32 bytes VMASKMOVPS with appropriate mask for different tail sizes and only residual part (0 - 3 bytes) can fall over to scalar tail.

Basically tail size can be rounded to nearest multiple of doubleword.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16753#discussion_r1461425962


More information about the core-libs-dev mailing list