This is the REDO of JDK-8269559 and JDK-8275448. Those two backouts finally 
turned to be some system zlib issue in AArch64 macOS, and is not related to the 
patch itself. See [1][2] for details.

This patch is generally the same as JDK-8275448, which uses SVE to optimize 
string_compare intrinsics for long string comparisons. I did a rebase with 
small tweaks to get better performance on recent Neoverse hardware. Test data 
on systems with different SVE vector sizes:


   case    delta size  128-bits  256-bits  512-bits
compareToLL  2   24     0.17%     0.58%     0.00%
compareToLL  2   36     0.00%    2.25%      0.04%
compareToLL  2   72     -4.40%   3.87%      -12.82%
compareToLL  2   128    4.55%    58.31%     13.53%
compareToLL  2   256    19.39%   69.77%     82.03%
compareToLL  2   512    1.81%    68.38%     170.93%
compareToLU  2   24     25.57%   46.98%     54.61%
compareToLU  2   36     36.03%   70.26%     94.33%
compareToLU  2   72     35.86%   90.58%     146.04%
compareToLU  2   128    70.82%   119.19%    266.22%
compareToLU  2   256    80.77%   146.33%    420.01%
compareToLU  2   512    94.62%   171.72%    530.87%
compareToUL  2   24     20.82%   34.48%     62.14%
compareToUL  2   36     39.77%   60.79%     69.77%
compareToUL  2   72     35.46%   84.34%     121.90%
compareToUL  2   128    67.77%   110.97%    220.53%
compareToUL  2   256    77.05%   160.29%    331.30%
compareToUL  2   512    91.88%   184.57%    524.21%
compareToUU  2   24     -0.13%   0.40%      0.00%
compareToUU  2   36     -9.18%   12.84%     -13.93%
compareToUU  2   72     1.67%    60.61%     6.69%
compareToUU  2   128    13.51%   60.33%     55.27%
compareToUU  2   256    2.55%    62.17%     153.26%
compareToUU  2   512    4.12%    68.62%     201.68%

JTreg tests passed on SVE hardware.

[1] https://bugs.openjdk.java.net/browse/JDK-8275448
[2] https://bugs.openjdk.java.net/browse/JDK-8282954

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

Commit messages:
 - 8281712: [REDO] AArch64: Implement string_compare intrinsic in SVE

Changes: https://git.openjdk.java.net/jdk/pull/8723/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8723&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8281712
  Stats: 443 lines in 7 files changed: 433 ins; 0 del; 10 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8723.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8723/head:pull/8723

PR: https://git.openjdk.java.net/jdk/pull/8723

Reply via email to