-
Enhancement
-
Resolution: Fixed
-
P4
-
22
-
b02
Re-write the IndexOf code without the use of the pcmpestri instruction, only using AVX2 instructions. This change accelerates String.IndexOf on average 1.3x for AVX2. The benchmark numbers:
```
Benchmark Score Latest
StringIndexOf.advancedWithMediumSub 343.573 317.934 0.925375393x
StringIndexOf.advancedWithShortSub1 1039.081 1053.96 1.014319384x
StringIndexOf.advancedWithShortSub2 55.828 110.541 1.980027943x
StringIndexOf.constantPattern 9.361 11.906 1.271872663x
StringIndexOf.searchCharLongSuccess 4.216 4.218 1.000474383x
StringIndexOf.searchCharMediumSuccess 3.133 3.216 1.02649218x
StringIndexOf.searchCharShortSuccess 3.76 3.761 1.000265957x
StringIndexOf.success 9.186 9.713 1.057369911x
StringIndexOf.successBig 14.341 46.343 3.231504079x
StringIndexOfChar.latin1_AVX2_String 6220.918 12154.52 1.953814533x
StringIndexOfChar.latin1_AVX2_char 5503.556 5540.044 1.006629895x
StringIndexOfChar.latin1_SSE4_String 6978.854 6818.689 0.977049957x
StringIndexOfChar.latin1_SSE4_char 5657.499 5474.624 0.967675646x
StringIndexOfChar.latin1_Short_String 7132.541 6863.359 0.962260014x
StringIndexOfChar.latin1_Short_char 16013.389 16162.437 1.009307711x
StringIndexOfChar.latin1_mixed_String 7386.123 14771.622 1.999915517x
StringIndexOfChar.latin1_mixed_char 9901.671 9782.245 0.987938803
```
```
Benchmark Score Latest
StringIndexOf.advancedWithMediumSub 343.573 317.934 0.925375393x
StringIndexOf.advancedWithShortSub1 1039.081 1053.96 1.014319384x
StringIndexOf.advancedWithShortSub2 55.828 110.541 1.980027943x
StringIndexOf.constantPattern 9.361 11.906 1.271872663x
StringIndexOf.searchCharLongSuccess 4.216 4.218 1.000474383x
StringIndexOf.searchCharMediumSuccess 3.133 3.216 1.02649218x
StringIndexOf.searchCharShortSuccess 3.76 3.761 1.000265957x
StringIndexOf.success 9.186 9.713 1.057369911x
StringIndexOf.successBig 14.341 46.343 3.231504079x
StringIndexOfChar.latin1_AVX2_String 6220.918 12154.52 1.953814533x
StringIndexOfChar.latin1_AVX2_char 5503.556 5540.044 1.006629895x
StringIndexOfChar.latin1_SSE4_String 6978.854 6818.689 0.977049957x
StringIndexOfChar.latin1_SSE4_char 5657.499 5474.624 0.967675646x
StringIndexOfChar.latin1_Short_String 7132.541 6863.359 0.962260014x
StringIndexOfChar.latin1_Short_char 16013.389 16162.437 1.009307711x
StringIndexOfChar.latin1_mixed_String 7386.123 14771.622 1.999915517x
StringIndexOfChar.latin1_mixed_char 9901.671 9782.245 0.987938803
```
- relates to
-
JDK-8330844 Add aliases for conditional jumps and additional instruction forms for x86
-
- Resolved
-